NP-Completeness

2024-01-19 18:38
文章标签 np completeness

本文主要是介绍NP-Completeness,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NP-Completeness

在这里插入图片描述

在这里插入图片描述

The “First” NP-Complete problem

Theorem. CIRCUIT-SAT is NP-complete. [Cook 1971, Levin 1973]

Pf.(sketch)

  • Any algorithm that takes a fixed number of bits n as input and produces a yes/no answer can be represented by such a circuit. Moreover, if algorithm takes poly-time, then circuit if of poly-size.
    sketchy part of proof; fixing the number of bits is important, and reflects basic distinction between algorithm and circuits.
  • Consider some problem X in NP. It has a poly-time certifier C(s,t). To determine whether s is in X, need to know if there exists a certificate t of length p(|s|) such that C(s,t) = yes.
  • View C(s,t) as an algorithm on |s| + p(|s|) bits(input s, certificate t) and convert it into a poly-size circuit.
    • first |s| bits are hard-coded with s
    • remaining p(|s|) bits are represent bits of t.
  • Circuit K is satisfiable iff C(s,t) = yes

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这篇关于NP-Completeness的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623319

相关文章

可能与不可能的边界 P/NP问题趣史

第一章 金券   假如我们想在数以万计的巧克力中找到一张含有金券的巧克力需要怎么做?(一共有5张金券)   有大量的时间,请大量的人,大量的金钱(买下非常非常多的巧克力),然后人工筛选     Mary的公司定制了一个计划,需要从她的家乡出发,然后经过48个州,并像这些州推销木锥,为了 节省开支,需要定制一个路线,即启动为Mary的家乡,然后经过48个州,距离最短。其实这个计算相   当于 48

P problem、NP problem、NP-complete problem、NP-hard problem是什么

时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当程序所处理的问题规模扩大后,程序需要的时间长度对应增长得有多快。 一、多项式时间(Polynomial time) 多项式复杂度 容易看出,前面的几类复杂度被分为两种级别,其中后者的复杂度无论如何都远远大于前者。 像等,我们把它叫做多项式级复杂度,因为它的规模n出现在底数的位置; 非多项式级的复杂度 另一种像是等,它

NumPy(二):创建数组【生成固定范围的数组:arange、linspace】【生成0和1的数组:zeros()等】【从现有数组生成:array、asarray】【生成随机数组:np.random】

生成0和1的数组 np.ones()np.ones_like()从现有数组中生成 np.array – 深拷贝np.asarray – 浅拷贝 生成固定范围数组 np.linspace() nun – 生成等间隔的多少个 np.arange() step – 每间隔多少生成数据 np.logspace() 生成以10的N次幂的数据 生成随机数组 正态分布 里面需要关注的参数:均值:u

TensorFlow测试程序报异常:FutureWarning: Conversion of the second argument of issubdtype from `float` to `np

使用安装好的tensorflow-gpu 进行程序测试时出现异常: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(

什么是NP问题,什么是NP hard问题,什么是NP完全问题

先来看一个小故事:(转自:http://zhm2k.blog.163.com/blog/static/5981506820095233143571/) 假如老板要你解决一个问题,你绞尽脑汁还是想不出来,叫天天不应,叫地地不灵,这时你走进老板办公室,可以采取3种策略: 1) 一副倒霉像,神情猥琐,可怜巴巴的说:老板,我没做出来,我想我是太蠢了…… boss:蠢材!滚! (失败……) 2)

np.copy()中的C, F含义

多维数组在内存中的存储顺序问题。 以一个二维数组a[2][2]为例,在C语言中,其在内存中存储为 a[0][0] a[0][1] a[1][0] a[1][1] 而在Fortran语言中,其顺序为 a[0][0] a[1][0] a[0][1] a[1][1]

【Numpy】np.unique去重复

numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None) 去除重复,返回索引值,排序 >>> np.unique([1, 1, 2, 2, 3, 3])array([1, 2, 3])>>> a = np.array([[1, 1], [2, 3]])>>>

【Numpy】np.savetxt保存时数据不使用科学计数法形式

使用np.savetxt可以dump数据 np.set_printoptions(suppress=True)np.set_printoptions(precision=4) #设精度np.savetxt('data_name‘, data.view(-1, 1), fmt='%.04f') #保留4位小数 numpy在print时会有...省略掉中间部分,如果希望显示处完整数组:

np.identity和np.eye

numpy.identity(n, dtype=None) >>> np.identity(3)array([[ 1., 0., 0.],[ 0., 1., 0.],[ 0., 0., 1.]]) numpy.eye(N, M=None, k=0, dtype=< class ‘float’>, order=’C’) Parameters: N : int 行数 M : i

numpy.random.uniform、np.random.choice

numpy.random.uniform介绍: 函数原型:  numpy.random.uniform(low,high,size) 功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high. 参数介绍:           low: 采样下界,float类型,默认值为0;     high: 采样上界,float类型,默认值为1;     si