命题逻辑那些事 | 2. 主析(合)取范式

1|0一、必要概念

1|1简单X取式

简单析取式、简单合取式,说白了就是不知道这个简单是个啥?

简单就是有限

你可以说是公式的长度有限,或者公式包含的命题变项有限,反正就是有限

当然,还得是析(合)取联结词

这个概念有啥用吗?大抵是没啥用罢。

1|2X取范式

析取范式、合取范式,这个,又从何说起?

打个比方:

(     )  (    )  (     )

这就是个析取范式,( )里都是简单合取式,再通过析取符号连接起来

有限个 简单合取式 组成的析取式,就是析取范式 (没错,又是有限)

合取范式同理

1|3主X取范式、极小(大)项

这是激动人心的一步!步入正题了!

首先,主析取范式 比 析取范式 多了个,它不同在哪呢?

主析取范式的每个简单合取式中,每个变元都出现了一次。

我们举个例子:

( ABC )  ( ¬A¬BC )  ( A¬B¬C )

不难看出,在同一个( )内,每个变元都出现了一次

其中

  1. ( ∧ ∧ )极小项
  2. ( ∨ ∨ ) 是极大项

记忆法:∧ 是一个不包容的符号,喜欢排斥他人的符号(必须两边都为1才为1,要求很苛刻),因此这个符号越多,包容的越少,故称极小项。

1|4概念总结

我们刚才提到了四个概念:简单X取式、范式、极X项、主范式。

他们的关系其实可以一图以蔽之


2|0二、主X取范式的性质

1、每个命题公式都有唯一主析取范式和主合取范式

2、极小项角码 = 其公式的成真赋值

还记得我们上一篇文章就讲过成真赋值和角码有关

那角码是啥呢?为啥有关?

让我们先从角码开始:

2|1角码

“极小项中的变项必须按照字母表顺序排列”,就是比如你的变项有P、Q、R,我们都知道俗话说得好:“OPQ,RST,UVW完XYZ”,那么在每一个极小项中都必须严格把PQR按照这个顺序摆放,否则角码就求错了。

极小项可以用一种方法来表示,那就是小写字母m + 角码

而极小项本身可以转化为一个二进制数,例如:

¬P¬Q¬R000

¬P¬Q   R001

再将二进制转为十进制数,这个数值即为角码

因此上面的两个极小项就可以表示为

m0

m1

还记得我们说成真赋值是一组数,能让公式最终成真的一组数

这组数自然也是用二进制来表示每个变项的真与假

当然,一个公式的成真赋值可能有很多,那主析取范式也是由多个极小项析取而来的嘛

在书上说,通过成真赋值求主析取范式的方法,是求主析取范式的方法之一。

而我之所以把它搬到性质这里来,是因为我暂时没见到什么例题用过这种方法。

3、每个命题公式的主析取范式和主合取范式互补

互补是什么?

既然极小项可以表示为小写字母m + 角码

那么极大项自然也可以,极大项可表示为 大写字母M+角码

假设一个公式包含n个变项,那么则有2ⁿ种赋值,即2ⁿ个角码

其中一部分属于极小项,另一部分用于极大项

因此我们说主析取范式和主合取范式互补的意思就是说:

例如,对于一个有3个变项的公式来说,假如主析取范式为

m0  m1  m2  m7

则此公式的主合取范式即为

M3  M4  M5  M6

3|0三、求主析取范式

我们既然知道了主析取范式和主合取范式是互补的,那么我们还需要求出其中之一即可

我们可以先大致根据原式的"形状"选择出 求哪个更方便一些

不如直接来道例题吧!

( p ( q  r ) )( p  q  r )

我们首先肯定是先把那个最显眼的箭头(蕴含符号)去掉,那么就要我们之前说过特别重要的那个替换式——蕴含等值式

¬( p ( q  r ) )( p  q  r )

大功告成!你看那个在括号外面的否定符号是不是也不顺眼?要把它狠狠滴塞进后面括号里的每一个变项中去

所以就要用到德 · 摩根律

( ¬p ¬( q  r ) )( p  q  r )

看那个黄色的括号!是不是再次出现了“在括号外的否定符号”?那么我们再来一次德 · 摩根

( ¬p ( ¬q  ¬r ) )( p  q  r )

此时此刻,一个析取范式的雏形已经出现了,没发现?没关系,我们再来一步分配律,以把简单合取式都拆分出来

( ¬p  ¬q )( ¬p  ¬r )( p  q  r )

最后再把每一个简单合取式喂养成极小项就行了,我们来看手写笔记回顾一下这个运算全程——

我们能看出前面都是一些正常的演算,

其实第一步已经展示出了一些主析取范式的雏形,即从这里开始我决定先求主析取范式

演算到分配律那一行时是一个重要的转折点

从这里开始主析取范式的框架已经完成,接下来要做的就是硬往里填充,让简单合取式被喂养成极小项,也就是让每一个( )里都包括所有变项

这里有一个很重要的东西 ——怎么塞?

要主析,括号里的就是析取;要主合,括号里的就是合取

还有更简单的说法,其实就是把这个简单X取式 和 缺的那个变项的 是与非 分别组合一下即可

例如

pq(pqr)  (pq¬r)


__EOF__

本文作者IronRoc
本文链接https://www.cnblogs.com/IronRocGIS/p/17437703.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   IronRoc  阅读(2556)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

微信打赏