8.3
Problem
STINGY SAT:给定一组子句和整数k,求最多有k个变量为true的满足赋值(如果存在)。
Solution
首先,给定一个解S,可以直接带入STINGY SAT检验其是否满足,复杂度为多项式时间,所以是NP的。
然后,STINGY SAT问题与SAT相比,增加了约束最多k个变量为true,所以可以将SAT归约到STINGY SAT。假设SAT有n个变量,即令k=n,这一过程是多项式(常数)时间的,而且很容易可以看出当STINGY SAT可满足时SAT也有可满足的解,反之亦然。
8.10
Problem a
子图同构:给定两个无向图G和H,判断G是否为H的一个子图,如果是则返回V(G)到V(H)的相关映射。
Solution
给定一组映射,我们可以判断出G是否是H的一个子图,所以问题是NP的。
判断是否为子图主要看点和边,所以可以将Rudrata回路归约到子图同构来证明它是NPC。设有图H和环G,H和G顶点数相等,该问题到子图同构只需要多项式的时间完成。如果G是H的子图,那么H一定存在Rudrata回路,并按照以某个起点开始的映射返回即可。如果G不是H的子图,则H一定不存在Rudrata回路,假设其存在,则可以推出G是H的子图,得到矛盾。
Problem b
最长路径:给定图G和整数g,求G中一条长为g的