题目:
In the EXACT 4SAT 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 4SAT is NP-complete.
证明如下:
因为3SAT问题已经证明是NPC问题,我们只需从3SAT问题归约到EXACT 4SAT问题,就可以得证。
当3SAT的子句中有重复的元素时,型如(x,~x)可以直接去掉,因为必为真;型如(x,x)的可以去掉一个x。这样就保证了每个子句里的元素不重复。
3SAT的实例中,每个子句有三种形式
(1)子句(a1∨a2∨a3)。可以转化成(a1∨a2∨a3∨x)(a1∨a2∨a3∨~x),当前者为真,后者必为真;后者为真时,x和~x中必有一个为假,那么假的那个子句对应的(a1∨a2∨a3)必为真。
(2)子句(a1∨a2)。可以转化为(a1∨a2∨x∨y)(a1∨a2∨~x∨y)(a1∨a2∨x∨~y)(a1∨a2∨~x∨~y),同理两者的真值等价。
(3)子句(a1)同上。
综上,3SAT问题可以多项式时间内归约到EXACT 4SAT,所以EXACT 4SAT问题是NPC问题。