📅  最后修改于: 2020-12-11 01:35:02             🧑  作者: Mango
3CNF SAT
概念:-在3CNF SAT中,您至少有3个子句,并且在子句中,您将拥有几乎3个字面量或常量
如(X + Y + Z)(X + Y + Z)(X + Y + Z )
您可以定义为(XvYvZ)ᶺ(Xv Y vZ)ᶺ(XvYv Z )
V = OR运算符
^ = AND运算符
以下所有这些点都需要在3CNF SAT中加以考虑。
证明: –
- 3CNF SAT的概念
- SAT≤ρ3CNF SAT
- 3CNF≤ρSAT
- 3CNF ϵ NPC
- 概念: -在3CNF SAT中,您至少有3个子句,在3个子句中,您将有几乎3个字面量或常量。
- SAT≤ρ3CNF SAT: -首先,您需要在多项式时间内F = X + YZ =(X + Y)(X + Z)=(将SAT中创建的布尔函数转换为POS或SOP形式的3CNF X + Y + ZZ')(X + YY'+ Z)=(X + Y + Z)(X + Y + Z')(X + Y + Z)(X + Y'+ Z)=(X + Y + Z)(X + Y + Z')(X + Y'+ Z)
- 3CNF≤pSAT: -从具有三个字面量的布尔函数中,我们可以将整个函数简化为较短的一个。 F =(X + Y + Z)(X + Y + Z')(X + Y'+ Z)=(X + Y + Z)(X + Y + Z')(X + Y + Z)(X + Y'+ Z)=(X + Y + ZZ')(X + YY'+ Z)=(X + Y)(X + Z)= X + YZ
- 3CNF ϵ NPC: -众所周知,您可以通过SAT获得3CNF,并且可以通过来自NP的CIRCUIT SAT获得SAT。
NPC证明:
- 它表明您可以轻松地将SAT的布尔函数转换为3CNF SAT,并且还可以在多项式时间内通过归约概念满足3CNF SAT的概念。
- 如果要验证3CNF SAT中的输出,请执行精简并转换为SAT和CIRCUIT来检查输出
如果您能达到这两点,则意味着NPC中也有3CNF SAT