2016-04-27 135 views
2

我最近一直在努力学习逻辑,但我遇到了一个我无法做的查询,而且我不太确定哪里出错。将查询转换为CNF时,当您遇到这种特殊情况时,您会做什么?将查询转换为CNF

(a AND NOT(b AND c)) AND (d OR e) 
= (a AND NOT b) OR (a AND NOT c) AND (d OR e) 
= 

我该如何重新安排它将其转换为CNF格式?我在做一些完全错误的事情吗?

感谢您的帮助, 肖恩

回答

0

我用的符号:

^ for AND 
v for OR 
~ for NOT 

,这里是你如何改变你的公式在CNF:

(a^~(b^c))^(d v e) 
= (a^(~b v ~c))^(d v e) // DeMorgan: ~(A^B) <=> (~A v ~B) 
= a^(~b v ~c)^(d v e) 
= CNF 

每一个条款是分开的由AND并且仅包含OR。随着你的语法它给:

a AND (NOT b OR NOT c) AND (d OR e) 

我希望它能帮助:)