证明精确4SAT问题是NPC问题
问题:
在精确的4SAT(EaACT 4SAT)问题中,输入为一组子句,每个子句都是4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值—-如果该赋值存在。证明精确的4SAT是NP-完全问题。
分析:
证明某个问题是NPC问题,一般思路是找一个已知的NPC问题来归约带该问题。其中3SAT问题是已知的NPC问题,所以接下来只要证明3SAT问题可以归约到精确的4SAT问题即可。
证明过程:
3SAT问题:A = (a1 ∨ a2 ∨ a3) ∧ (a4 ∨ a5 ∨ a6) ∧ ….∧(a ∨ a ∨ a)
精确4SAT问题: A = (a1 ∨ a2 ∨ a3 ∨ a4) ∧ (a5 ∨ a6 ∨ a7 ∨ a8) ∧…. ∧(a ∨ a ∨ a ∨ a)
容易证明(a1 ∨ a2 ∨ a3) 等价于 (a1 ∨ a2 ∨ a3 ∨ y) ∧ (a1 ∨ a2 ∨ a3 ∨ !y)
这样可以通过如下形式把3SAT问题形式变成精确4SAT问题形式
即A = (a1 ∨ a2 ∨ a3 ∨ y1) ∧ (a1 ∨ a2 ∨ a3 ∨ !y1) ∧(a4 ∨ a5 ∨ a6 ∨ y2) ∧ (a4 ∨ a5 ∨ a6 ∨ !y2) ∧ ….∧(a ∨ a ∨ a ∨ y)∧(a ∨ a ∨ a ∨ !y)
由此证明3SAT问题可以归约到精确的4SAT问题,从而证明精确4SAT问题是NPC问题