NP和P问题

1 什么是P问题?

  这里的P代表Polynomial。P问题就是可以有一个确定型图灵机在多项式时间内解决的问题。即目前那些存在O(n), O(nk), O(nlogn)等多项式时间复杂度解法的问题。比如排序问题、最小生成树、单源最短路径。直观的讲,我们将P问题视为可以较快解决的问题。

2 什么是NP问题?

那些可以在非确定型图灵机上在多项式时间内解决的问题。(在确定型图灵机(我们在使用的计算机吗?)上可以在多项式时间内验证解是否正确,但不能在多项式时间内找出最优解的问题)。非确定型图灵机:可以理解为无限个确定型图灵机的集合。应该是说的一种强大的目前还不存在的,也与目前的计算机无法比较的一种计算机吧。也许它具备跳跃思维、能联想能学习能推理……

NP是目前为止还未找到多项式解法的问题。对于这些问题,我们目前也不知道是否存在多项式的解法。所以叫非确定多项式问题。

  NP代表“Non-deterministic(非确定性)Polynomial(多项式)”而不是代表“Non-Polynomial(非多项式)。

典型的NP问题是旅行商问题(TSP)。

 

P与NP问题的关系?

NP问题如果找到了多项式解法就是P问题了。NP问题是目前为止我们还未找到多项式解法的问题。我们也不能证明它一定存在或不存在多项式解法。调查显示有的人持肯定态度,认为NP问题一定存在多项式解法,即P=NP。有的坚信NP问题不存在多项式解法。当然也有的人持不确定态度。

 

3 什么是NPC问题?

NPC问题是NP中目前看起来最不可能存在多项式解法的问题,是NP中“最难”的问题,也就是说它们是最不可能属于P类的。一中观点是NP问题包含P问题和NPC问题。也有观点认为NP=NPC。

 

因为任何NP中的问题可以在多项式时间内变换成为任何特定NP完全问题的一个特例,所以若任何一个NP完全的问题在P内,则可以推出P = NP。不幸的是,很多重要的问题被证明为NP完全,但没有一个有已知快速的算法。

迄今为止,人们已经发现了成千上万的NP-complete 问题,它们都具有容易被检查的性质,包括前面介绍的推销员旅行问题。当然更重要的是,它们是否也容易被求解,这就是著名的 P vs NP 的问题。

 

4 什么是NPH问题?

比NPC还难的题。NPH类:若问题A不属于NP类,已知某一NPC问题可在多项式时间之内转化为问题A,则称A为NP难题。例如,“TSP”是NPH问题。

 

5 NP问题意味什么?

面对一个问题,如果较劲脑子也没有思路,那么它也许是个NP问题。你可以转而证明它是个NP问题。也意味者要找到一个有效的解法是不可能的,至少也是相当困难。明智的做法是寻求一个找到有效解的近似算法。

 

6 如何证明一个问题是NP问题

通常证明一个问题 A 是 NP-complete 需要两步,第一先证明 A 是 NP 的,即满足容易被检查这个性质; 第二步是构造一个从某个已知的 NP-complete 问题 B 到 A 的多项式变换,使得如果 B 能够被容易地求解,A 也能被容易地解决。这样一来,我们至少需要知道一个 NP-complete 问题。

 

7 新千年的七大难题之一:

P=NP?就是说,是否能找到一个多项式解法去解决TSP、包装、舞会等问题。找到这样的解法或证明不存在这样的解法、或证明存在这样的解法。

posted @ 2012-04-20 21:29  SolarJupiter  阅读(492)  评论(0编辑  收藏  举报