基础知识
- 多项式时间复杂度可解:如果一个问题可以在 O ( n k ) O(n^k) O(nk)时间复杂度内得到解决,称该问题在多项式时间复杂度内可解,其中,n是实例的长度,k是固定常数。
- 规约:对于两个问题 L 1 和 L 2 L_1和L_2 L1和L2,若存在多项式时间复杂度的函数 f f f,将L1中的实例对应到L2中,则称 L 2 L_2 L2可规约到 L 1 L_1 L1,记作 L 1 ⊆ P L 2 L_1⊆_PL_2 L1⊆PL2.
P(polynomial)问题
对一个问题,若存在算法,可在多项式时间复杂度内求解该问题,称该问题为P问题。
NP(non-deterministic polynomial)问题
对于一个问题,若存在算法,能在多项式时间复杂度内验证一个解是否成立,则该问题称为NP问题。
NP-Complete问题
若一个 L L L问题满足一下两个条件:
- 该问题是NP问题;
- 对于任意的NP问题
L
’
L^’
L’,都有
L
’
⊆
P
L
L^’⊆_PL
L’⊆PL,即所有NP问题复杂度都小于L问题。
则称该问题为NP完全问题。
NP-hard问题
若一个问题L只满足NP完全问题条件中的第2条,称该问题为NP-hard问题。
各问题难易程度
P ⊆ ⊆ ⊆ NP ⊆ ⊆ ⊆ NP-C ⊆ ⊆ ⊆ NP-H