离散数学第五课

主析取范式与主合取范式

数理逻辑

析取范式和合取范式

判断以下为析取范式还是合取范式

¬(p∨q)∧¬(p→q)→¬(p→q)∧¬(¬p∨¬q)

(p∨q)∧(¬p∨¬q)

¬(p→q)∨¬q

¬(¬p∨q)→r

p∨q

p∧q

简单合取式和简单析取式既是析取范式又是合取范式

◆ 求范式的步骤:

  1. 消去联结词**→、↔**
     A→B ⇔ ¬A∨B
     A↔B ⇔ (A→B)∧(B→A)
  2. 使用双重否定律消去双重否定符,使用德摩根定律内移否定符
     ¬¬A ⇔ A
     ¬(A∨B) ⇔ ¬A∧¬B
     ¬(A∧B) ⇔ ¬A∨¬B
  3. 使用分配律
     A∨(B∧C) ⇔ (A∨B)∧(A∨C) 求合取范式
     A∧(B∨C) ⇔ (A∧B)∨(A∧C) 求析取范式

极小项和极大项

◆ 极小项中:将命题变元看成 1 ,命题变项的否定看成 0

◆ 极大项中:将命题变项的否定看成 1,命题变项看成 0

| 极小项 | | 极大项 |

| 公式 | 成真赋值 | 名称 | 公式 | 成假赋值 | 名称 |

| ¬p∧¬q | 0 0 | m₀ | p∨q | 0 0 | M₀ |

| ¬p∧q | 0 1 | m₁ | p∨¬q | 0 1 | M₁ |

| p∧¬q | 1 0 | m₂ | ¬p∨q | 1 0 | M₂ |

| p∧q | 1 1 | m₃ | ¬p∨¬q | 1 1 | M₃ |

主析取范式和主合取范式

◆ 若由 n 个命题变项构成的析取范式中所有的合取式都是极小项,则称其为主析取范式 (full disjunctive normal form),用 表示。

◆ 仅由有限个极小项构成的析取范式称为主析取范式。

◆ 若由 n 个命题变项构成的合取范式中所有的析取式都是极大项,则称其为主合取范式 (full conjunctive normal form),用 表示。

◆ 即仅由有限个极大项构成的合取范式称为主合取范式。

◆ 例 求公式 A = (p→q)→r 的主析取范式和主合取范式

(p→¬q)→r

⇔ (¬p∨¬q)→r (消去第一个→)

⇔ ¬(¬p∨¬q)∨r (消去第二个→)

⇔ (p∧q)∨r (否定号内移 ------ 德摩根律)析取范式

⇔ (p∨r)∧(q∨r) (对∨分配律) 合取范式

求公式主析取范式的步骤:

设公式 A 的含命题变项 p₁,p₂,...,pₙ

(1) 求 A 的析取范式 A'=B₁∨B₂∨...∨Bₛ, 其中 Bⱼ是简单合取式 j=1,2,...,s

(2) 若某个 Bⱼ既不含 pᵢ, 又不含 ¬pᵢ, 则将 Bⱼ用分配律展开成

 Bⱼ ⇔ Bⱼ∧(pᵢ∨¬pᵢ) ⇔ (Bⱼ∧pᵢ)∨(Bⱼ∧¬pᵢ)

重复这个过程,直到所有简单合取式都是长度为 n 的极小项为止

(3) 消去重复出现的极小项,即用 mᵢ代替 mᵢ∨mᵢ

(4) 将极小项按下标从小到大排列,并用∑表示之。

 如 m₁∨m₂∨m₇ 用 ∑(1, 2, 5) 表示

◆ 例 求公式 A = (p→¬q)→r 的主析取范式和主合取范式
◆ 主析取范式

解   (p→q)→r

   ⇔ (p∧¬q)∨r (析取范式) ①

p∧q

⇔ (p∧q)∧(r∨¬r)

⇔ (p∧q∧¬r)∨(p∧q∧r)

⇔ m6∨m7 ②

r

⇔ r∧(p∨¬p)∧(q∨¬q)

⇔ (¬p∧¬q∧r)∨(¬p∧q∧r)∨(p∧¬q∧r)∨(p∧q∧r)

⇔ m₇∨m₅∨m₃∨m₁ ③

③, ②代入①并排序,得

(p→¬q)→r ⇔ m₁∨m₃∨m5∨m6∨m₇ (主析取范式)

