命题公式转CNF和CNF转DNF算法

本文详细介绍了如何将命题公式转换为合取范式(CNF)和从CNF转换为析取范式(DNF)的步骤。包括去蕴含、转化为非负合取形式(NNF)、吸收定律的应用,以及CNF到DNF转换时避免指数级膨胀的方法。同时也提及了一种越南人论文中提出的避免CNF膨胀的转换规则。
摘要由CSDN通过智能技术生成

一.命题公式转CNF:

1.去蕴含->:(将所有形如前式的换成后式,大写字母代表一个命题公式,小写字母表示原子,下同)

P -> Q        =>      ( ~P ) | ( Q );

2.转成NNF:(即将~全部转移到原子前)

~( P | Q )    =>      (~P) & (~Q);

~( ~P )        =>      P;

~( P & Q )   =>      (~P) | (~Q);

3.转化成CNF

(Q&R)|P      =>      (Q|P)&(R|P);

Q|(R&P)      =>      (Q|R)&(Q|P);

4.吸收

此时公式已转化成形如Q&Q1&Q2&...形式;

检查每个Q:

a|a   => a;

a|~a => true;

再检查各个Q之间是否包含,形如Qn=Qm|P;则删掉Qn,留Qm;


此时得出的结果就是吸收过的CNF了。


二.CNF转DNF:

CNF形如:

(a11|a12|a13..a1n)&(a21|a22...a2n)...(an1|an2...ann)


则对应的DNF为:

所有(a1,a2,a3...an)的析取(此处ai表示从ai1,ai2..ain中任取一个);


对DNF进行吸收<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值