证明NP完全问题

xiaoxiao2021-02-28  102

8.12 The k-spanning tree problem is the following.

Input: An undirected graph G = (V,E)

Output: A spanning tree of G in which each node has degree ≤ k, if such a tree exists.

Show that for any k ≥ 2:

(a) k-spanning tree is search problem.

(b) k-spanning tree is NP-complete.(HINT:Start with k=2 and consider the relation between this problem and RUDRATA PATH.)

  (k-生成树问题是这样的:

  输入:无向图G = (V,E)

            输出:G的一个生成树,其中所有的节点度数不超过k-----如果该树存在的话。

请证明对任意的k,k≥2:

(a) k-生成树问题是一个搜索问题

(b) k-生成树是NP-完全问题。(提示:由k=2 开始,考虑该问题与RUDRATA路径问题的关联))

解:

(a)k-生成树是指给定一个无向图,找到一个生成树,其中每个节点的度数不超过k。验证任意给定的正解S是否是k生成树的过程,只需要用图搜索算法对S进行搜索,假设通过搜索可以知道S中所有顶点,不包含环,且每个点的度数不超过K,那么S就是K的生成树。同时我们知道图的搜索算法可以在多项式时间内解决,因此k-生成树问题是一个搜索问题,同时也证明它是一个NP问题。

(b)由(a)我们可以知道K-生成树一个完全问题,而证明是NP-完全问题只需要找到一个NP-完全问题规约到K-生成树问题。我们可以将RUDRATA路径问题规约到K-生成树问题。若K=2,此时的2-SPANNING TREE实际上就是一条RUDRATA路径。当K>2的时候,只要找到一课2-SPNNING TREE就可以找到k-SPANNING TREE.因此对于每个图通过搜索RUDRATA路径问题就可以通过寻找K-SPANNING TREE来解决。也就是说RUARATA路径问题可以规约为k-SPANNING TREE问题。综上k-生成树问题是NP-完全问题。

8.14 Prove that the following problem is NP-complete: given an undirected graph G = (V, E) and an integer k, return a clique of size k as weill as an independent set of size k, provided both exist.

( 证明如下问题是NP-完全的:给定一个无向图G=(V, E)和整数k,求G中一个规模为k的集以及一个规模为k 的独立集。假定他们都是存在的。)

解:可以将最大独立集问题规约到此问题。比如若要求任意图G(V, E)中大小为d的独立集,可以令G1 = G(V, E),再令G2(V,∅)的顶点集与G相同,但是边集为空,也即是各个定点相互独立。于是G1与G2存在着大小为d的公共子图,当且仅当图G存在着大小为d的独立集。

转载请注明原文地址: https://www.6miu.com/read-26430.html

最新回复(0)