📅  最后修改于: 2023-12-03 15:28:09.112000             🧑  作者: Mango
图的支配集问题是一个在离散数学和计算机科学领域中广泛研究的问题。给定一个无向图 $G=(V,E)$,一个顶点子集 $D \subset V$ 被称为图 $G$ 的支配集,如果每个顶点 $v \in V$ 要么在 $D$ 中,要么至少有一个与之相邻的顶点在 $D$ 中。该问题的目标是找到一个支配集,使其大小最小。
我们将证明该问题是 NP 完全的。
首先,我们将该问题作为一个决策问题。设一张图 $G=(V,E)$ 和一个整数 $k$,问题是是否存在一个支配集 $D$ 使得 $|D| \le k$。我们可以将该问题转化为一个图 $G'=(V',E')$,其中 $|V'|=n+1$,$G'$ 中添加了一个称为虚拟节点的节点 $v_{n+1}$。对于 $1 \le i \le n$,在 $G'$ 中加入一个从 $v_{n+1}$ 到节点 $v_i$ 的边。我们还要求 $G'$ 中存在一个支配集 $D'$,使得 $|D'| \le k+1$,且 $D'$ 中必须包含虚拟节点 $v_{n+1}$。这里我们可以证明,在 $G'$ 中存在一个大小小于等于 $k+1$ 的支配集 $D'$,当且仅当在 $G$ 中存在一个大小小于等于 $k$ 的支配集 $D$。因此,我们证明了该问题是一个 NP 问题。
我们接下来需要证明该问题是 NP 完全的。这里我们可以证明图的顶点覆盖集问题是 NP 完全的,从而得出图的支配集问题也是 NP 完全的。
图的顶点覆盖集问题就是给定一个无向图 $G=(V,E)$ 和一个整数 $k$,问题是是否存在一个顶点覆盖集 $S \subset V$,使得 $|S| \le k$,且每条边至少有一个端点在 $S$ 中。
假设我们已经解决了图的支配集问题,我们可以将其转化为一个图的顶点覆盖集问题。对于给定的图 $G=(V,E)$ 和整数 $k$,我们先求出其支配集 $D$,然后将其转化为顶点覆盖集 $S=V-D$。由于支配集 $D$ 满足每个顶点要么在 $D$ 中,要么至少有一个与之相邻的顶点在 $D$ 中,因此对于每条边 $(u,v) \in E$,至少有一个顶点在支配集 $D$ 中,即至少有一个顶点不在顶点覆盖集 $S$ 中。因此,顶点集 $S=V-D$ 是图的顶点覆盖集。反之,如果存在一个顶点覆盖集 $S$,则可以得到一个支配集 $D=V-S$,这个支配集满足每个顶点要么在 $D$ 中,要么至少有一个与之相邻的顶点在 $D$ 中。因此,支配集问题可以在多项式时间内归约到图的顶点覆盖集问题。
由于图的顶点覆盖集问题是 NP 完全的,图的支配集问题也是 NP 完全的。证毕。
参考文献:
Michael R. Garey and David S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman and Company, 1979.
Christos H. Papadimitriou and Kenneth Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Dover Publications, 1998.