8.3
题目描述:
Stingy SAT is the following problem: given a set of clauses(each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that Stingy SAT is NP-complete.
解答:
一个吝啬的SAT问题与SAT问题的区别就是吝啬SAT问题对解进行了限制,就是解中值为true的变量的个数不能超过k个。那么显然给定一个可能的解,我们可以在多项式时间内对其进行判断对错,所以,吝啬的SAT问题是一个NP问题。
如果我们想证明吝啬的SAT问题是一个NP完全问题,那么我们还需要证明其为NP难问题。
现有一个SAT问题其变量个数为l个,我们可以将其归约成一个吝啬的SAT问题,只需令k = l。如果此时吝啬的SAT有一个解,那么SAT问题也一定有解。如果此时吝啬的SAT没有解,那么SAT问题也一定没有解。因为SAT问题为NP难问题,所以吝啬的SAT问题也是NP难问题。
综上,吝啬的SAT问题为NP完全问题。
8.19
题目描述:
A kite is a graph on an even number of vertices, say 2n, in which n of the vertices form a clique and the remaining n vertices are connected in a “tail” that consists of a path joined to one of the vertices of the clique. Given a graph and a goal g, the KITE problem asks for a sub graph which is a kite and which contains 2g nodes, Prove that KITE is NP-complete.
解答:
一个风筝图问题就是在一个图中寻找一个子图,这个子图包含有2g个节点(其中g个节点形成一个团集,剩下的g个节点连接在一起并且与团集中的一个点相连)。那么显然给定一个可能的解,我们可以在多项式时间内对其进行判断对错,所以,风筝问题是一个NP问题。
如果我们想证明风筝图问题是一个NP完全问题,那么我们还需要证明其为NP难问题。
现在我们将一个团问题归约成一个风筝图问题。
给定一个图G(V,E),团问题是在图中找到一个规模为g的团集。我们在原图中添加一个有|V|个节点的链,并将链中的每个节点与原图中的|V|个节点分别连接,形成图G’,如果G’有一个结点数为2g的风筝,那么G一定有一个结点数为g的团,因为在构造G’添加节点的过程并不会在G’中引入新的团(因为添加的都是链),因此G和G’含有相同的团。因为团问题为NP难问题,所以风筝图问题也是NP难问题
综上,风筝图问题为NP完全问题。