主析取范式与主合取范式
数理逻辑
析取范式和合取范式
判断以下为析取范式还是合取范式
¬(p∨q)∧¬(p→q)→¬(p→q)∧¬(¬p∨¬q)
(p∨q)∧(¬p∨¬q)
¬(p→q)∨¬q
¬(¬p∨q)→r
p∨q
p∧q
简单合取式和简单析取式既是析取范式又是合取范式
◆ 求范式的步骤:
- 消去联结词**→、↔**
A→B ⇔ ¬A∨B
A↔B ⇔ (A→B)∧(B→A) - 使用双重否定律消去双重否定符,使用德摩根定律内移否定符
¬¬A ⇔ A
¬(A∨B) ⇔ ¬A∧¬B
¬(A∧B) ⇔ ¬A∨¬B - 使用分配律
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 去
小结
● 深刻理解等值式的概念
● 牢记基本等值式的名称及它们的内容
● 熟练地应用基本等值式及置换规则进行等值演算
● 理解文字、简单析取式、简单合取式、析取范式、合取范式的概念
● 深刻理解极小项、极大项的概念、名称及下角标与成真、成假赋值的关系,并理解简单析取式与极小项的关系
● 熟练掌握求主范式的方法(等值演算、真值表等)
● 会用主范式求公式的成真赋值、成假赋值、判断公式的类型、判断两个公式是否等值
● 会用命题逻辑的概念及运算解决简单的应用问题