算法概论课本第八章习题作业 8.8

来源:互联网 发布:添加网络打印机步骤xp 编辑:程序博客网 时间:2024/05/28 15:06

8.8 在精确的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个子句都是给好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP-完全问题。

解:首先,EXACT 4SAT属于NP。现在通过将3SAT归约成EXACT 4SAT来证明后者是NP完全的。对于任一3SAT,如果其中某个子句包含了同一个文字多次,那么可以缩减为一次,如果包含某个变量的肯定及否定,那么可以将这个变量去掉。然后,可以再在每个子句中添加一些没用的辅助变量,这样就可以将每个子句的文字数目扩充到四个,至此,就将3SAT实例转换成EXACT 4SAT问题。而3SAT问题是NP完全的。