来源于我们上课的PPT
多项式规约
如果问题 X X X的任意实例 能够经过 多项式时间的标准计算步骤 和 多项式时间 调用问题 Y Y Y的解决方案 被解决,则 X ≤ p Y X \leq_{p}Y X≤pY
注意方向,是 X X X可以多项式归约到 Y Y Y。
性质
如果 X ≤ p Y X \leq_{p} Y X≤pY 并且 Y Y Y可以在多项式时间能够得到解决,那么 X X X也可以在多项式时间内得到解决。
如果 X ≤ p Y X \leq_pY X≤pY 并且 X X X不存在多项式时间的解,则 Y Y Y也不存在多项式时间的解。
如果 X ≤ p Y X \leq_{p}Y X≤pY 并且 Y ≤ p X Y \leq_pX Y≤pX,则 X ≡ p Y X \equiv_p Y X≡pY,既 X X X和 Y Y Y是等价的。
如果 X ≤ p Y X \leq_p Y X≤pY 并且 Y ≤ p Z Y \leq_p Z Y≤pZ,则 X ≤ p Z X \leq_p Z X≤pZ。
举例
- 点覆盖 ≡ p \equiv_p ≡p 独立集
证明:
①点覆盖可以归约到独立集,假设 S S S是图 G G G中的任意一个独立集,现在考察任意一条边 ( u , v ) ∈ E (u,v) \in E (u,v)∈E,都有: u ∈ V − S u \in V - S u∈V−S 或者 v ∈ V − S v \in V - S v∈V−S,因此, V − S V - S V−S 覆盖了边 ( u , v ) (u,v) (u,v),既 V − S V- S V−S是 G G G的一个点覆盖。
②独立集可以规约到点覆盖,假设 S ′ S' S′是图 G G G中的任意一个点覆盖,现在考察 V − S ′ V - S' V−S′中的任意两个点 u , v u,v u,v,都有: ( u , v ) ∉ E (u,v) \notin E (u,v)∈/E。理由如下,如果 ( u , v ) ∈ E (u,v)\in E (u,v)∈E,根据点覆盖的定义,有 u ∈ S ′ u \in S' u∈S′ 或者 v ∈ S ′ v \in S' v∈S′,而 u , v ∈ V − S ′ u,v \in V-S' u,v∈V−S′,显然矛盾,故 ( u , v ) (u,v) (u,v)不是图中的边。因此, V − S ′ V-S' V−S′中的任意两点都不存在边,故 V − S ′ V - S' V−S′是 G G G的一个独立集。
斜体字部分不记,能理解就好
- 点覆盖 ≤ p \leq_p ≤p 集合覆盖
证明的总体思路:
对于点覆盖的任意一个实例 G = ( V , E ) G=(V,E) G=(V,E),构造一个 集合覆盖大小 等于 点覆盖大小 的集合覆盖实例。
证明:
对于任意一个点覆盖,假设它的大小为 k