NP完全问题的证明

NP完全问题的证明

一、限制法

最小覆盖问题(VC)

  • 问题实例 集合\(S\)的子集的集合\(C\),正整数\(k\)。问\(C\)是否有\(S\)的大小不超过\(k\)的覆盖,即是否包含子集\(C' \subseteq C\)使得 \(|C'|=k\)\(\bigcup C'=S\)
  • 证明方法:限制 \(\forall c \in C\)\(|c|=3\)\(|S|=sk\),则为X3C问题。

子图同构问题

  • 问题实例
    \(G=(V_1,E_1)\)\(H=(V_2,E_2)\)
    \(G\)中是否有同构于\(H\)的子图,即是否有子集\(V \subseteq V_1\)\(E \subseteq E_1\),使得 \(|V|=|V_2|\)\(|E|=|E_2|\) ,且存在双射函数\(f:V_2 \to V\),使得 \((u,v) \in E \Longleftrightarrow (f(u),f(v)) \in E_2\)
  • 证明方法:限制\(H\)为完全图,且 \(|V_2|=k\) ,则该问题是团的问题。

0-1背包(Knapsack)

  • 问题实例
    有穷集\(U\)\(\forall u \in U\),大小\(s(u)\in Z^+\),价值\(v(u)\in Z^+\),大小的约束\(B \in Z^+\),价值目标\(K \in Z^+\)
    问是否有子集\(U' \subseteq U\),使得
    \[\begin{equation} \sum_{\boldsymbol{u} \in U} \boldsymbol{s}(\boldsymbol{u}) \leq \boldsymbol{B}, \quad \sum_{\boldsymbol{u} \in \boldsymbol{U}^{\prime}} \boldsymbol{v}(\boldsymbol{u}) \geq \boldsymbol{K} \end{equation}\]
  • 证明方法:限制 \(\forall v \in U\)
    \[s(u)=v(u)\]
    \[ B=\left\lfloor\frac{1}{2} \sum_{u \in U} s(u)\right\rfloor, \quad K=\left\lceil\frac{1}{2} \sum_{u \in U} v(u)\right\rceil \]
    则成为均分问题。

三元集合的恰当覆盖(X3C)

  • 问题实例
    有穷集\(S\)\(|S|=3q\)\(S\) 的三元子集\(C\)
    问是否有\(C' \subseteq C\),使得\(S\)的每个元素恰好出现在\(C'\) 的一个成员中。
  • 证明方法:限制
    • \(S=W \cup X \cup Y\)
    • \(|W|=|X|=|Y|=q\)
    • \(C=\{(w,x,y)|(w,x,y) \in W \times X \times Y)\}\)\(|C'| = q\) ,且\(C'\) 中任两个元素都不相交,成为3DM问题。

集中集

  • 集合\(S\)的子集的集合\(C\),正整数\(k\)。问\(S\)是否包含\(C\)的大小不超过\(k\)的集中集,即是否有\(S' \subseteq S\)\(|S'| \leq k\),使得\(S'\)至少包含\(C\)的每个子集的一个元素。
  • 证明方法:限制 \(\forall c \in C\)\(|c|=2\),令\(V=S\)\(E=C\),则构成图 \(G=(V,E)\) 的顶点覆盖问题。

有界度的生成树

  • 问题实例
    \(G=(V,E)\)
    \(G\)是否包含一棵顶点度数不超过\(k\)的生成树,即是否有子集\(E'\subseteq E\)\(|E'|=|V|-1\),图\(G'=(V,E')\) 是连通的,且\(V\)中每个顶点至多包含在\(E'\)\(k\) 条边中。

  • 证明方法:限制\(k=2\) ,该问题则为哈密顿通路问题。

多处理机调度

  • 问题实例 有穷任务集\(A\)\(\forall a \in A\),长度\(l(a) \in Z^+\),处理机台数\(m \in Z^+\),截止时间\(D \in Z^+\)
    问是否存在不交的集合\(A_1,A_2,...,A_m\)使得
    \[ A=A_{1} \cup A_{2} \cup \ldots \cup A_{m} \]
    \[ \max \left\{\sum_{a \in A_{i}} l(a): 1 \leq i \leq m\right\} \leq D \]
  • 证明方法:限制\(m=2\)
    \[ D=\left\lfloor\frac{1}{2} \sum_{a \in A} l(a)\right\rfloor \]
    则成为均分问题。

二、局部替换法

选择已知完全问题的实例中的某些元素作为基本单位,然后把每个基本单元替换成指定结构,从而得到目标问题的对应实例。

3SAT问题

两点间的哈密顿通路问题

区间排序

分量设计法

最小拖延排序

猜你喜欢

转载自www.cnblogs.com/yaliyalimayali/p/11962482.html
今日推荐