⇔ ∑(1,3,4,5,7)

求公式主合取范式的步骤:

设公式 A 的含命题变项 p₁,p₂,...,pₙ

(1) 求 A 的合取范式 A'=B₁∧B₂∧...∧Bₛ, 其中 Bⱼ是简单析取式 j=1,2,...,s

(2) 若某个 Bⱼ既不含 pᵢ, 又不含 ¬pᵢ, 则将 Bⱼ展开成

 Bⱼ ⇔ Bⱼ∨(pᵢ∧¬pᵢ) ⇔ (Bⱼ∨pᵢ)∧(Bⱼ∨¬pᵢ)

重复这个过程,直到所有简单析取式都是长度为 n 的极大项为止

(3) 消去重复出现的极大项,即用 Mᵢ代替 Mᵢ∧Mᵢ

(4) 将极大项按下标从小到大排列,并用∏表示之。

 如 M₀∧M₂∧M₆ 用 ∏(0, 2, 6) 表示

◆ 例 求公式 A = (p→¬q)→r 的主析取范式和主合取范式
◆ 主合取范式

解   (p→¬q)→r

   ⇔ (p∨r)∧(q∨r) (合取范式) ④

p∨r

⇔ p∨(q∧¬q)∨r

⇔ (p∨q∨r)∧(p∨¬q∨r)

⇔ M₀∧M₂ ⑤

q∨r

⇔ (p∧¬p)∨q∨r

⇔ (p∨q∨r)∧(¬p∨q∨r)

⇔ M0∧M4 ⑥

⑤, ⑥代入④ 并排序,得

(p→¬q)→r ⇔ M₀∧M₂∧M4(主合取范式)

⇔ ∏(0,2,6)


以下逻辑公式中,(¬p∨¬q)→(p↔¬q) 的主合取范式是 ( )B

A. (p∨q)∧(p∨¬q)∨(¬p∧q)

B. p∨q

C. (p∨q)∧(p∨¬q)

D. (p∨¬q)∧(¬p∨q)

求 (p ∧ q) ∨ r 的主合取范式以及主析取范式

◆ 主范式的应用

✓ 求公式的成真赋值与成假赋值

✓ 判断公式的类型

✓ 判断两个命题公式是否等值

✓ 实际逻辑推理

1. 求公式的成真、成假赋值

设公式 A 含 n 个命题变项. A 的主析取范式有 s 个极小项,则 A 有 s 个成真赋值 ,它们是极小项下标的二进制表示,其余 2ⁿ-s 个赋值都是成假赋值

例如

(p→¬q)→r ⇔ m₁∨m₃∨m5∨m6∨m₇

成真赋值为 001, 011, 100, 110, 111;

成假赋值为 000, 010, 100.

类似的,用主合取范式也能立即求出成假和成真赋值

__________________________________________________________________________-

2. 判断公式类型(重点)

设 A 为含 n 个命题变项的公式

  • A 为重言式 ⇔ A 的主析取范式含全部 2ⁿ个极小项
        ⇔ A 的主合取范式不含任何极大项,记为1。
  • A 为矛盾式 ⇔ A 的主合取范式含全部 2ⁿ个极小项
        ⇔ A 的主析取范式不含任何极小项,记为0。
  • A 为非重言式的可满足式 ⇔ A 的主析取范式中至少含一个 ,但不是全部 极小项
           ⇔ A 的主合取范式中至少含一个 ,但不是全部极大项.

◆ 例 用主析取范式判断公式的类型:

(1) ¬(p→q)∧q

 解 ¬(p→q)∧q ⇔ ¬(¬p∨q)∧q ⇔ p∧¬q∧q ⇔ 0 矛盾式

(2) p→(p∨q)

 解 ¬p→(p∨q) ⇔ 1 ⇔ m₀∨m₁∨m₂∨m₃ 重言式

(3) (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∧r)∨(p∧q∧r)

⇔ m₀∨m₁∨m₃∨m₅∨m₇ 非重言式的可满足式

◆ 判断两个公式是否等值

例:用主析取范式判以下每一组公式是否等值

(1) p→(q→r) 与 (p∧q)→r

(2) p→(q→r) 与 (p→q)→r

解:

p→(q→r) = m₀∨m₁∨m₂∨m₃∨m₄∨m₅∨m₇

