960 likes | 1.3k Views
第 3 章 谓词逻辑和归结原理. 逻辑 : 推理的理论和根据 . 逻辑的分类 , 经典逻辑和非经典逻辑 命题逻辑和谓词逻辑. 3.1 命题逻辑 1 。 什么是命题? 2 。 什么是命题连接词? 3 。 什么命题公式( Well-formed formula, WFF )? 4 。 什么是命题演算语句解释? 5 。什么是命题演算语句在某解释下的真值? 6 。什么是命题演算语句的真值表? 7 。什么是恒真的命题公式 ?
E N D
第 3 章 谓词逻辑和归结原理 逻辑: 推理的理论和根据. 逻辑的分类, 经典逻辑和非经典逻辑 命题逻辑和谓词逻辑
3.1 命题逻辑 1。 什么是命题? 2。 什么是命题连接词? 3。 什么命题公式(Well-formed formula, WFF)? 4。 什么是命题演算语句解释? 5。什么是命题演算语句在某解释下的真值? 6。什么是命题演算语句的真值表? 7。什么是恒真的命题公式? 8。如何进行命题逻辑的推理
命题逻辑的推理规则 符号和语句 定义: 命题演算符号包括命题符号: P, Q, R, S,... 真值符号: true, false 连接词: ∧, ∨, ┐, → , , 定义: 命题逻辑公式(Well-formed formula, WFF) 利用命题演算符号, 真值符号和逻辑连接词组成 的合法符号串。
合取项(conjunct) 析取项(disjunct) 蕴涵式(implication) 前提(premise), 前项(antecedent) 结论(conclusion), 后项( consequent) 命题语句的例 P, Q, R, ┓P, ┓Q, P∧Q, P∧Q→R, ┓P∨┓Q, ┓P∨┓Q ∨R (P∧Q)→R ┓P∨┓Q ∨R
命题语句就是一个符号串, 只有对串中的命题符号指定了真假值之后, 这个语句才具有实际意义。 命题演算的语义 由单个逻辑运算符连接的简单语句的语义 定义:命题语句的语义 对每一个命题指定其真假值。 按由单个逻辑运算符连接的简单语句的语义递归地求出整个语句的真假值。 解释: 对命题指定其真假值
同一个命题语句在不同的解释之下有不同的真值。同一个命题语句在不同的解释之下有不同的真值。 如果一个命题语句具有n 个命题, 则其具有 2n种不同的解释 真值表: 设s 使一个命题语句,s 的真值表是对s 的所有可能解释的真值。 P Q P∧ Q F F T T F F T T F F T T
P Q ┓P ┓ PVQ P→Q (┓ PVQ) P→Q T T F F T F T F F F T T T F T T T F T T T T T T
命题逻辑的等价 命题逻辑中常用的等价公式
推理规则是用一些命题公式A1, A2,… 推导出另外一些命题公式B1, B2,… 附加: A => A∨B 简化: A∧B =>A 假言推理: A→B, A => A 拒取式: A→B, ┐ B => ┐ A 析取三段论: A∨B, ┐ A =>B 假言三段论: A→B, B→C => A→C 命题逻辑的推理规则
例 1证明{(PQ),(PR), (ST), ( SR), T}Q 1. ST前提引入 2. T前提引入 3. S 1,2, 拒取规则 4. SR前提引入 5. R 3,4 假言推理 6. P R 前提引入 7. P 5,6;拒取规则 8. PQ 前提引入 9. Q 7,8, 析取三段论 命题逻辑的推理规则
写出对应下面推理的证明 如果今天下雨. 则要带伞或雨衣, 如果走路上班, 则不带雨衣,今天下雨,走路上班, 所以带伞. P:今天下雨 Q:带伞 R:带雨衣 S:走路上班 命题逻辑的推理规则
{P (Q∨R),(SR), P, S}Q 1. P (Q∨R) 前提引入 2. P 前提引入 3. Q∨R 1,2,假言推理 4. SR 前提引入 5. S 前提引入 6. R 4,5,假言推理 7. Q 3,6, 析取三段论 命题逻辑的推理规则
前面给出的命题逻辑的证明过程需要很多思考过程, 人可以用来实施推理,但却不适用于计算机。 本节我们介绍一中推理方法——归结方法,它以机械的方式实施推理, 容易使用计算机实现,我们先介绍它的简单情形,即命题逻辑的归结, 然后在下一节介绍谓词逻辑归结。 命题逻辑证明过程之所以复杂的一个重要原因是命题公式的形式是各种各样的。 证明系统必须有处理各种各样命题公式的能力。 为了简化命题公式的形式, 人们提出了一种简单而又有足够表达能力的形式,这就是子句。 命题逻辑归结方法
命题逻辑归结方法 为叙述方便, 我们把命题原子称作正文字, 例如P, Q, R…., 等等, 把带有非符号的命题原子叫做负文字,例如P, Q, R…., 等等,把正文字和负文字统称为文字。 单个文字, 文字的析取构成的命题逻辑公式叫做子句。 例如, P, Q, P ∨Q ∨R都是子句。
一个命题逻辑公式可以采用如下方式转换成等价的子句的合取形式, 即合取范式: 1. 利用等价公式 P←→Q =( P→Q)∧ (Q←P)和P→Q=~P∨Q删去公式中的←→ 符号和→符号. 2. 利用De Morgan 律把所有的否定符号移到每个原子之前. 3. 利用分配律得到子句的合取形式 命题逻辑归结方法
例 把命题逻辑公式 ~ (~(P→Q) ∧(~ Q∨ R))转换成等价的子句的合取形式. ~ (~(P→Q) ∧(~ Q∨ R)) = ~ (~ (~P∨Q) ∧(~ Q∨ R)) = (~P∨Q) ∨~ (~ Q∨ R)) = (~P∨Q) ∨( Q∧~ R)) = (~P∨Q) ∧(~P∨Q∨~ R)) 上式即为子句的合取形式 命题逻辑归结方法
命题归结式 设 c1, c2是两个子句, c1=L1∨D1, c2=L2∨D2 , 其中L1 =~ L2, L1 , L2也称作互补文字, D1和D2 为子句. 则D1∨D2称作c1, c2的归结式, 记为R(c1, c2), c1, c2称做是归结式的亲本子句。 例如, 设 c1, c2是两个子句, c1 = ~P∨Q, c2 = P∨R∨~ S, 则~P和P为互补文字, c1, c2的归结式是Q∨R∨~ S. 命题逻辑归结方法
在利用归结推导证明某一逻辑结果时,我们采用如下的归结反驳证明方法。设F ={f1, f2,…, fn}是命题逻辑公式集合, g 是命题逻辑公式,为了证明从 F能推导出 g, 我们先把逻辑公式f1, f2,…, fn转换成子句或子句集,把g 的否定~g 也转换成子句或子句集, 然后把这些子句放在一起, 组成一个子句集,在此子句集上应用归结, 把所得到的归结式不断地加入到子句集中, 继续进行归结,当子句集中包含空子句时,则认为是已经从F推导出g. 这种归结反驳证明的核心思想是反证法, 空子句表示矛盾。在证明过程中用□表示。如果把要证的结论的否定加入到前提集合中能导出矛盾, 则证明了该结论。理论上可以证明,命题中归结反驳证明方法是可靠的。 命题逻辑归结方法
命题逻辑归结方法 例:证明(P → Q) →(~ Q → ~ P)} 前提集合F={(P → Q) }, 结论= (~ Q → ~ P)。 F中命题公式转换成的子句集是{~ P∨Q} ~g 转换成的子句集是{~Q, P } 把上述子句集组合在一起,得到初始子句集 Φ={~ P∨Q, ~Q, P }
以下为归结过程 1. ~ P∨Q 2. ~Q 3. P 1,2 归结 4. Q 2,4 归结 5 □ 命题逻辑归结方法
3.2 谓词逻辑基础 3.2.1 谓词的基本概念 个体词: 表示具体的客体, 如: 小王, 工程师, 8, 自然数.谓词: 表示个体的性质和个体间的关系, 小王是个工程师8 是自然数 变量符号:v1, w2, table3, 常量符号: A, Dog, Wang1. 函数符号: f(x), g(u, v)
定义:符号和项由变量符号,常量符号,函数符号和逻辑常量组成的合法字符串。定义:谓词和原子语句谓词是取值范围为{0(假),1(真)}的函数。 单独一个谓词构成的语句为原子语句。 例: P(x), Q(x,y), R(X,b)
量词全称量词 对于日常生活和数学中出现的“一切的”、“任意的”、“所有的”、“每一个”、“都”、“凡”等词统称为全称量词,用符号“”表示。并用x,y表示个体域中的所有个体,用(x )F(x),(y)F(y)等表示个体域中的所有个体具有性质F。 存在量词 对日常生活和数学中常用的“存在”、“存在一个”、“有一个”、“至少有一个”、“有些”、“有的”等词统称为存在量词,用符号“”表示。并用x,y表示个体域中有的个体,用(x)F(x),(y)F(y)等表示个体域中有的个体具有性质F。
量词的例 例 将下面的命题符号化: (1)所有人都是要死的。 (2)有的人活到100岁以上。 其中:个体域D为人类集合。 解 令R(x):x是人, P(x): x要死的;Q(x):活到100岁以上。 则(1)可符号化为: x(R(x)P(x)) (2)可符号化为 x(M(x) ∧Q(x))
使用量词需要注意 在不同的个体域中, 符号化的形式可能不一样. 使用量词需要注意: 多个量词同时出现时, 不能颠倒它们的次序 例如: “对于任意 x, 存在 y, 使得 x+y=5”, 设P(x,y)为x+y=5, 符号化为x yP(x,y) , 为真命题. 但是, yx P(x,y) , “存在 y, 对于任意 x, 使得 x+y=5”, 为假命题
1。什么是一阶逻辑的全称量词?如何表示? 2。什么是一阶逻辑的存在量词?如何表示? 3。什么是一阶逻辑公式的解释? 4。什么是一阶逻辑公式的在解释下的真值?举例说明。 5。给出一个恒真的一阶逻辑公式的例。
3.2.2 一阶谓词逻辑 定义:谓词演算语句(递归定义) 利用原子语句,合取, 析取, 否定,蕴涵,全称, 定量等符号构成的合法字符串。 谓词演算的语义 定义:谓词演算语句的解释 由一个论域 D 和一组指定组成 谓词语句在解释下的真值
在谓词演算中使用推理 一个解释由一个论域 D 和一组指定组成 定义:满足, 模型, 有效, 不一致 如果一个解释 I 使语句 s 取值为真, 则称解释I满足s, 也称I是s的模型,如果语句s对所有解释都取值为真,则s称为是有效的(valid),如果语句s对所有解释都取值为假,则s称为是不一致的(inconsistent), 定义:证明过程 利用逻辑蕴涵推出新语句的过程,推导出的结果称为推导结果
给出如下两个公式:1) A=x (P(f(x))Q(x,f(x))) 2) B= xy R(x,y) • 给出如下的解释I:D={2,3} f(2) f(3) 3 2 P(2) P(3) Q(2, 2) Q(2, 3) Q(3, 2) Q(3, 3) 0 1 1 1 1 1 • R(2, 2) R(2, 3) R(3, 2) R(3, 3) 1 0 0 1
解: • A (P(f(2))Q(2,f(2)))(P(f(3))Q(3,f(2))) (P(3)Q(2,3))(P(2)Q(3,3)) • (11)(01) 1 • 所以公式在解释I下为真 • B( R(2,2) R(2,3)) ( R(3,2) R(3,3)) 11 1 • 所以公式在解释I下为真.
判断公式类型: • (1)xyP(x,y) Q,x,y的个体域为R,P(x,y):x=y;Q是命题变元。 • 解: xy(x=y)是真命题 • 当Q=1时,该公式为真 • 当Q=0时,该公式为假 • 因此,该公式是可满足公式。
(2)(P(x,y) P(x,y)) (Q Q) • 解: 因为R中任意取定的一组x,y均使(x=y) ( (x=y) )是一真命题,而Q Q是一重言式,所以对于任一组指派, • (P(x,y) P(x,y)总为真,故该公式为永真公式。 • (3)xy(P(x,y) P(x,y)) • 解:因为R中任意取定的一组x,y,公式 P(x,y) P(x,y)总为假,所以该公式为永假公式。
3.2.3 谓词演算和推理 1.谓词演算公式 约束变量换名规则 (Q(x)) P(x) (Q(y)) P(y) (Q(x)) P(x,z) (Q(y)) P(y,z) 2. 量词否定等值 (1)﹁(x)G(x)(x)﹁G(x) (2)﹁(x)G(x)(x)﹁G(x) 3.量词分配等值 (1)(x)(G(x)∧H(x))(x)G(x)∧(x)H(x) (2)(x)(G(x)∨H(x))(x)G(x)∨(x)H(x)
3.2.3 谓词演算和推理 消去量词等值 x A(x)A(a1)∧A(a2)∧…∧A(an) x A(x)A(a1)∨A(a2)∨…∨A(an)。 量词辖域收缩与扩张 (1)(x)(G(x)∨B)(x)G(x)∨B (2)(x)(G(x)∧B)(x)G(x)∧B (3)(x)(G(x)→ B)(x)G(x)→ B (4)(x)(B→G(x))B →(x)G(x) (5)(x)(G(x)∨B)(x)G(x)∨B (6)(x)(G(x)∧B)(x)G(x)∧B (7)(x)(G(x)→ B)(x)G(x)→ B (8)(x)(B→G(x))B→(x)G(x)
3.2.3 谓词演算和推理 前束范式 定理2.4.1 对任意一个谓词公式都可以化为与它等价的前束范式。 首先利用等价公式将谓词公式中的联结词→,↔去掉。其次利用量词的转化律将量词前面的否定深入到谓词前面,在利用改名和代入规则以及量词辖域扩张的公式将量词移到全式的最前面,这样便得到公式的前束范式。
3.2.3 谓词演算和推理 求((x) P(x,y)→(y)Q(y))→ (x) R(x,y) 的前束范式. ((x) P(x,y)→(y)Q(y))→ (x) R(x,y) ((x) P(x,z)→(y)Q(y))→ (x) R(x,z) ( x)( P(x,z)→(y)Q(y))→ (t) R(t,z) ( x) (y)( P(x,z)→Q(y))→ (t) R(t,z) ( x) ( y)( ( P(x,z)→Q(y))→ (t) R(t,z)) ( x) ( y) (t)( ( P(x,z)→Q(y))→ R(t,z))
3.2.3 谓词演算和推理 谓词推理 1.全称指定规则(简称US规则) 2.全称推广规则(简称UG规则) 3.存在指定规则(简称ES规则) 4.存在推广规则(简称EG规则)
3.2.3 谓词演算和推理 1.全称指定规则(简称US规则) 这条规有下面两种形式: (1)x P(x)P(y) (2)x P(x)P(c) 其中,P是谓词,(1)中y为任意不在P(x)中约束出现的个体 变元;(2)中c为个体域中的任意一个个体常元。
3.2.3 谓词演算和推理 2.全称推广规则(简称UG规则) P(y)x P(x) 3.存在指定规则(简称ES规则) x P(x)P(c) 其中,c为个体域中使P成立的特定个体常元。必须注意,应用 存在指定规则,其指定的个体c不是任意的。 4.存在推广规则(简称EG规则) P(c)x P(x) 其中,c为个体域中的个体常元,这个规则比较明显,对于某些 个体c,若P(c)成立,则个体域中必有x P(x)。
3.2.3 谓词演算和推理 例 20世纪 70 年代的漫画都是日本漫画家创作的, 这幅画是20世纪 70 年代的作品, 因此,这幅画是日本漫画家创作的. P(x): 20世纪 70 年代的漫画, Q(y):这幅画是日本漫画家的作品. a: 一幅漫画 前提 :x( P(x)(y) →Q(x)), P(a) 结论: Q(a) 证明 1. x( P(x)(y) →Q(x)) 前提引入 2. P(a) 前提引入 3. P(a) →Q(a) 全称指定 4. Q(a) 假言推理
3.2.4 谓词知识表示 逻辑是一中重要的知识表示方法. 谓词表示的优点 1. 表达能力强. 2. 谓词的真值可以随参数的变化而变化 3. 可以在不同的知识之间建立起联系
3.2.4 谓词知识表示 谓词逻辑获得广泛应用的原因 1.谓词逻辑与数据库有密切联系. 2. 一阶谓词逻辑具有完备的推理算法. 3. 谓词逻辑具有可靠的数学基础. 4. 能够保证新增添的知识具有一致性.
3.2.4 谓词知识表示 例 一个房间里有一个机器人Robot, 一个积木块Box, 两个桌子A 和B, 用逻辑描述从初始状态到目标状态的操作过程. 谓词: Table(A) A是桌子 EmptyHanded(Robot) 机器人的手是空的 At(Robot, A) 机器人Robot在A旁 Holds( Robot, Box) 机器人Robot拿着Box On(Box, A) 积木块Box在A上 初始状态 EmptyHanded(Robot) On(Box, A)
3.2.4 谓词知识表示 Table(A) Table(B) 目标状态 EmptyHanded(Robot) On(Box, B) Table(A) Table(B) 机器人的动作的描述, 3 部分 前提条件 增加表 删除表 例如: 机器人把Box从A桌移到B桌 前提条件 Holds( Robot, Box) 增加表 On(Box, B) 删除表 On(Box, A)
3.3 谓词归结原理 Skolem 标准型 要想在谓词逻辑中应用归结原理, 需要首先把谓词逻辑公式转换成子句。 因为谓词逻辑包含谓词和量词, 这种转换要比命题逻辑中公式的转换复杂得多,下面我们介绍转换的步骤: 1. 利用等价公式 P←→Q =( P→Q)∧ (Q←P)和P→Q=~P∨Q删去公式中的←→ 符号和→符号, 这个步骤与命题逻辑的对应处理方式相同。 2. 利用De Morgan 律把所有的否定符号移到每个原子之前.
3.3 谓词归结原理 3. 把变量标准化. 因为根据变量的改名规则, 量词所约束的变量可以在量词作用范围内用另外变量代替。我们可以对变量适当地改名, 使每一个量词所约束的变量都有不同的名字. 例如, 谓词公式(x)P(x)∨(x) Q(x) 改写成(x)P(x)∨ (y )Q(y). 4. 删除公式中的存在量词. 例如,谓词公式(x)(y)P(x, y) 在删去存在量词之后, 变成(x)P(x, f(x)) , 在删去存在量词之后, 这个存在量词所约束的变量的每次出现都用一个函数代替, 这个函数的自变量是约束范围包含删除的存在量词的所有全称量词限制的变量. 这个函数也叫做 Skolem函数. 把删除存在量词,将存在量词限制的变量用对应的Skolem函数代替的过程叫做Skolem化过程.结果叫做Skolem范式.
3.3 谓词归结原理 例 将下式化为Skolem标准型: ~((x) (y )P(a,x,y) → (x )( ~(y)Q(y,b) →R(x))) ~ (~ (x) (y )P(a,x,y) ∨ (x )( ~ ~ (y)Q(y,b) ∨ R(x))) (x) (y )P(a,x,y) ∧ ~ (x )((y)Q(y,b) ∨ R(x))) (x) (y )P(a,x,y) ∧ ( x )(( y) ~ Q(y,b) ∧ ~ R(x))) (x) ((y )P(a,x,y) ∧ (( y) ~ Q(y,b) ∧ ~ R(x))) (x) ((y )P(a,x,y) ∧ (( z) ~ Q(z,b) ∧ ~ R(x))) (x) (y ) ( z)( P(a,x,y) ∧ ~ Q(z,b) ∧ ~ R(x)) (x) ( z)( P(a,x,f(x)) ∧ ~ Q(z,b) ∧ ~ R(x)) (x) ( P(a,x,f(x)) ∧ ~ Q(g(x),b) ∧ ~ R(x))
3.3 谓词归结原理(子句集) 文字 我们把命题原子称作正文字, 例如P(x), Q(y,b), R(w,c)…., 等等, 把带有非符号的命题原子叫做负文字,例如~P(y), ~Q(a,b), ~R(x,y,z)…., 等等,把正文字和负文字统称为文字。 子句 单个文字, 文字的析取构成的命题逻辑公式叫做子句。 例如, P, ~Q(x) , P(x) ∨ ~ Q(y,b),都是子句。 子句集 若干子句的集合. 一个命题逻辑公式可以采用如下方式转换成等价的子句的合取形式, 即合取范式: 1. 利用等价公式 P←→Q =( P→Q)∧ (Q←P)和P→Q=~P∨Q删去公式中的←→ 符号和→符号. 2. 利用De Morgan 律把所有的否定符号移到每个原子之前. 3. 利用分配律得到子句的合取形式
3.3 谓词归结原理(子句集) • 把公式变换成Skolem标准型. • 5. 把Skolem标准型中子句提出.表示为集合形式. • 定理 3.1 公式G是不可满足的, 当且仅当其子句集S是不可满足的,
3.3 谓词归结原理(替换与合一) 在命题逻辑归结中, 需要两个子句有互补文字, 这两个文字除了否定符号之外是完全相同的. 但在谓词逻辑中包含变量, 而变量可以指定成其他任何常量, 变量, 或者函数项, 可以在指定后再实施归结, 因此即使两个项不完全相同, 也可能进行归结. 例如, 设有谓词逻辑子句c1和 c2 , c1=P(x)∨~ Q(x,y) c2= ~ P(f(a))∨R(x,b),表明上看来没有互补文字, 但是, 如果把c1和 c2中的x都指定成 f(a), 则有互补对 P(f(a)) 和~ P(f(a)),这时c1和 c2 就可以归结得到~ Q(f(a),y)∨R(f(a),b), 这种为变量的指定称为替换, 本节我们先介绍替换.