题目:
在精确的4SAT(EXACT 4SAT)问题中,输入为一组子句,每个子句都是恰好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值(如果该赋值存在)。证明精确的4SAT问题是NP-完全问题。
解答:
首先证明EXACT 4SAT 属于 NP,然后再通过将 3SAT 归约到 EXACT 4SAT 来证明后者的 NP 完全性。
EXACT 4SAT同SAT问题类似,显然给出一个解都可以在多项式时间内验证,所以EXACT 4SAT问题是NP的。
对于任意一个 3SAT 实例(a1V a2V a3)(a4 V a5 V a6)...(...V ak),如果其中某个子句中ai出现多次,那么可以缩减为一次,如果同时包含了ai和~ai,那么可以将ai和~ai去掉。然后,可以再在每个子句中可以添加一些辅助变量如:(a1V a2V a3Vy1)(~y1Va4 V a5 V a6)...(...~ynV ak),使每个子句所包含的文字数目扩充到四个。至此,即已将该3SAT 问题归约为一个 EXACT 4SAT 问题。 因为3SAT问题是NP-完全问题,所以EXACT 4SAT问题也是NP-完全问题。