(p∧q)→r = m₀∨m₁∨m₂∨m₃∨m₄∨m₅∨m₇

(p→q)→r = m₁∨m₃∨m₄∨m₅∨m₇

显然,(1) 中两个公式等值,而(2)中公式不等值


◆ 由 A 的主析取范式求主合取范式的步骤

n 个变元的主析取范式 A 中含 k 个极小项

(1) 求出 A 的主析取范式中没包含 的极小项 mⱼ₁,mⱼ₂,...,mⱼ_(2ⁿ−k)

(2) 求出与步骤 1 中极小项下标相同的极大项 Mⱼ₁,Mⱼ₂,...,Mⱼ_(2ⁿ−k)

(3) 由以上极大项构成的合取式为 A 的主合取范式


例 由主析取范式确定主合取范式

设 A 有 3 个命题变项,且已知 A= m₁∨m₃∨m₇,求 A 的主合取范式。

解 A 的成真赋值是 1,3,7 的二进制表示,成假赋值是在主析取范式中没有出现 的极小项的下角标 0,2,4,5,6 的二进制表示,它们恰好是 A 的主合取范式 的极大项的下角标,故

A ⇔ M₀∧M₂∧M₄∧M₅∧M₆

由主合取范式也可以确定主析取范式

从真值表也可以确定主范式

例 ((p∨q)→r)→p

⇔ m₂∨m₄∨m₅∨m₆∨m₇

⇔ ∑(2,4,5,6,7)

⇔ M₀∧M₁∧M₃

⇔ ∏(0,1,3)


◆解决实际问题

例:某单位要从 A,B,C 三人中选派若干人出国考察,需满足下述条件:

(1) 若 A 去,则 C 必须去;

(2) 若 B 去,则 C 不能去;

(3) A 和 B 必须去一人且只能去一人。

问有几种可能的选派方案?

解 设 p: 派 A 去,q: 派 B 去,r: 派 C 去

(1) p→r, (2) q→¬r, (3) (p∧¬q)∨(¬p∧q)

问题转化为求下式的成真指派:

A=(p→r)∧(q→¬r)∧((p∧¬q)∨(¬p∧q))


◆ 求 A 的主析取范式

A = (p→r)∧(q→¬r)∧((p∧¬q)∨(¬p∧q))

⇔ (¬p∨r)∧(¬q∨¬r)∧((p∧¬q)∨(¬p∧q))

⇔ ((¬p∧¬q)∨(¬p∧¬r)∨(r∧¬q)∨(r∧¬r))∧((p∧¬q)∨(¬p∧q))

...略(别考试的时候像我这样写)

⇔ (p∧¬q∧r)∨(¬p∧q∧¬r)

成真赋值指派:101, 010

结论:

方案 1 派 A 与 C 去

方案 2 派 B 去

小结

● 深刻理解等值式的概念

● 牢记基本等值式的名称及它们的内容

● 熟练地应用基本等值式及置换规则进行等值演算

● 理解文字、简单析取式、简单合取式、析取范式、合取范式的概念

● 深刻理解极小项、极大项的概念、名称及下角标与成真、成假赋值的关系,并理解简单析取式与极小项的关系

● 熟练掌握求主范式的方法(等值演算、真值表等)

● 会用主范式求公式的成真赋值、成假赋值、判断公式的类型、判断两个公式是否等值

● 会用命题逻辑的概念及运算解决简单的应用问题

相关推荐
外收内放3 小时前
Python与AI应用(json模块)
python·学习
既然如此,那就开摆3 小时前
2023_Kirillov_SAM_总结
笔记·学习·遥感
外收内放3 小时前
Python与AI应用(文件操作)
python·学习
M78佐菲4 小时前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习
0566465 小时前
用大模型构建答疑机器人:从 API 调用到上下文工程
python·学习·agent
我爱cope5 小时前
【操作系统 | 开篇:什么是操作系统?从裸机到多任务系统】
学习·操作系统
迪丽热爱6 小时前
多媒体应用18-901(补)
学习
传奇开心果编程7 小时前
【Rust入门练中学】第4课:函数与所有权入门
开发语言·学习·rust
sunoo-2297 小时前
【ARM嵌入式学习笔记Day5】一文打通GPIO中断全链路:从硬件引脚→GIC→汇编入口→C语言处理
arm开发·笔记·学习·中断·gic·裸机开发