第三章 归结原理 (第二部分) (Chapter 3 Resolution Reasoning) (Part B)
description
Transcript of 第三章 归结原理 (第二部分) (Chapter 3 Resolution Reasoning) (Part B)
1
第三章 归结原理(第二部分)
(Chapter 3 Resolution Reasoning)(Part B)
徐从富
浙江大学人工智能研究所
2002 年第一稿
2004 年 9月修改
2
本章的主要参考文献:
[1] 石纯一 等 . 《人工智能原理》 . 清华大学出版社 , 1993. pp11-81. (【注意】:本课件以该书中的这部分内容为主而制作,若想更加全面地了解归结原理及其应用,请参见如下文献 [2] 和 [3] )
[2] 陆汝钤 . 《人工智能》(下册) . 科学出版社 , 2000. pp681-728.
[3] 王永庆 . 《人工智能原理与方法》 . 西安交通大学出版社 , 1998. pp111-155.
【注】:若对定理的机械化证明的更多内容感兴趣者,可参考陆汝钤 . 《人工智能》(下册) . 科学出版社 , 2000. pp729-788. 其最新进展可参考我国数学家吴文俊院士的相关论文,不过,他的研究工作对数学要求很高!
3
•前言
•命题逻辑的归结法
•子句型
•Herbrand定理
•归结原理
4
归结(归结( resolution)resolution)( 也称消解)推理方法:
这是一种机械化的可在计算机上加以实现的推理方法。 AI 程序设计语言 Prolog 就是基于归结原理的一种逻辑程序设计语言。
5
归结法归结法(也称消解法)的本质是一种反 证法。
为了证明一个命题 A 恒真,要证明其反命题 ~A 恒假。所谓恒假就是不存在模型,即在所有的可能解释中, ~A 均取假值。但一命题的解释通常有无穷多种,不可能一一测试。为此, Herbrand 建议使用一种方法:从众多的解释中,选择一种代表性的解释,并严格证明:任何命题,一旦证明为在这种解释中取假值,即在所有的解释中取假值,这就是 Herbrand 解释。
6
3.4 命题逻辑的归结法要证明: A1 A∧ 2 A∧ 3B 是定理(重言式)
A1 A∧ 2 A∧ 3 ∧ ~B 是矛盾 ( 永假 ) 式
归结推理方法就是从 A1 A∧ 2 A∧ 3 ∧ ~B 出发,使用归结推理规则来寻找矛盾,最后证明定理成立。归结法(消解法)的本质是数学中的反证法,称为“反演推理方法”。
等价于
7
3.4.1 建立子句集首先,把 A1 A∧ 2 A∧ 3 ∧ ~B 化成一种称作子句
形的标准形式。如: P (Q R) (~P ~Q) (P ~Q R)∧ ∨ ∧ ∨ ∧ ∨ ∨然后将合取范式写成集合的表示形式,得 S = {P, Q R, ~P ~Q, P ~Q R}, ∨ ∨ ∨ ∨ 以“ ,”
代 替“∧”。
子句集 一个子句
8
3.4.2 归结式1. 设 C1=P C1′∨
C2=~P C2′∨ 消去互补对,新子句
R(C1,C2) = C1′ C2′∨
没有互补对的两子句没有归结式,归结推理即对两子句做归结
2. 证明 C1 C2∧ R(C1,C2)任一使 C1 , C2 为真的解释 I 下必有 R(C1,C2) 也是真。
3. 空子句□当 C1=P C2=~P两个子句的归结式为空,记作□,称为空子句空子句,体现了矛盾。
为两个子句
子句 C1 、 C2 的归结式
9
3.4.3 归结推理过程子句集 S子句集 S
归结推理规则归结推理规则
S′ =空子句□S′ =空子句□
S′= 所得归结式S′= 所得归结式
说明 S 是不可满足的说明 S 是不可满足的
与 S 对应的定理成立与 S 对应的定理成立
推理结束推理结束
是
否
10
例:证明 (PQ) ~Q∧ ~P先将 (PQ) ~Q ~(~P)∧ ∧化成合取范式,得 (~P Q) ~Q P∨ ∧ ∧建立子句集 S={~P Q, ~Q, P)∨对 S 作归结1) ~P Q∨2) ~Q
3) P
4) ~P 1), 2) 归结5) □ 3), 4) 归结 证毕注:一阶谓词逻辑的归结方法比命题逻辑的归结法要复
杂得多,原因是要对量词量词和变量变量做专门的处理。
11
3.5 子句形设有由一阶谓词逻辑描述的公式 A1 , A2 ,
A3 和 B ,证明在 A1 A∧ 2 A∧ 3 成立的条件下有 B 成立。仍然采用反演法反演法来证明。
A1 A∧ 2 A∧ 3 ~B (3.2.1)∧ 是不可满足不可满足的。与命题逻辑不同,首先遇
到了量词问题,为此要将 (3.2.1) 式化成SKOLEM 标准形。
12
3.5.1 SKOLEM 标准形(即与或句)对给定的一阶谓词逻辑公式
G=A1 A∧ 2 A∧ 3 ~B∧
第一步,化成与其等值的前束范式 [ 方法:参见 2.3 节“与或句演绎系统” ]
第二步,化成合取范式第三步,将所有存在量词( )消去
13
3.5.2 子句与子句集1. 概念
1)1) 原子公式原子公式::不含有任何联结词的谓词公式2)2) 文字文字::原子或原子的否定3)3) 子句子句::一些文字的析取
如, P(x) ~Q(x,y), ~P(x,c) R(x,y,f(x))∨ ∨都是子句由于 G 的 SKOLEM 标准形的母式已为合取范式,
从而母式的每一个合取项都是一个子句,可以说,母式是由一些子句的合取组成的。
4)4) 子句集子句集 SS ::将 G 的已消去存在量词的 SKOLEM 标准形,再略去全称量词,最后以“ ,” 代替合取符号“∧”,便得子句集 S 。
14
例: S.
z))y,R(x,z)(Q(x,z))y,R(x,y)P(x,z)((~y)(x)((G
求其子句集
S.
z))y,R(x,z)(Q(x,z))y,R(x,y)P(x,z)((~y)(x)((G
求其子句集
解:①将 G 化成 SKOLEM 标准形
G 的子句集
子句集 S 中的变量,都认为是由全称量词约束着,子句间是合取关系。
g(x))))f(x),R(x,g(x))(Q(x,g(x)))f(x),R(x,f(x))P(x,x)((~(G
g(x))}f(x),R(x,g(x))(Q(x,g(x)),f(x),R(x,f(x))P(x,{~S
15
第一类:代数、几何证明(定理证明)第一类:代数、几何证明(定理证明)
例 1. 证明梯形的对角线与上下底构成的内错角相等
3.5.3 建立子句集举例
a(x)
d(v)
b(y)
c(u)
16
证明:①① 设梯形的顶点依次为设梯形的顶点依次为 a,b,c,d.a,b,c,d. 引入谓词:引入谓词:T(x,y,u,v) 表示以 xy 为上底, uv 为下底的梯形P(x,y,u,v) 表示 xy//uvE(x,y,z,u,v,w) 表示∠ xyz = uvw∠②② 问题的逻辑描述和相应的子句集为问题的逻辑描述和相应的子句集为i. 梯形上下底平行:
ii. 平形内错角相等
iii. 已知条件
iv. 要证明的结论: B: E(a,b,d,c,d,b) 结论的“非”: S~B:~E(a,b,d,c,d,b)}
从而 S = {SA1, SA2, SA3, S~B }
v)u,y,P(x,v)u,y,T(x,:~SA
v))u,y,P(x,v)u,y,v)(T(x,u)(y)(x)((:A
1
1
v)u,y,P(x,v)u,y,T(x,:~SA
v))u,y,P(x,v)u,y,v)(T(x,u)(y)(x)((:A
1
1
y)v,u,v,y,E(x,v)u,y,P(x,:~S
y))v,u,v,y,E(x,v)u,y,v)(P(x,u)(y)(x)((:A
A2
1
y)v,u,v,y,E(x,v)u,y,P(x,:~S
y))v,u,v,y,E(x,v)u,y,v)(P(x,u)(y)(x)((:A
A2
1
d)c,b,T(a,:S
d)c,b,T(a,:A
A3
3
d)c,b,T(a,:S
d)c,b,T(a,:A
A3
3
17
第二类 机器人动作问题例例 2.2. 猴子香蕉问题猴子香蕉问题
已知一串香蕉挂在天花板上,猴子直接去拿是够不到的,但猴子可以走动,也可以爬上梯子来达到吃香蕉的目的。
分析:问题描述,不能忽视动作的先后次序,体现时间概念。常用方法是引入状态 S 来区分动作的先后,以不同的状态表现不同的时间,而状态间的转换由一些算子(函数)来实现。
(b)
y
(a)
x(c)
z
初始状态 S0
18
解:1) 引入谓词
P(x,y,z,s): 表示猴子位于 x 处,香蕉位于 y 处,梯子位于 z 处,状态为 s
R(s): 表示 s 状态下猴子吃到香蕉
ANS(s): 表示形式谓词,只是为求得回答的动作序列而虚设的。
2) 引入状态转移函数Walk(y, z, s): 表示原状态 s 下,在 walk 作用下,猴子从 y 走到
z 处所建立的新状态。
Carry(y,z,s): 表示原状态 s 下,在 Carry 作用下,猴子从 y搬梯子到 z 处所建立的新状态。
Climb(s): 表示原状态 s 下,在 Climb 作用下,猴子爬上梯子所建立的新状态。
19
3) 初始状态为 S0 ,猴子位于 a ,香蕉位于 b, 梯子位于c ,问题描述如下:a) 猴子走到梯子处(从 x z )
b) 猴子搬着梯子到 y 处
c) 猴子爬上梯子吃到香蕉
d) 初始条件
e) 结论
s))z,walk(x,z,y,P(z,s)z,y,P(x,:~S
s)))z,walk(x,z,y,P(z,s)z,y,s)(P(x,z)(y)(x)((:A
A1
1
s))z,walk(x,z,y,P(z,s)z,y,P(x,:~S
s)))z,walk(x,z,y,P(z,s)z,y,s)(P(x,z)(y)(x)((:A
A1
1
walk
s))y,carry(x,y,y,P(y,s)x,y,P(x,:~S
s)))y,carry(x,y,y,P(y,s)x,y,s)(P(x,y)(x)((:A
A2
2
s))y,carry(x,y,y,P(y,s)x,y,P(x,:~S
s)))y,carry(x,y,y,P(y,s)x,y,s)(P(x,y)(x)((:A
A2
2
)R(Climb(s)s)b,b,P(b,:~S
))R(Climb(s)s)b,b,s)(P(b,(:A
A3
3
)R(Climb(s)s)b,b,P(b,:~S
))R(Climb(s)s)b,b,s)(P(b,(:A
A3
3
)sc,b,P(a,:S
)sc,b,(P(a,:A
0A4
04
)sc,b,P(a,:S
)sc,b,(P(a,:A
0A4
04
ANS(s)R(s):~S
s)R(s)(:B
B~
ANS(s)R(s):~S
s)R(s)(:B
B~
20
第三类 程序设计自动化问题例 3 :简单的程序集合问题
若一台计算机有寄存器 a,b,c 和累加器 A ,要求自动设计实现
(a)+ (b) c
的程序。
21
解 :
1)1) 先引入谓词先引入谓词P(u,x,y,z,s): 表示累加器 A,寄存器 a,b,c分别放入 u,x,y,z时的状态为 s
Load(x,s): 表示状态 s 下 , 对任一寄存器 x 来说 ,实现 (x)A 后的新状态
Add(x,s): 表示状态 s 下 , 对任一寄存器 x 来说 ,实现 (x)+(A)A 后的新状态
Store(x,s): 表示状态 s 下 , 对任一寄存器 x 来说 ,实现 (A)x 后的新状态
2)2) 问题描述问题描述a. ((a)A):寄存器 a 中的值放入寄存器 A 中
b. ((b)+(A)A)
s))load(a,z,y,x,P(x,s)z,y,x,P(u,:~S
s)))load(a,z,y,x,P(x,s)z,y,x,s)(P(u,z)(y)(x)(u)((:A1
A1
s))load(a,z,y,x,P(x,s)z,y,x,P(u,:~S
s)))load(a,z,y,x,P(x,s)z,y,x,s)(P(u,z)(y)(x)(u)((:A1
A1
s))add(b,z,y,x,y,P(us)z,y,x,P(u,:~S
s)))add(b,z,y,x,y,P(us)z,y,x,s)(P(u,z)(y)(x)(u)((:A2
A2
s))add(b,z,y,x,y,P(us)z,y,x,P(u,:~S
s)))add(b,z,y,x,y,P(us)z,y,x,s)(P(u,z)(y)(x)(u)((:A2
A2
22
c. ((A)C)
d. 初始状态 D 下,累加器 A 与寄存器 a,b,c 中的数值
e. 结论
子句集 S={SA1,SA2,SA3,SA4,S~B}
s))store(c,u,y,x,P(u,s)z,y,x,P(u,:~S
s)))store(c,u,y,x,P(u,s)z,y,x,s)(P(u,z)(y)(x)(u)((:A3
A3
s))store(c,u,y,x,P(u,s)z,y,x,P(u,:~S
s)))store(c,u,y,x,P(u,s)z,y,x,s)(P(u,z)(y)(x)(u)((:A3
A3
5)P(1,2,3,4,:S
d)P(1,2,3,4,:A4
A4 5)P(1,2,3,4,:S
d)P(1,2,3,4,:A4
A4
ANS(s)s)y,xy,x,P(u,:~S
s)y,xy,x,s)(P(u,y)(x)(u)((:B
B~
ANS(s)s)y,xy,x,P(u,:~S
s)y,xy,x,s)(P(u,y)(x)(u)((:B
B~
ANS(s)s)y,xy,x,P(u,:~S
s))y,xy,x,(P(u,s)(~y)(x)(u)((
s)y,xy,x,s)(P(u,y)(x)(u)((~B~
B~
ANS(s)s)y,xy,x,P(u,:~S
s))y,xy,x,(P(u,s)(~y)(x)(u)((
s)y,xy,x,s)(P(u,y)(x)(u)((~B~
B~
23
3.6 Herbrand 定理 虽然公式 G 与其子句集 S 并不等值,但它
们在不可满足的意义下又是一致的。亦即, G是不可满足的当且仅当 S 是不可满足的。(证明从略,石纯一《 AI 原理》 P17~20).
由于个体变量论域 D 的任意性,以及解释的个数的无限性,对一个谓词公式来说,不可满足性的证明是困难的。
如果对一个具体的谓词公式能找到一个较简单的特殊的论域,使得只要在该论域上该公式是不可满足的,便能保证在任何论域上也是不可满足的, Herbrand域(简称 H域)具有这样的性质。
24
3.6.1 H域设 G 是已给的公式,定义在论域 D 上,令 H0 是 G 中所出现的常量
的集合,若 G 中没有常量出现,就任取常量 aD ,而规定 H0={a}
即 H0= 若 G 中有常量,为 G 中常量的集合 若无常量,则为 {a}
Hi = Hi-1 U { 所有形如 f(t1,…,tn) 的元素 }
其中, f(t1,…,tn) 是出现于 G 中的任一函数符号,而 t1, t2, …,tn 是Hi-1 的元素, I=1,2,…
H∞ 为 G 的 H域。(或说是相应子句集 S 的 H域) “ 可数集合”
H∞ 是直接依赖于 G 的最多共有可数个元素的集合
25
例 1. S={P(a),~P(x) P(f(x))}∨
}f(f(a)),f(a),{a,H
f(f(a))}f(a),{a,
f(f(a))}{f(a),f(a)}{a,
f(a)}}{a,x|{f(x)H}Hx|{f(x)HH
f(a)}{a,
{f(a)}{a}{f(a)}H}Hx|{f(x)HH
{a}H
1112
0001
0
}f(f(a)),f(a),{a,H
f(f(a))}f(a),{a,
f(f(a))}{f(a),f(a)}{a,
f(a)}}{a,x|{f(x)H}Hx|{f(x)HH
f(a)}{a,
{f(a)}{a}{f(a)}H}Hx|{f(x)HH
{a}H
1112
0001
0
26
例 2. S={P(x), Q(f(x,a)) R(b)}∨
【【注注】:】:在在 SS 中出现函数中出现函数 f(x,a),f(x,a), 仍视为仍视为 f(xf(x1,x2)1,x2) 的形式的形式
b)}f(b,a),f(b,b),f(a,a),f(a,b,{a,
b)}f(b,a),f(b,b),f(a,a),{f(a,b}{a,
b}}{a,x2x1,|x2){f(x1,HH
b}{a,H
01
0
b)}f(b,a),f(b,b),f(a,a),f(a,b,{a,
b)}f(b,a),f(b,b),f(a,a),{f(a,b}{a,
b}}{a,x2x1,|x2){f(x1,HH
b}{a,H
01
0
27
概念1.1. 基原子 原子基原子 原子2.2. 基文字 文字基文字 文字3.3. 基子句 子句基子句 子句4.4. 基子句集 子句集基子句集 子句集
基例:
对:
① 基子句: ② 基例:
::没有变量出现的没有变量出现的
的一个基类称作所得的基子句,元素代入时域的的量符号均以C中的基子句 中所有变将
CC
HSS
的一个基类称作所得的基子句,元素代入时域的的量符号均以C中的基子句 中所有变将
CC
HSS
}f(f(a)),f(a),{a,H
R(y)}Q(f(y)){P(x),S
有 }f(f(a)),f(a),{a,H
R(y)}Q(f(y)){P(x),S
有
的基例称作子句称为基子句子句
P(x)CP(f(a))P(a),
R(b)Q(f(b))P(b),D,b
的基例称作子句称为基子句子句
P(x)CP(f(a))P(a),
R(b)Q(f(b))P(b),D,b
28
3.6.2 H 解释 思想:由子句集 S 建立 H域、原子集 A ,
使任一论域 D 上 S 为真的问题,化成了仅仅有可数个元素有可数个元素的 H域上 S 为真的问题。子句集 S 在 D 上不满足问题成了 H 上不满足问题,这是很有意义的结果。
True*I|STrueI|S HD 左用右式来实现
True*I|STrueI|S HD 左用右式来实现
29
定理 3.3.2(1)
设 I 是 S 的论域 D 上的解释,存在对应于 I 的 H 解释I* ,使得 S|I=T ,必有 S|I*=T 。
定理 3.3.2(2)
子句集 S 是不可满足的,当且仅当在所有的 S 的 H解释下为假。(( 注:该定理将注:该定理将 SS 在一般论域上的不可满足问在一般论域上的不可满足问题化成了可数集上题化成了可数集上 HH 上的不可满足问题,以上只需上的不可满足问题,以上只需讨论在讨论在 SS 的的 HH∞∞ 上即可。)上即可。)
定理 3.3.2(3)
子句集 S 是不可满足的当且仅当对每个解释 I 下,至少有 S 的某个子句的某个基例为假。
30
例 1 :设子句集 S 的原子集 A={P,Q,R}
图 语义树(二叉树)
N0
N11 N12
N21 N22 N23 N24
N31 N32 N33 N34 N35 N36 N37 N38
P ~P
Q ~Q ~Q
R ~R ~R R ~R
3.6.3 语义树
I(N) 表示:从根结点到结点 N分枝上所标记的所有文字的并集。
I(N34)={P,~Q,~R}
31
例 2 :解: H={a,f(a),f(f(a)),…}
A={P(a),Q(a),P(f(a)),Q(f(a)),…}
N38
图 无限语义树
N0
N11 N12
N21 N22 N23 N24
N31 N32 N33 N34 N35 N36 N37
P(a) ~P(a)
Q(a) ~Q(a)
P(f(a))
画语义树。对子句集 Q(f(y))}~P(f(y)0,Q(x),P(x){~S
画语义树。对子句集 Q(f(y))}~P(f(y)0,Q(x),P(x){~S
32
完全语义树:– 对所有结点 N, ( ) ,I(N)包含了 A={A1,A2,
…} 中的 或 ~Ai , i=1,2,…,n 。 失败结点:
– 如果结点 N 的 I(N) 使 S 的某一子句有某一基例为假,而 N 的父辈结点不能判断这个事实,就说 N 是失败结点。
封闭树:– 如果 S 的完全语义树的每个分枝上都有一个失败结点,即为封闭树。
NiA
33
例 2 中的完全语义树即为封闭树封闭树。Q(f(y))}~P(f(y)),Q(x),P(x){~S Q(f(y))}~P(f(y)),Q(x),P(x){~S
图 封闭语义树
N0
N11 N12
N21 N22 N24
N31 N32
N4,13 N4,14
N36
P(a) ~P(a)
Q(a) ~Q(a)
P(f(a))
如, I(N2,2)={P(a),~Q(a)}, 使得 S 中, ~P(a) Q(a)∨ 为假。
I(N3,6)={~P(a), Q(a) ,~P(f(a))}, 使得 S 中的 P(f(a)) 为假。 ……
I(N4,1)={P(a),~Q(a)}, 使得 ~Q(f(y)) 为假。
N38
N41 N42 N49 N4,10
34
3.6.4 Herbrand 定理1. 一阶谓词描述
A1 A∧ 2 A∧ 3→B
2. 化成不满足问题G= A1 A∧ 2 A∧ 3 ~B∧
3. G 化成 SKOLEM 形S={ , , ,……}
4. 一般论域 D简化成 H∞域上的讨论5. 引入语义树
35
★Herbrand 给出的两个定理 定理 3.3.4(1)
– 子句集 S 是不可满足的,当且仅当对应于 S的完全语义树都是一棵有限的封闭语义树封闭语义树。
(注:证明从略)
定理 3.3.4(2)– S 是不可满足的,当且仅当存在不可满足的
S 的有限基例集基例集。(注:证明从略)
36
▲应当指出:1. Herbrand 定理给出了一阶逻辑的半可判
定算法,即仅当被证定理是成立的,使用该算法可得证,否则,得不出任何结果。
2. Herbrand 定理已将证明问题化成了命题逻辑问题,所以只需在命题逻辑范围内简化。
37
补充:石纯一编著:《人工智能原理》 P39~401) 重言式子句可删除规则 S={P ~P,C∨ 1,C2}S={C1,C2}.
2) 单文字删除规则 S={L , L C∨ 1 , ~L C∨ 2 , C3 , C4}S′={~L C∨ 2 , C3 , C4} ,删除含 L 的
子句 S ={C2 , C3 , C4} ,删除文字 ~L
3) 纯文字删除规则 当文字 L 出现于 S 中,而 ~L 不出现于 S 中,便说 L 为 S 的纯文字。 S 中删除 LS′=Ø, S 可满足 S 中删除 LS′≠Ø, S′,S 同时不可满足
4) 分离规则S={L A∨ 1) … (L∧ ∧ Am)∨ (~L∧ B1)∨ ∧ … (~L∧ Bn)∨ R∧
(不含 L 和 ~L 的子句等) S′={A1,…,Am,R}
S′={B1,…,Bn,R}
S 不可满足 S′ 、 S′ 同时不可满足
′′
′
′
38
3.7 归结原理 虽然 Herbrandp 定理给出了推理算法,
但需逐次生成基例集 ,再检验 的不可满足性,常常难以实现。 1965年, Robinson提出了归结原
理,是对自动推理的重大突破。
,S,S 10
)0,1,i(iS
39
3.7.1 置换与合一置换置换:是形为 {t1/v1,…,tn/vn} 的一个有限集。其中, vi 是变量,而 ti 是不同于 vi 的项(常量、变量、函数)且 vi≠vj ,( i≠j),i,j=1,2,…,n例如, {a/x,b/y,f(x)/z},{f(z)/x,y/z} 都是置换。
空置换空置换:不含任何元素的置换。令置换 ={t1/v1,t2/v2,…,tn/vn} E 是一阶谓词① 作用于 E ,就是将 E 中出现的变量 vi均以 ti 代入( i
=1,2,…,n) ,以 E 表示结果,并称为 E 的一个例例。② 作用于项 t ,是将 t 中出现的变量 vi 以 ti 代入 (i=1,…,
n) ,结果以 t·t· 表示。
40
例: ={a/x, f(b)/y, u/z}
E=P(x, y, z)
t = g(x, y)
那么 E = P(a, f(b), u)
t=g(a, f(b))
41
常使用的置换的运算是置换乘法置换乘法(合成)若 ={t1/x1,…,tn/xn}
={u1/y1,…,um/ym}
置换乘积 · 是新的置换,作用于 E 相当于先后对 E 的作用。
定义如下:先作置换: {t1 · /x1 ,…, tn · /xn , u1 /y1,…,um/ym }
若 yi{x1,…, xn}时,先从中删除 ui/yi;ti· = xi时,再从中删除 ti ·/ xi;所设的置换称作与的乘积,记作 ·
42
例: ={f(y)/x, z/y}
={a/x, b/y, y/z} 求 ·解:先做置换 {f(y)·/x, z·/y, a/x, b/y, y/z}
即 {f(b)/x, y/y, a/x, b/y, y/z}
先删除 a/x,b/y, 再删 y/y ,得 · = {f(b)/x,y/z}
当 E = P(x,y,z)时, E = P(f(y), z, z),
(E) = P(f(b), y, y)
E(·) = P(f(b), y, y) (E) = E(·)
43
概念:合一设有公式集 {E1,…,Ek} 和置换,使
E1 = E2 =…Ek
称 E1,…,Ek 是可合一的,且称为合一置换合一置换( uniounion replacementn replacement )。
若 E1,…,Ek 有合一置换,且对 E1,…,Ek 的任一合一置换都有置换存在,使得
= ·便说是 E1,…,Ek 的最一般置换,记作 mgumgu ( momo
st general replacementst general replacement)
44
例 1 E1=P(a,y),E2=P(x,f(b)),E1,E2 可合一, ={a/x, f(b)/y},且是 E1 ,E2 的 mgu.
例 2 E1=P(x), E2=P(f(y))置换 ={f(a)/x, a/y}并不是 E1 、 E2 的 mgu ,而 = {f(y)/x}才是 E1 、 E2 的 mgu ,也可以说,
是 E1 、 E2 的最简单合一置换。
45
例 3 E1=P(x), E2=P(y) 。显然 {y/x} 和{x/y} 都是 E1 、 E2 的 mgu ,说明 mgu 不唯一。
46
求 mgu 的算法(最一般合一置换 mgu)
1. 令 w={E1,E2} 。2. 令 k=0,w0=w,0=( 空置换)。3. 如果 wk 已合一,停止, k=mgu 。
否则找不一致集。4. 若 Dk 中存在元素 vk,tk, 其中 vk 不出现于
tk 中做 5 ,否则不可合一。5. 令 k+1= k·{tk/vk}
wk+1=wk{tk/vk} = wk+1 。6. k+1k 转 3 。
47
例 例 w={P(a,x,f(g(y))),P(z,f(a),f(u))}w={P(a,x,f(g(y))),P(z,f(a),f(u))}
其中,其中, E1=P(a,x,f(g(y))),E2=P(z,f(a),f(u))E1=P(a,x,f(g(y))),E2=P(z,f(a),f(u))
求 求 E1,E2E1,E2 的的 mugmug解: (1) w={P(a,x,f(g(y))),P(z,f(a),f(u))}. (2) 0=,w0=w. (3) w0未合一,自左至右找不一致集,有 D0={a,z}. (4) 取 v0=z,t0=a. (5)令 1= 0 , {t0/v0}= · {a/z} = {a/z}. w1=w01={P(a,x,f(g(y))),P(a,f(a),f(u))}. (3) ′w1未合一,不一致集 D1={x,f(a)}. (4) ′ 取 v1=x,t1=f(a). (5) ′令 2= 1·{f(a)/x}={a·/z,f(a)/x}={a.z,f(a)/x} w2=w12={P(a),f(a),f(g(y)),p(a,f(a),f(u))}.
48
(3) ′w2未合一,不一致集 D2 = {g(y),u}.
(4) ′ 取 v2 = u,t2=g(y).
(5) ′令 3= 2·{g(y)/u} = {a/z,f(a)/x}·{g(y)/u}
= { a/z,f(a)/x,g(y)/u} .
w3 = w23={P(a),f(a),f(g(y)),P(a),f(a),f(g(y)))}
(3) ′w3 已合一,这时3={a/z,f(a)/x,g(y)/u} ,即为 E1 , E2 的 mgu.
注:不可合一的情况 ① 不存在 vk 变量,如 w={P(a,b,c),P(d,b,c)}
② 不存在 tk 变量,如 w={P(a,b),P(x,y,z)}
③出现不一致集为 {x,f(x)} 形
′
′
′
′′
49
3.7.2 归结式 在谓词逻辑下求两个子句的归结式,和命题在谓词逻辑下求两个子句的归结式,和命题
逻辑一样是消去互补对,但需考虑变量的合一逻辑一样是消去互补对,但需考虑变量的合一和置换。和置换。
二元归结式二元归结式:设 C1, C2 是两个无公共 变量的子句, L1, L2 分别是 C1, C2 的文字,若 L1 与 ~ L2 有 mgu ,则
(C1 - {L1 }) (C2 - {L2 })
称作子句 C1, C2 的一个二元归结式,而 L1, L2 为被归结的文字。
【注意】:同命题逻辑下的归结式不同的是,先需对 C1, C2 有关变量作 mgu ,再消去互补对。同样有:
C1 C2 R(C1, C2)
50
例 1 C1 = ~A(x) B(x)
C2 = A(g(x))
【解】:先将 C1 的变量 x改写为 y ,可得 mgu = {g(x)/y} ,作归结得 R(C1, C2) = B(g(x)) 。
例 2 C1 = P(x) Q(x)
C2 = ~P(g(y)) ~Q(b) R(x)
【解】:可知有两个合一置换,故有两个二元归结式。
( 1 )当取 = {g(y)/x} 时,得
R(C1, C2) = Q(g(y)) ~Q(b) R(x)
( 2 )当取 = {b/x} 时,得
R(C1, C2) = P(b) ~P(g(y)) R(x)
51
例 3 C1 = P(x) ~Q(b)
C2 = ~P(a) Q(y) R(z)
【解】:这时要注意,求归结式不能同时消去两个互补对。
如在 = {a/x, b/y} 下,得 R(z) 。这不是 C1, C2 的二元归结式。
最简单的例子是:
C1 = P Q , C2 = ~P ~ Q
若消去上述两个互补对便得空子句。但是 C1, C2 并无矛盾。这说明消去两个互补对的结果并不是 C1, C2 的逻辑推论了。因此,消去两个互补对结果不是二元归结式。
52
在对子句作归结前,可先考虑子句内部的化简,这便提出了子句因子的概念。
设 C = P(x) P(f(y)) ~Q(x)
令 = {f(y)/x} ,将置换使用于 C ,可使 P(x), P(f(y)) 合一。显然 C比 C简单得多。
子句因子:若一个子句 C 的几个文字有 mgu ,那么 C的 C 称作子句 C 的因子。
定义:若 C1, C2 是无公共变量的子句,作
( 1 ) C1, C2 的二元归结式
( 2 ) C1 的因子和 C2 的二元归结式
( 3 ) C1, 和 C2 的因子的二元归结式
( 4 ) C1 的因子和 C2 的因子的二元归结式
这四种二元归结式都叫子句 C1, C2 的归结式,记作 R(C1, C
2)
53
例 4 C1 = P(x) P(f(y)) Q(g(y))
C2 = ~P(f(g(a))) Q(b)
【解】:先作 C1 的因子,取 = {f(y)/x} ,得 C1
的因子
C1 = P(f(y)) Q(g(y))
于是 C1, C2 归结式为
R(C1, C2) = Q(g(g(a))) Q(b)
【说明】:上述推理过程的正确性能得到保证。
54
3.7.3 归结推理过程 为证明为证明 AABB 成立,其中成立,其中 A, BA, B 是谓词公式,是谓词公式,
使用反演过程,先建立使用反演过程,先建立G = A G = A ~B ~B
进而做出相应的子句集进而做出相应的子句集 SS ,只需证明,只需证明 SS 是不可是不可满足的。满足的。
归结法是仅有一条推理规则的推理方法。对归结法是仅有一条推理规则的推理方法。对SS 中的可归结的子句作归结,求得归结式,并将中的可归结的子句作归结,求得归结式,并将这归结式(新子句)仍放入这归结式(新子句)仍放入 SS 中,反复进行这中,反复进行这个归结过程直至产生空子句为止。这时个归结过程直至产生空子句为止。这时 SS必是必是不可满足的,从而证明不可满足的,从而证明 AABB 是成立的。是成立的。
【注意】:归结推理的实例请详见石纯一等编著【注意】:归结推理的实例请详见石纯一等编著的《人工智能原理》的《人工智能原理》 pp48-51pp48-51 。。
55
Thanks!
2002年第一稿
2004年 9月修改
Thanks!
2002年第一稿
2004年 9月修改