P 与 NP

  • P: 存在多项式算法,可以解出一个 solution
  • NP: 存在多项式算法,给定 solution 可以判定输入是否合法
    • NP-Complete: 所有 NP 问题都可以归约到 AA,且 AA 是 NP 问题,则 AA 是 NP-Complete 问题
    • NP-Hard

Polynomial-Time Reduce

BpAB \le_p A 或者 BAB\to A,表示存在一个多项式算法 ff

  1. BB 问题的输入 xx 转化为 AA 问题的输入 f(x)f(x)
  2. xxBB 问题的一组合法解,当且仅当 f(x)f(x)AA 问题的一组合法解。

NP 问题判定定理 11

BAB\to A,且 AA 是 P 问题,则 BB 也是 P 问题。

【证明】
因为 AA 问题内多项式时间 O(f(x))O(f(x)) 内可解,而又存在多项式算法 O(g(x))O(g(x)) 可以转化输入,则可以在 O(f(x)+g(x))O(f(x)+g(x)) 的时间内解决 BB. \square

NP-Hard

优化问题 (Optimization Problem)

NP Problem 是在寻找可行解,而其对应的优化问题则是在找最优解

如果某个优化问题对应的判定问题是 NP Complete 的,则这个优化问题为 NP Hard 的。

考虑判定问题 XX 和对应的优化问题 YY,如果

  • XX 是 NP Complete 问题
  • 我们可以在多项式时间内解决 YY

则我们可以在多项式时间内解决 XX,从而 P=NPP=NP,那么 YY 就是 NP-Hard 的。