P NP NP-Complete NP-Hard问题的定义和区别

目录

  • 基础知识
  • P(polynomial)问题
  • NP(non-deterministic polynomial)问题
  • NP-Complete问题
  • NP-hard问题
  • 各问题难易程度

基础知识

  1. 多项式时间复杂度可解:如果一个问题可以在 O ( n k ) O(n^k) O(nk)时间复杂度内得到解决,称该问题在多项式时间复杂度内可解,其中,n是实例的长度,k是固定常数。
  2. 规约:对于两个问题 L 1 和 L 2 L_1和L_2 L1L2,若存在多项式时间复杂度的函数 f f f,将L1中的实例对应到L2中,则称 L 2 L_2 L2可规约到 L 1 L_1 L1,记作 L 1 ⊆ P L 2 L_1⊆_PL_2 L1PL2.

P(polynomial)问题

对一个问题,若存在算法,可在多项式时间复杂度内求解该问题,称该问题为P问题。

NP(non-deterministic polynomial)问题

对于一个问题,若存在算法,能在多项式时间复杂度内验证一个解是否成立,则该问题称为NP问题。

NP-Complete问题

若一个 L L L问题满足一下两个条件:

  1. 该问题是NP问题;
  2. 对于任意的NP问题 L ’ L^’ L,都有 L ’ ⊆ P L L^’⊆_PL LPL,即所有NP问题复杂度都小于L问题。
    则称该问题为NP完全问题。

NP-hard问题

若一个问题L只满足NP完全问题条件中的第2条,称该问题为NP-hard问题。

各问题难易程度

P ⊆ ⊆ NP ⊆ ⊆ NP-C ⊆ ⊆ NP-H

你可能感兴趣的:(数学,算法)