命题逻辑:CNF转换
Proposition Logic : CNF Conversion
我正在尝试解决一个简单的练习,我必须在其中转换 CNF 中的命题句:
这是句子:
P => (Q <=> R)
根据解析规则,我做的第一件事就是这样消除<=>符号:
P => (Q <=> R) ---> P => (Q V R) /\ (R V Q)
然后我删除了 => 符号:
P => (Q V R) /\ (R V Q) ------> ¬P V (Q V R) /\ (R V Q)
所以我的解决方案是:(¬P V Q V R) /\ (¬P V R V Q)
而正确的是:(¬P V ¬Q V R) /\ (¬P V ¬R V Q)
任何人都可以帮助我了解我哪里错了吗?
Whosebug 是为编程题设计的,它规定这个问题离题。但是既然我已经打了那么多,让我补充一下你的第一步......
P => (Q <=> R) ---> P => (Q V R) ^ (R V Q)
不正确。
你知道 Q<=>R
根据定义意味着 (Q=>R)^(R=>Q)
,对吗?所以更换它是第一步。然后你可以使用等价物 (Q=>R) ---> (~QvR)
和 (R=>Q) ---> (~RvQ)
.
把这些放在一起你应该得到...
P => (Q <=> R) ---> P => (~Q V R) ^ (~R V Q)
我想你可以解决剩下的问题。
我正在尝试解决一个简单的练习,我必须在其中转换 CNF 中的命题句:
这是句子: P => (Q <=> R)
根据解析规则,我做的第一件事就是这样消除<=>符号:
P => (Q <=> R) ---> P => (Q V R) /\ (R V Q)
然后我删除了 => 符号:
P => (Q V R) /\ (R V Q) ------> ¬P V (Q V R) /\ (R V Q)
所以我的解决方案是:(¬P V Q V R) /\ (¬P V R V Q)
而正确的是:(¬P V ¬Q V R) /\ (¬P V ¬R V Q)
任何人都可以帮助我了解我哪里错了吗?
Whosebug 是为编程题设计的,它规定这个问题离题。但是既然我已经打了那么多,让我补充一下你的第一步......
P => (Q <=> R) ---> P => (Q V R) ^ (R V Q)
不正确。
你知道 Q<=>R
根据定义意味着 (Q=>R)^(R=>Q)
,对吗?所以更换它是第一步。然后你可以使用等价物 (Q=>R) ---> (~QvR)
和 (R=>Q) ---> (~RvQ)
.
把这些放在一起你应该得到...
P => (Q <=> R) ---> P => (~Q V R) ^ (~R V Q)
我想你可以解决剩下的问题。