Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 2-SAT问题中CNF向命令范式转换的解释?_Algorithm_Computer Science_Boolean Algebra - Fatal编程技术网

Algorithm 2-SAT问题中CNF向命令范式转换的解释?

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 ----+-----

所以这个问题对你们中的许多人来说可能是愚蠢的,但我发现理解CNF子句到INF子句的转换有点困难

我正在经历它所说的:

首先,我们需要将问题转换为另一种形式,即所谓的隐含范式。请注意,表达式a∨b相当于a⇒B∧-b⇒a(如果两个变量中的一个为假,则另一个必须为真)

有人能解释一下我们是如何得到这个结果的/这种转换是如何有意义的吗?我也不知道“=>”符号是什么意思。提前谢谢


更新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才为假。