如何将此等式转换为CNF?
¬((p ∨ ¬Q) ⊃ R) ⊃ (P ∧ R))
答案 0 :(得分:14)
要将propositional formula转换为conjunctive normal form,请执行以下两个步骤:
将否定推入公式,重复应用De Morgan's Law,直到所有否定仅适用于原子。您在negation normal form中获得了一个公式。
¬(p ∨ q)
至(¬p) ∧ (¬q)
¬(p ∧ q)
至(¬p) ∨ (¬q)
反复应用distributive law在结合处发生析象的地方。一旦这不可能,公式就在CNF中。
p ∨ (q ∧ r)
至(p ∨ q) ∧ (p ∨ r)
要获取分离范式的公式,只需在步骤2中应用∧
超过∨
的分布。
⊂
问题中使用的子集符号(⊂
)只是逻辑蕴涵/蕴涵的替代符号,通常写成箭头(⇒
)。
答案 1 :(得分:4)
http://en.wikipedia.org/wiki/Conjunctive_normal_form
将一阶逻辑转换为CNF:
- 转换为否定正常形式。
- 消除影响:将x→y转换为¬x∨y
- 向内移动NOT。
- 标准化变量
- Skolemize the statement
- 删除通用量词
- 通过OR分发AND。
醇>(人工智能:一种现代的 方法[1995 ...] Russel和Norvig)
答案 2 :(得分:1)
我可以建议吗?页面上有一个转换算法。
答案 3 :(得分:0)
我在Java中实现了一个小工具,它可以从布尔表达式到(C | D)NF进行基本转换。如果您有兴趣,可以查看https://github.com/julianthome/ctrans。实施基于these lecture notes。可以找到更详细的描述here。任何反馈将不胜感激; - )。