参考:https://zhuanlan.zhihu.com/p/73953567
参考:https://blog.csdn.net/qq_21768483/article/details/80430590
目录
P问题
存在多项式时间算法的问题。(P:polynominal,多项式)。
NP问题
(NP:Nondeterministic polynominal,非确定性多项式)
能在多项式时间内验证得出一个正确解的问题。(NP:Nondeterministic polynominal,非确定性多项式)。
这里可以清楚的看出 P类问题是NP类 问题的子集(即存在多项式时间算法的问题,总能在多项式时间内验证它)
NP-complete问题
存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:
首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。
要证明npc问题的思路就是: 先证明它至少是一个NP问题,再证明其中一个已知的NPC问题能约化到它。
NP-hard问题
NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是它不一定是一个NP问题。