- 多项式时间的算法:对于规模为n的输入,最坏情况下的运行时间为 O(nk) ,对某一确定的常数。
- P类问题:在多项式时间内可以解决的问题。
- NP类问题:在多项式时间内可以被证明的问题。
- 如果已知一个问题解的证书,那么可以证明此问题在该输入规模下能在多项式时间内解决。
- 在多项式时间内验证这一赋值(证书)满足条件。
- P类问题也是NP类问题。
- NPC类(NP完全问题):“不易解决”,没有多项式求解算法,也不能证明不存在多项式时间算法。
- 最优化问题(optimization problem):每一个可行的解都有一个关联的值,求具有最佳值的可行性。
- NP完全性不适合直接应用于最优化问题,但适合应用于判定性问题(decision problem)。
- 如果某个最优化问题比较容易,其相关判定问题也会比较容易。若能提供论据表明判定问题是一个困难问题 → 优化问题困难。
- 实例:某一特定问题的输入。
- 判定问题A,B,已知B可在多项式时间内解决,A的任何实例可以在多项式时间内转化成案例B,且 α 与 β 解相同,这一过程为多项式时间归约算法(reduction algorithm),提供了一种在多项式时间内解决A的方法。
- NP完全问题是为了解决一个问题有多难。
用反证法证明:判定A不可能存在多项式时间算法 → B不可能存在多项式时间算法
类似证明:A是NP完全的 → B是NP完全的。
第一个NP完全问题:电路可满足性问题,SAT问题。
- 抽象问题
……未完待续(from wx学姐)