有多项式时间算法的问题和可能没有多项式时间算法的问题
有多项式时间算法 | 可能没有多项式时间算法 |
---|---|
最短路问题 | 最长路问题 |
最小割问题 | 最大割问题 |
2元可满足性问题 | 3元可满足性问题 |
平面图4着色问题 | 平面图3着色问题 |
二部图顶点覆盖问题 | 一般图顶点覆盖问题 |
匹配问题 | 3D匹配问题 |
素性测试问题 | 质因子分解问题 |
线性规划问题 | 整数线性规划问题 |
多项式规约
问题 X X X能多项式规约到问题 Y Y Y:
对于任意一个问题 X X X的实例,进行多项式时间的标准计算步骤,加上多项式时间对 Y Y Y问题求解方法的调用,最终能求解出问题 X X X,则问题 X X X能多项式规约到问题 Y Y Y。
Note:
问题 Y Y Y比问题 X X X要更难,或者难的核心在 Y Y Y上。
可以空跑问题 Y Y Y算法,只是单纯的多项式时间的标准计算步骤
如果问题 X X X和问题 Y Y Y能够相互多项式时间规约,即 X ≤ p Y X\leq_p Y X≤pY且 Y ≤ p X Y\leq_p X Y≤pX,那么我们用 X ≡ p Y X\equiv_p Y X≡pY,表示问题 X X X和问题 Y Y Y能够相互多项式时间规约。
由于自规约性,我们以下讨论的都是该问题的判定性问题(决策问题)
① 独立集问题 ≡ p \equiv_p ≡p 顶点覆盖问题
即若 S S S是一个大小为 k k k的独立集当且仅当 V − S V-S V−S是一个大小为 n − k n-k n−k的顶点覆盖
独立集问题
问题描述:给定一个图 G = ( V , E ) G=(V,E) G=