NP问题和NPC问题

原创 2002年03月22日 17:40:00

什么叫做NP问题,什么叫做NPC问题?
 首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。算法的复杂性是指解决问题的一个具体的算法的执行时

间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质。比如对于排序问题,如果我们只能通过元素间的相互比较

来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平

均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。问题的复杂性不可能通过枚举各种可能算法

来得到,一般都是预先估计一个值,然后从理论上证明。
 为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要

回答yes或者no的问题。任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A到B是否有长

度为1的路径?从A到B是否有长度为2的路径?。。。从A到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从

A到B的最短路径就是k。
 如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P

类问题。P类问题就是所有复杂度为多项式时间的问题的集合。
 然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们

该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他

是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。这种可以在多项式时间内验证一个解是否正确的问题称为NP问题。显

然,所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。注意,NP问题不一定都是难解的问题,比如

简单的数组排序问题是P类问题,但是P属于NP,所以也是NP问题,你能说他很难解么?
 

刚才说了,现在还不知道是否有P=NP或者P<>NP,但是后来人们发现还有一系列的特殊NP问题,这类问题的特殊性质使得很多人相信P<>NP,只

不过现在还无法证明。这类特殊的NP问题就是NP完全问题(NPC问题,C代表complete)。NPC问题存在着一个令人惊讶的性质,即如果一个NPC

问题存在多项式时间的算法,则所有的NP问题都可以在多项式时间内求解,即P=NP成立!!这是因为,每一个NPC问题可以在多项式时间内转化

成任何一个NP问题。比如前面说的哈米尔顿回路问题就是一个NPC问题。NPC问题的历史并不久,cook在1971年找到了第一个NPC问题,此后人们

又陆续发现很多NPC问题,现在可能已经有3000多个了。所以,我们一般认为NPC问题是难解的问题,因为他不太可能存在一个多项式时间的算

法(如果存在则所有的NP问题都存在多项式时间算法,这太不可思议了,但是也不是不可能)。
 类似哈米尔顿回路/路径问题,货郎担问题,集团问题,最小边覆盖问题(注意和路径覆盖的区别),等等很多问题都是NPC问题,所

以都是难解的问题。
 

P问题,NP问题,NPC问题,以及三者之间的关系

一、以下是从百度知道上转载来的关于P问题,NP问题,NPC问题的解释 1、P问题 P是一个判定问题类,这些问题可以用一个确定性算法在多项式时间内判定或解出。如果一个判定性问题的复杂度是该问...
  • u010486124
  • u010486124
  • 2014年12月26日 08:53
  • 1158

简述P问题,NP问题,NPC问题以及NP Hard问题

发现我们经常谈到NP问题,NP完全问题,NP难问题,但是其实他们之间是有区别的。 1、P问题是指:一个问题可以找到一个能在多项式的时间里解决它的算法。也就是复杂度为O(1),O(log(n)),O(n...
  • John159151
  • John159151
  • 2015年10月11日 21:52
  • 1719

算法:NP问题,NP完全问题(NPC),NPhard问题

在做计算机算法关于NP完全问题这一章的作业的时候,发现有很多概念理解的不是很透彻,然后就反复看老师的讲义,在网上查阅各种资料,花了很多时间来弄懂这块的内容。发现书上的概念太正式,定义太标准,不容易很快...
  • qq_23926575
  • qq_23926575
  • 2016年12月14日 22:51
  • 2517

NP-NPC-P问题

  • 2013年12月07日 22:27
  • 24KB
  • 下载

NP,NPC,P问题的概念

最近看到算法导论的中的这些概念就来梳理一下吧 每次看到总是有点晕。。。 P、NP、NPC概念 P问题:我们以前接触过的算法如:图搜索问题、最短路径问题、最小生成树问题,都是能...
  • Losteng
  • Losteng
  • 2016年03月07日 17:51
  • 634

P、NP、NPC问题

转自:http://blog.csdn.net/wwy851/article/details/6082007 最近看了很多关于P、NP和NPC问题的文章,但是都不是很系统全面,很多叙述的也不太清楚,...
  • llzwdttllzwdtt
  • llzwdttllzwdtt
  • 2012年02月29日 14:58
  • 2168

P,NP,NPH,NPC问题

算法系列博客之NPC问题 我们已经学习了很多高效的算法,它们大多都是多项式时间的,有的还能达到线性时间,甚至是对数时间。但是到目前为止,仍然有一批问题没有被证明有多项式时间内的算法;所谓没有被证明,即...
  • Quiteen
  • Quiteen
  • 2017年07月12日 22:17
  • 235

算法导论之P、NP、NPC问题

P、NP、NPC概念 > P问题:能够在多项式时间内解决的决策问题。 —举例: 图搜索问题、最短路径问题、最小生成树问题······ > NP问题:不能在多项式时间内解决或不确定能不能...
  • bcb5202
  • bcb5202
  • 2016年04月20日 17:20
  • 1327

NPC(NP完全问题)证明

NPC(NP完全问题)证明
  • u010352725
  • u010352725
  • 2017年07月05日 00:52
  • 274

N、NP、NPC问题

转自MATRIX67大神博客,膜拜http://www.matrix67.com  这或许是众多OIer最大的误区之一。     你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有...
  • huangkuizuiniu
  • huangkuizuiniu
  • 2016年10月22日 11:33
  • 238
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NP问题和NPC问题
举报原因:
原因补充:

(最多只允许输入30个字)