图示NP, P, NP-Complete和NP-Hard问题

P问题是一类可以通过确定性图灵机(以下简称图灵机)在多项式时间(Polynomial time)内解决的问题集合。
NP问题是一类可以通过非确定性图灵机( Non-deterministic Turing Machine)在多项式时间(Polynomial time)内解决的决策问题集合。
P问题是NP问题的子集,也就是说任何可以被图灵机在多项式时间内解决的问题都可以被非确定性的图灵机解决。
 
NP问题里最难得问题:NP-Complete

其定义如下,如果一个决策问题 L 是 NP-Complete的,那么L具备以下两个性质:
1) L 是 NP(给定一个解决NP-Complete的方案(solution,感兴趣的读者可以思考一下solution 和 answer的区别),可以很快验证是否可行,但不存在已知高效的方案。)
2) NP里的任何问题可以在多项式时间内转为 L。
 
而NP-Hard只需要具备NP-Complete的第二个性质,因此NP-Complete是NP-Hard的子集
 
这四者的关系如下图(假设P!=NP):
原文地址:https://www.cnblogs.com/tectal/p/10149690.html