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

一、必要概念

简单X取式

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

简单就是有限

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

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

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

X取范式

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

打个比方:

\[(\ \ \land \ \land \ \ )\ \lor \ (\ \ \land \ \ )\ \lor \ (\ \ \land \ \land \ \ ) \]

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

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

合取范式同理

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

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

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

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

我们举个例子:

\[(\ A\land B\land C\ )\ \lor \ (\ \lnot A\land \lnot B\land C\ )\ \lor \ (\ A\land \lnot B\land \lnot C\ ) \]

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

其中

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

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

概念总结

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

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


二、主X取范式的性质

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

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

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

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

让我们先从角码开始:

角码

\[\textcolor{red}{注意!!!} \]

\[\textcolor{red}{从接下来开始,} \]

\[\textcolor{red}{一切一切的大前提是,} \]

\[\textcolor{red}{极小项中的变项必须按照字母表顺序排列!} \]

\[\textcolor{red}{极小项中的变项必须按照字母表顺序排列!} \]

\[\textcolor{red}{极小项中的变项必须按照字母表顺序排列!} \]

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

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

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

\[\lnot P \land \lnot Q \land \lnot R \Longrightarrow 000 \]

\[\lnot P \land \lnot Q \land \ \ \ R \Longrightarrow 001 \]

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

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

\[m_0 \]

\[m_1 \]

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

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

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

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

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

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

互补是什么?

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

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

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

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

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

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

\[m_0 \ \lor \ m_1\ \lor \ m_2\ \lor \ m_7 \]

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

\[M_3\ \land \ M_4 \ \land \ M_5\ \land \ M_6 \]

三、求主析取范式

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

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

不如直接来道例题吧!

\[(\ p\ \lor (\ q\ \land \ r\ )\ ) \textcolor{green}\rightarrow (\ p \ \land \ q \ \land \ r\ ) \]

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

\[\Longleftrightarrow \textcolor{green}\lnot \textcolor{red}(\ p\ \lor \textcolor{yellow}(\ q\ \land \ r\ \textcolor{yellow})\ \textcolor{red}) \textcolor{green}\lor (\ p \ \land \ q \ \land \ r\ ) \]

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

所以就要用到德 · 摩根律

\[\Longleftrightarrow \textcolor{red}(\ \textcolor{green}\lnot p\ \textcolor{green}{\land \lnot} \textcolor{yellow}(\ q\ \land \ r\ \textcolor{yellow})\ \textcolor{red}) \lor (\ p \ \land \ q \ \land \ r\ ) \]

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

\[\Longleftrightarrow \textcolor{red}(\ \lnot p\ \land \textcolor{yellow}(\ \textcolor{green}{\lnot}q\ \textcolor{green}\lor \ \textcolor{green}{\lnot}r\ \textcolor{yellow})\ \textcolor{red}) \lor (\ p \ \land \ q \ \land \ r\ ) \]

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

\[\Longleftrightarrow \textcolor{red}(\ \lnot p\ \land \ \lnot q \ \textcolor{red}) \lor \textcolor{red}(\ \lnot p\ \land \ \lnot r \ \textcolor{red})\lor (\ p \ \land \ q \ \land \ r\ ) \]

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

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

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

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

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

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

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

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

例如

\[p \land q \Leftrightarrow (p \land q \land r)\ \lor \ (p \land q \land \lnot r) \]

posted @ 2023-05-28 03:58  IronRoc  阅读(3064)  评论(0)    收藏  举报