4-SAT问题: 4-SAT是3-SAT的概括(k-SAT是SAT,其中每个子句具有k个或更少的字面量)。
问题陈述:鉴于条款构成在合取范式(CNF)一个公式f,每4个字面量,问题是确定是否存在用于公式f满足一个分配。
说明:问题的一个实例是为问题指定的输入。 4-SAT问题的一个实例是CNF公式,任务是检查该公式是否满足要求。由于NP-Complete是一个问题,在NP和NP-hard中都存在,因此,证明问题为NP-Complete的陈述的证明包括两部分:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.
(B is polynomial-time reducible to C is denoted as B ≤ PC)
如果仅满足第二个条件,则该问题称为NP-Hard 。
但是不可能始终将每个NP问题都简化为另一个NP问题以显示其NP完整性。这就是为什么如果我们想说明一个问题是NP完全的,我们只是表明,问题是NP和任何NP完全问题是还原到后来我们都做了,也就是说,如果B是NP完全和B≤Ç 。对于NP中的C,则C为NP-Complete。因此,可以使用以下两个命题来验证4-SAT问题是否为NP完全问题:
- 4-SAT问题在NP中:
如果NP中存在任何问题,则给定“证书”,该证书是问题的解决方案和问题的实例(在这种情况下为公式f ),可以对其进行验证(检查给出的解决方案是否正确)否)证书在多项式时间内。这可以通过以下方式完成:
给定属于公式f的变量的分配,如果该分配满足或不满足该公式,则可以在线性时间内验证该分配。 - 4-SAT问题是NP-Hard :
为了证明4-SAT问题是NP-Hard,请将已知的NP-Hard问题简化为该问题。推论出可以将3-SAT问题简化为4-SAT问题的减少量。例如,对于3-SAT公式f的每个子句,应在公式中添加字面量a及其对应的补语a’ 。设子句c ,使c = u V v’V w
要将其转换为4-SAT,我们将c转换为c’ ,这样,
c’=(u V v’V w V a’)和(u v v’V w V a’) 。
模拟此转换后,两个属性成立:- 如果3-SAT具有令人满意的分配,这意味着每个子句对于一组特定的字面量值求值为true,则4-SAT也将成立,因为每个子句集都是由字面量及其补码组成的,其价值不会有任何不同。
- 如果4-SAT对于(u V v V w V a)和(u V v V w V a’)中的任何一个都可满足,则3-SAT也可满足,因为a和a’是补码,这表明公式为可以满足,因为还有其他字面量。
因此,按照上述命题,4-SAT问题是NP-Complete 。