Algorithm 2-SAT问题中CNF向命令范式转换的解释?
所以这个问题对你们中的许多人来说可能是愚蠢的,但我发现理解CNF子句到INF子句的转换有点困难 我正在经历它所说的: 首先,我们需要将问题转换为另一种形式,即所谓的隐含范式。请注意,表达式a∨b相当于a⇒B∧-b⇒a(如果两个变量中的一个为假,则另一个必须为真) 有人能解释一下我们是如何得到这个结果的/这种转换是如何有意义的吗?我也不知道“=>”符号是什么意思。提前谢谢Algorithm 2-SAT问题中CNF向命令范式转换的解释?,algorithm,computer-science,boolean-algebra,Algorithm,Computer Science,Boolean Algebra,所以这个问题对你们中的许多人来说可能是愚蠢的,但我发现理解CNF子句到INF子句的转换有点困难 我正在经历它所说的: 首先,我们需要将问题转换为另一种形式,即所谓的隐含范式。请注意,表达式a∨b相当于a⇒B∧-b⇒a(如果两个变量中的一个为假,则另一个必须为真) 有人能解释一下我们是如何得到这个结果的/这种转换是如何有意义的吗?我也不知道“=>”符号是什么意思。提前谢谢 更新1:如果对不同的逻辑符号有疑问,请参考此项。=>是含义,具有真值表: A B | A => B ----+-----
更新1:如果对不同的逻辑符号有疑问,请参考此项。
=>
是含义,具有真值表:
A B | A => B
----+-------
F F | T
F T | T
T F | F
T T | T
事实上,您可以显示a=>b
等同于~a\/b
。(只需填写真相表即可。)
现在,我们有:
~a => b
= ~(~a) \/ b
= a \/ b
因此,它更强大:a\/b
相当于~a=>b
。您可以类似地显示它也相当于~b=>a
;因此,使用连词可能是多余的,但它不会改变等价性
如果有疑问,总是画完整的真值表,假设你有4-5个变量,这将是非常有教育意义的。如果您有更多变量,请使用SAT/SMT解算器来证明等效性。这就是它们的好处。同样在维基上,它仅仅意味着“如果p是真的,那么q也是真的”,因此语句p→ 只有当p为真且q为假时,q才为假。