仅用于个人学习整理:
1.P类问题
P类问题是指一类能够用确定性算法在多项式时间内求解的判定问题。
2.NP问题
NP类问题是指一类能够用不确定性算法在多项式时间内求解的判定问题。
P类问题和NP问题记忆简单。下面的NPC问题和NP-hard问题用集合的形式可能会更好理解与记忆,请对照集合关系看可能较容易理解。
3.NPC问题
若一个问题D属于NPC问题,则应满足:
(1)问题D属于NP类问题(NPC问题属于NP类问题,即NPC问题是NP类问题的子集);
(2) NP类问题中的任意问题都能在多项式时间内转化为NPC问题(可以理解为NP类问题的任意元素都能转换到NPC问题这个子集中)。
4.NP-hard问题
NP-Hard问题,满足NPC问题满足的(2)但不一定要满足(1)。
(也就是说所有的NP问题都能转化成NP-hard问题,但是NP-hard不一定属于NP问题。NPC问题是NP-hard问题的子集)
上面的集合表示图像为借鉴,链接:https://blog.csdn.net/qq_21768483/article/details/80430590