P问题,NP问题与NPC问题的概念的简单总结

看到了一篇很不错的博文,很清楚地说明了什么是P问题、NP问题、NPC问题:http://www.matrix67.com/blog/archives/105

自己做一下总结:

1. P问题是指:存在某一算法,能在多项式时间复杂度内解决该问题。

2. NP问题是指:给定一个特定的解,能在多项式时间复杂度内验证这个解是否是满足条件的。

Remark:P问题一定是NP问题(显然),但NP问题是否一定是P问题呢?这个问题还没有答案,此即著名的"P=NP"问题。

3. NPC问题:一个问题是NPC问题,是指:(1)该问题是一个NP问题。(2)所有的NP问题都能在多项式时间内约化为这个问题。

Remark1:由于约化的特性,问题A能约化成问题B,那么A的算法的时间复杂度比小于等于问题B的算法的时间复杂度。

Remark2:如果NPC问题能够找到一个多项式时间复杂度算法,那么所有NP问题都能在多项式时间内解决。那么P=NP。

4. NP-Hard问题:比NPC问题的约束更少。不要求(1)只要求(2)。即:如果所有的NP问题都能在多项式时间内约化为某个问题,这个问题就是一个NP-Hard问题(即使该问题并非NP问题)。

猜你喜欢

转载自blog.csdn.net/Europe233/article/details/88534542