[算法概论习题] 证明 EXACT 4SAT 是 NP-complete 问题

8.8. In the EXACT 4 SAT problem, the input is a set of clauses, each of which is a disjunction of exactly four literals, and such that each variable occurs at most once in each clause. The goal is to find a satisfying assignment, if one exists. Prove that EXACT 4 SAT is NP-complete.

证明: 易证 EXACT 4SAT 问题是 NP 问题。已知,3SAT 问题为 NP-complete 问题,现将 3SAT 问题归约到 EXACT 4SAT,即可证明 EXACT 4SAT 为 NP-complete 问题。

对于一个 3SAT 问题,

(x¯yz¯)(xy¯z)(xyz)(x¯y¯)

可以向其中的每一个子句 (clause) 中添加无关的辅助变量将其扩充为一个 EXACT 4SAT 问题,扩充后问题如下

(x¯yz¯a1)(xy¯za2)(xyza3)(x¯y¯a4a5)

这个扩充步骤显然可以在多项式时间内完成。下面验证归约的正确性,

  1. 当 EXACT 4SAT 问题有解时
    由于 a1,a2,...,a5 为无关的辅助变量,因此存在一组赋值,使得 3SAT 问题也有解。

  2. 当 EXACT 4SAT 问题无解时
    用反证法证明,假设此时 3SAT 问题有解,那么 3SAT 解的一组赋值同样也是转化后的 EXACT 4SAT 的解,矛盾。因此当 EXACT 4SAT 问题无解时,3SAT 问题也无解。

综上得证,EXACT 4SAT 问题为 NP-complete 问题。

你可能感兴趣的:(NP问题)