简单介绍了P,NP,NPC,NPH问题,预备知识为算法时间复杂度定义,确定性/非确定性算法定义,约化定义。
P问题(Polynomial problem):
存在求解此问题的多项式时间的确定性算法的一类问题
NP问题(non-deterministic polynomial problem):
不存在或者不确定是否存在求解此问题的多项式时间的确定性算法,但是存在求解此类问题的多项式时间的非确定性算法的一类问题
由定义知,P⊆NP,那么
P=NP or P⊊NP ?
NPC问题(Non-deterministic Polynomial complete problem):
满足以下两个条件的一类问题
·它是一个NP问题
·所有的NP问题都可以约化成它。
由以上可知,对于某些NP问题,若能约化为NPC问题,只要能够找到其中某一个NP问题的多项式时间算法,则这一类NP问题全部存在多项式时间算法;反之,若能证明其中一个问题是多项式时间内不可解的,则这一类问题全部不存在多项式时间算法。
NPH问题(Non-deterministic Polynomial hard problem):
满足以下两个条件的一类问题
·它不一定是一个NP问题
·所有NP问题都可以约化到它
四类问题之间的关系:
可以想象NP=P后的此图。