目录

  • NP完全问题的证明
  • 一、限制法
  • 最小覆盖问题(VC)
  • 子图同构问题
  • 0-1背包(Knapsack)
  • 三元集合的恰当覆盖(X3C)
  • 集中集
  • 有界度的生成树
  • 多处理机调度
  • 二、局部替换法
  • 3SAT问题
  • 两点间的哈密顿通路问题
  • 区间排序
  • 分量设计法
  • 最小拖延排序

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'\)

集中集

  • 集合\(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问题

两点间的哈密顿通路问题

区间排序

分量设计法

最小拖延排序