P(polynomial)问题:
如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。
经典的有质数判定、排序等。
NP问题
可以在多项式的时间里验证一个解的问题。
经典的有大整数分解、逻辑电路问题。
讲NPC之前先要理解约化的意思
约化
如果能找到这样一个变化法则,对任意一个程序A的输入,都能按这个法则变换成程序B的输入,使两程序的输出相同,那么我们说,问题A可约化为问题B。
这样的话证明B的难度大于等于A,那么当把所有的NP问题约化在一起时, 会有一个上界,这就是NPC问题。
经典的有一元一次方程可以约化为一元n次方程(n >= 2)
NPC问题 ("NPC问题是真实存在的")
所有的NP问题都可以约化成该问题的NP问题。
经典的有逻辑电路问题、哈密尔顿回路、TSP问题、网格问题等。
正是因为有NPC问题的存在人们才认为 P != NP
NP-Hard问题
所有的NP问题都可以约化成该问题的问题。
参考:http://www.matrix67.com/blog/archives/105