Upload
liza
View
110
Download
6
Embed Size (px)
DESCRIPTION
第四章 谓词演算及应用. 是一种形式语言,具有严密的理论体系 是一种常用的知识表示方法 例: City (北京) City (上海) Age (张三, 23 ) (x)( y)( z)(F(x, y)F(y, z)GF(x, z). 归结 推理. 命题 逻辑. 谓词逻 辑. Herbrand 定理. 数理 逻辑. 基本 概念. 命题逻辑 归结. 谓词逻辑 归结原理. 合一和置换、 控制策略. Skolem 标准形、 子句集. 4.1 归结原理. - PowerPoint PPT Presentation
Citation preview
第四章 谓词演算及应用是一种形式语言,具有严密的理论体系是一种常用的知识表示方法
例:City (北京)City (上海)Age (张三, 23 )(x)( y)( z)(F(x, y)F(y, z)GF(x, z)
归结推理
命题逻辑
谓词逻辑
Skolem 标准形、子句集
基本概念
谓词逻辑归结原理
合一和置换、控制策略
数理逻辑
命题逻辑归结
Herbrand定理
4.1 归结原理归结原理是一种定理证明方法, 1965年由 Robinson 提出,从理论上解决了定理证明问题。子句集
无量词约束元素只是文字的析取否定符只作用于单个文字元素间默认为合取例: {~I(z)R(z), I(A), ~R(x) L(x), ~D(y)}
概述归结原理由 J.A.Robinson 由 1965 年提出。
与演绎法 (deductive inference) 完全不同,新的逻辑演算 (inductive inference) 算法。一阶逻辑中,至今为止的最有效的半可判定的算法。即,一阶逻辑中任意恒真公式,使用归结原理,总可以在有限步内给以判定。 语义网络、框架表示、产生式规则等等都是以推理方法为前提的。即,有了规则已知条件,顺藤摸瓜找到结果。 而归结方法是自动推理、自动推导证明用的。(“数学定理机器证明”)
本课程只讨论一阶谓词逻辑描述下的归结推理方法,不涉及高阶谓词逻辑问题。
命题逻辑的归结法
命题逻辑基础: 定义:
合取式: p 与 q ,记做 p Λ q
析取式: p 或 q ,记做 p ∨ q
蕴含式: 如果 p 则 q ,记做 p → q
等价式: p 当且仅当 q ,记做 p <=> q。。。。。。
命题逻辑基础定义:
若 A 无成假赋值,则称 A 为重言式或永真式;若 A 无成真赋值,则称 A 为矛盾式或永假式;若 A 至少有一个成真赋值,则称 A 为可满足的;析取范式:仅由有限个简单合取式组成的析取式。合取范式:仅由有限个简单析取式组成的合取式。
命题逻辑基础
基本等值式 24 个 (1)交换率: p∨q <=> q ∨p ;
p Λ q <=> q Λp 结合率: (p∨q) ∨ r<=> p∨(q ∨r);
(p Λ q) Λ r<=> p Λ(q Λ r)
分配率: p∨(q Λ r) <=> (p∨q)Λ(p ∨r) ; p Λ(q ∨ r) <=> (p Λ q) ∨(p Λ r)
命题逻辑基础
基本等值式( 1 )摩根率 : ~ (p∨q) <=> ~ p Λ ~ q ;
~ (p Λq) <=> ~ p ∨ ~ q
吸收率 : p∨(pΛq ) <=> p ; p Λ(p∨q ) <=> p
同一律 : p∨0 <=> p ; pΛ1 <=> p
蕴含等值式 :p → q <=> ~ p∨q
假言易位式 : p → q <=> ~ p → ~ q
命题例命题:能判断真假(不是既真又假)的陈述句。
简单陈述句描述事实、事物的状态、关系等性质。例如: 1 . 1+1=2
2 . 雪是黑色的。3 . 北京是中国的首都。4 . 到冥王星去渡假。
判断一个句子是否是命题,有先要看它是否是陈述句,而后看它的真值是否唯一。以上的例子都是陈述句,第 4 句的真值现在是假,随着人类科学的发展,有可能变成真,但不管怎样,真值是唯一的。因此,以上 4 个例子都是命题。
而例如: 1 . 快点走吧! 2 . 到那去? 3 . x+y>10
等等句子,都不是命题。
命题表示公式( 1 )将陈述句转化成命题公式。如:设“下雨”为 p ,“骑车上班”为 q ,,1 .“只要不下雨,我骑自行车上班”。~ p
是 q 的充分条件,因而,可得命题公式: ~ p → q
2 .“只有不下雨,我才骑自行车上班”。~p 是 q 的必要条件,因而,可得命题公式: q → ~ p
命题表示公式( 2 )例如:
1 . “如果我进城我就去看你,除非我很累。”设: p ,我进城, q ,去看你, r,我很累。
则有命题公式:~ r → (p → q)。2 .“应届高中生,得过数学或物理竞赛的一等 奖,
保送上北京大学。” 设: p ,应届高中生, q ,保送上北京大学上学,
r,是得过数学一等奖。 t,是得过物理一等奖。 则有命题公式公式: p ∧ ( r ∨t ) → q 。
命题逻辑的归结法
基本单元:简单命题(陈述句)例: 命题: A1 、 A2 、 A3 和 B
求证: A1ΛA2ΛA3成立,则 B 成立,
即: A1ΛA2ΛA3 → B
反证法:证明 A1ΛA2ΛA3Λ ~ B 是矛盾式
(永假式)
命题逻辑的归结法建立子句集
合取范式:命题、命题和的与, 如:PΛ( P∨Q) Λ ( ~ P∨Q)子句集 S :合取范式形式下的子命题(元素)的集合
例:命题公式: PΛ( P∨Q) Λ ( ~ P∨Q) 子句集 S: S = {P, P∨Q, ~ P∨Q}
命题逻辑的归结法
归结式消除互补对,求新子句→得到归结式。如子句: C1, C2 ,
归结式: R(C1, C2) = C1ΛC2
注意: C1ΛC2 → R(C1, C2) , 反之不不一定一定成立。
命题逻辑的归结法归结过程 将命题写成合取范式求出子句集对子句集使用归结推理规则归结式作为新子句参加归结归结式为空子句□ , S是不可满足的(矛盾),原命题成立。
� (证明完毕)谓词的归结:除了有量词和函数以外,其余和命题归结过程一样。
命题逻辑归结例题( 1 )
例题,证明公式: (P → Q) → ( ~ Q → ~ P)证明:
( 1 )根据归结原理,将待证明公式转化成待归结命题公式:(P → Q) ∧ ~ (~ Q → ~ P)
( 2 )分别将公式前项化为合取范式:P → Q = ~ P ∨ Q
结论求~后的后项化为合取范式:~ (~ Q → ~ P)= ~ (Q∨ ~ P) = ~ Q ∧ P
两项合并后化为合取范式:(~ P ∨ Q )∧~ Q ∧ P
( 3 )则子句集为:{ ~ P∨Q ,~Q, P}
命题逻辑归结例题( 2 )
子句集为: { ~ P∨Q ,~Q, P}( 4 )对子句集中的子句进行归结可得:
1. ~ P∨Q2. ~ Q3. P4. Q , ( 1 , 3 归结)5. , ( 2 , 4 归结)
由上可得原公式成立。
谓词归结原理基础
一阶逻辑
基本概念个体词:表示主语的词谓词:刻画个体性质或个体之间关系的词量词:表示数量的词
谓词归结原理基础
小王是个工程师。8 是个自然数。我去买花。小丽和小华是朋友。
其中,“小王”、“工程师”、“我”、“花”、“ 8” 、“小丽”、“小华”都是个体词,而“是个工程师”、“是个自然数”、“去买”、“是朋友”都是谓词。显然前两个谓词表示的是事物的性质,第三个谓词“去买”表示的一个动作也表示了主、宾两个个体词的关系,最后一个谓词“是朋友”表示两个个体词之间的关系。
谓词归结原理基础
一阶逻辑
公式及其解释个体常量: a,b,c个体变量: x,y,z谓词符号: P,Q,R
量词符号: ,
谓词归结原理基础例如: ( 1 )所有的人都是要死的。 ( 2 ) 有的人活到一百岁以上。
在个体域D 为人类集合时,可符号化为:( 1 ) xP(x),其中 P(x)表示 x 是要死的。( 2 ) x Q(x), 其中 Q(x)表示 x 活到一百岁以上。在个体域D 是全总个体域时,引入特殊谓词 R(x)表示 x 是人,可符号化为:( 1 ) x ( R(x) → P(x)) , 其中, R(x)表示 x 是人; P(x)表示 x 是要死的。
( 2 ) x ( R(x) ∧ Q(x)),其中, R(x)表示 x 是人; Q(x)表示 x 活到一百岁以上。
谓词归结原理基础量词否定等值式:
~ ( x ) M( x ) <=> ( y ) ~ M( y) ~ ( x ) M( x ) <=> ( y ) ~ M( y)
量词分配等值式:( x ) ( P( x ) ΛQ( x ) ) <=> ( x ) P( x ) Λ ( x ) Q( x )
( x ) ( P( x ) ∨ Q ( x ) ) <=> ( x ) P( x ) ∨ ( x ) Q( x )
消去量词等值式:设个体域为有穷集合( a1, a2, …an)( x ) P( x ) <=> P ( a1 ) Λ P( a2 ) Λ …Λ P( an )
( x ) P( x ) <=> P ( a1 ) ∨ P( a2 ) ∨ … ∨ P( an )
谓词归结原理基础量词辖域收缩与扩张等值式:
( x ) ( P( x ) ∨ Q) <=> ( x ) P( x ) ∨ Q( x ) ( P( x ) Λ Q) <=> ( x ) P( x ) Λ Q
( x ) ( P( x ) → Q) <=> ( x ) P( x ) → Q
( x ) (Q → P( x ) ) <=>Q → ( x ) P( x ) ( x ) ( P( x ) ∨ Q) <=> ( x ) P( x ) ∨ Q( x ) ( P( x ) Λ Q) <=> ( x ) P( x ) Λ Q
( x ) ( P( x ) → Q) <=> ( x ) P( x ) → Q
( x ) (Q → P( x ) ) <=>Q → ( x ) P( x )
谓词归结子句形 ( Skolem 标准形 )
SKOLEM 标准形前束范式定义:说公式 A 是一个前束范式,如果 A 中的一切量词都位于该公式的最左边(不含否定词),且这些量词的辖域都延伸到公式的末端。
谓词归结子句形 ( Skolem 标准形 )
即: 把所有的量词都提到前面去,然后消掉所有量词(Q1x1)(Q2x2)…(Qnxn)M(x1,x2,…,xn)
约束变项换名规则:(Qx ) M( x ) <=> ( Qy ) M( y) (Qx ) M( x,z ) <=> ( Qy ) M( y,z)
谓词归结子句形 ( Skolem 标准形 )
量词消去原则:消去存在量词“”,略去全程量词“”。
注意:左边有全程量词的存在量词,消去时该变量改写成为全程量词的函数;如没有,改写成为常量。
谓词归结子句形 ( Skolem 标准形 )
Skolem 定理:谓词逻辑的任意公式都可以化为与之等价的前束范式,但其前束范式不唯一。 SKOLEM 标准形定义:消去量词后的谓词公式。注意:谓词公式 G 的 SKOLEM 标准形同G 并不等值。
谓词归结子句形 ( Skolem 标准形 )
例 : 将下式化为 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) ∨(u) ( v)(Q(v, b) ∨R(u))第四步,存在量词左移,直至所有的量词移到前面,得:
(x) (y) (u) ( v)P(a, x, y) ∨(Q(v, b) ∨R(u))
由此得到前述范式
谓词归结子句形 ( Skolem 标准形 )
第五步,消去“”(存在量词),略去“”全称量词
消去 (y) ,因为它左边只有 (x) ,所以使用 x 的函数 f(x)代替之,这样得到:
(x)(z)( P(a, x, f(x)) ∨ ~ Q(z, b) ∨ ~ R(x))消去 (z) ,同理使用 g(x)代替之,这样得到:(x) ( P(a, x, f(x)) ∨ ~ Q(g(x), b) ∨ ~ R(x))则,略去全称变量,原式的 Skolem 标准形为: P(a, x, f(x)) ∨ ~ Q(g(x), b) ∨ ~ R(x)
谓词归结子句形
子句与子句集文字:不含任何连接词的谓词公式。子句:一些文字的析取(谓词的和)。子句集 S 的求取:
G → SKOLEM 标准形 → 消去存在变量
→ 以“,”取代“ Λ” ,并表示为集合形式 。
谓词归结子句形 G 是不可满足的 <=> S 是不可满足的G 与 S不等价,但在不可满足得意义下是一致的。 定理:若 G 是给定的公式,而 S是相应的子句集,则 G 是不可满足的 <=> S 是不可满足的。
注意: G 真不一定 S真,而 S真必有 G 真。即: S => G
(原因 : 子句: C1, C2 , 归结式: R(C1, C2) = C1ΛC2
此时 ,C1ΛC2 → R(C1, C2) , 反之不一定不一定成立。 )
谓词归结子句形G = G1Λ G2Λ G3Λ …Λ Gn 的子句形
G 的字句集可以分解成几个单独处理。
有 SG = S1 U S2 U S3 U …U Sn
则 SG 与 S1 U S2 U S3 U …U Sn 在不可满足得意义上是一致的。即 SG 不可满足 <=> S1 U S2 U S3 U …U Sn
不可满足
求取子句集例 (1)例:对所有的 x,y,z来说,如果 y 是 x 的父亲, z
又是 y 的父亲,则 z 是 x 的祖父。又知每个人都有父亲,试问对某个人来说谁是它的祖父?求:用一阶逻辑表示这个问题,并建立子句集。解:这里我们首先引入谓词:
P(x, y) 表示 x 是 y 的父亲Q(x, y) 表示 x 是 y 的祖父ANS(x) 表示问题的解答
求取子句集例 (2)对于第一个条件,“如果 x 是 y 的父亲, y又是 z 的父亲,则 x
是 z 的祖父”,一阶逻辑表达式如下:A1 : (x)(y)(z)(P(x, y)∧P(y, z)→Q(x, z))
S A1 :~ P(x ,y)∨~ P(y, z)∨Q(x, z)对于第二个条件:“每个人都有父亲”,一阶逻辑表达式:
A2 : (y)(x)P(x, y)
S A2: P(f(y), y)对于结论:某个人是它的祖父
B: (x)(y)Q(x, y)否定后得到子句: ~( (x)(y)Q(x, y) ) ∨ ANS(x)
S ~ B:~Q(x, y)∨ANS(x)
则得到的相应的子句集为: { S A1, S A2, S ~ B }
定理:若 S是合式公式 F的子句集,则 F永假的充要条件是 S不可满足。S不可满足:若 nilS,则 S不可满足。证明的思路:目标的否定连同已知条件一起,化为子句集,并给出一种变换的方法,使得
S S1 S2 ... Sn
同时保证当 Sn 不可满足时,有 S不可满足。
4.2 归结方法(命题逻辑)设子句:C1=LC1’
C2=(~L) C2’则归结式 C为:
C=C1’ C2’
定理:子句集 S={C1, C2, …, Cn} 与子句集 S1={C, C3, C4, …, Cn} 的不可满足性是等价的。
其中, C是 C1 和 C2 的归结式。
归结的例子设公理集:
P, (PQ) R,(ST) Q,T
求证: R子句集:
(1) P(2) ~P~QR(3) ~SQ(4) ~TQ(5) T(6) ~R (目标求反)
化子句集: (PQ) R
=> ~(PQ)R=> ~P~QR
(ST) Q=> ~ (ST)Q=> (~S~T)Q=> (~SQ) (~TQ)=> {~SQ, ~TQ}
子句集:(1) P(2) ~P~QR(3) ~SQ(4) ~TQ(5) T(6) ~R (目标求反)
归结:(7) ~P~Q (2, 6)(8) ~Q (1, 7) (9) ~T (4, 8) (10) nil (5, 9)
归结原理正确性的根本在于,找到矛盾可以肯定不真。
方法:和命题逻辑一样。但由于有函数,所以要考虑合一和置换。
4.3 谓词逻辑的归结原理
谓词逻辑的归结原理问题:如何找归结对例: P(x)Q(y), ~P(f(y))R(y)
P(A)Q(y), ~P(f(y))R(y)基本概念
置换s={t1/v1, t2/v2, …, tn/vn}对公式 E实施置换 s后得到的公式称为 E的例,记作 Es。
例: s1={z/x, a/y}, 则: P[x, f(y), b]s1=P[z, f(a), b]
置换置换:可以简单的理解为是在一个谓词公式中用置换项去置换变量。定义:置换是形如 {t1/x1, t2/x2, …, tn/xn} 的有限集合。其中,x1, x2, …, xn是互不相同的变量, t1, t2, …, tn是不同于xi的项(常量、变量、函数); ti/xi表示用 ti置换 xi,并且要求 ti与 xi不能相同,而且 xi不能循环地出现在另一个 ti中。
例如{a/x , c/y , f(b)/z} 是一个置换。{g(y)/x , f(x)/y} 不是一个置换,
置换的合成
设= {t1/x1, t2/x2, …, tn/xn} , = {u1/y1, u2/y2, …, un/yn} ,是两个置换。
则与的合成也是一个置换,记作 · 。它是从集合{t1·/x1, t2·/x2, …, tn·/xn, u1/y1, u2/y2, …, un/yn }中删去以下两种元素:
当 ti=xi时,删去 ti/xi (i = 1, 2, …, n);
当 yi{x1,x2, …, xn} 时,删去 uj/yj (j = 1, 2, …, m)最后剩下的元素所构成的集合。
置换的合成例:设:= {f(y)/x, z/y} ,= {a/x, b/y, y/z} ,求与的合成。解:先求出集合
{f(b/y)/x, (y/z)/y, a/x, b/y, y/z} = {f(b)/x, y/y, a/x, b/y, y/z}其中, f(b)/x 中的 f(b) 是置换作用于 f(y) 的结果; y/y 中的 y 是置换作用于 z 的结果。在该集合中, y/y 满足定义中的条件 i,需要删除;a/x , b/y 满足定义中的条件 ii ,也需要删除。
最后得· = {f(b)/x , y/z}
合一合一可以简单地理解为“寻找相对变量的置换,使两个谓词公式一致”。定义:设有公式集 F= {F1 , F2 ,…, Fn} ,若存在一个置换,可使 F1 = F2 =… = Fn ,则称是 F的一个合一。同时称 F1 , F2 , ... , Fn是可合一的。 例:设有公式集 F = {P(x, y, f(y)), P(a,g(x),z)} ,则= {a/x, g(a)/y, f(g(a))/z} 是它的一个合一。
注意:一般说来,一个公式集的合一不是唯一的。
合一算法例:求 {P(x, x, b), P(f(y), f(b), y)} 合一置换解 : 前缀表示:
(P (x x z))(P (f ( y) (f (b) y))置换: {(f (y)/x} (P (f (y) (f (y) z))(P (f (y) (f (b) y))置换: {b/y}, 并使得 {f (b)/x}(P (f (b) (f (b) z))(P (f (b) (f (b) b))置换: {b/z}得到置换: {f (b)/x , b/y , b/z}置换后的结果: (P (f (b) f (b) b))
归结原理归结的注意事项:1. 谓词的一致性, P() 与 Q() , 不可以2. 常量的一致性, P(a, …) 与 P(b,….) , 不可以
变量, P(a, ….) 与 P(x, …) , 可以
1. 变量与函数, P(a, x, ….) 与 P(x, f(x), …) ,不可以;
2. 是不能同时消去两个互补对, P∨Q 与~ P∨ ~ Q 的空,不可以
3. 先进行内部简化(置换、合并)
归结原理归结的过程写出谓词关系公式 →用反演法写出谓词表达式→ SKOLEM 标准形 → 子句集 S → 对 S 中可归结的子句做归结 →归结式仍放入 S 中,反复归结过程 → 得到空子句 ▯得证
归结原理
归结法的实质:归结法是仅有一条推理规则的推理方法。 归结的过程是一个语义树倒塌的过程。
归结法的问题子句中有等号或不等号时,完备性不成立。
※ Herbrand 定理的不实用性引出了可实用的归结法。
谓词逻辑的归结方法对于子句 C1L1 和 C2L2 ,如果 L1 与~L2 可合一,且 s是其合一者,则(C1C2)s是其归结式。例: P(x)Q(y), ~P(f(z))R(z)
=> Q(y)R(z) 另 P(x)Q(x), ~P(f(z))R(z) => Q(f(z))R(z)
23/4/20
命题逻辑的归结
证明 : PQ ,PR,¬QS ¬SR
setps reason 1 ¬S CP 附加前提 2 ¬QS P 3 ¬Q T,1,2, 归结 4 PQ P 5 P T,3,4, 归结 6 PR P 7 R T,5,6, 假言推理 8 SR CP,1,7
归结举例设公理集:
(x)(R(x)L(x))(x)(D(x)~L(x))(x)(D(x)I(x))求证: (x)(I(x)~R(x))化子句集: (x)(R(x)L(x)) => (x)(~R(x)L(x))=> ~R(x)L(x) (1)
(x)(D(x)~L(x))=> (x)(~D(x)~L(x))=> ~D(x)~L(x) (2)
(x)(D(x)I(x))=> D(A)I(A)=> D(A) (3)
I(A) (4)
目标求反: ~(x)(I(x)~R(x))
=> (x)~(I(x)~R(x))=> (x)(~I(x)R(x))=> ~I(x)R(x) (5)
换名后得字句集:~R(x1)L(x1)~D(x2)~L(x2)D(A)
I(A) ~I(x5)R(x5)
例题的归结树
~R(x1)L(x1)
~D(x2)~L(x2)D(A)
I(A)
~I(x5)R(x5)
I(A) ~I(x5)R(x5)
R(A)
{ A/x5}
~R(x1)L(x1)
L(A)
{ A/x1}
~D(x2)~L(x2)
~D(A)
{ A/x2}
D(A)
nil
例题“快乐学生”问题假设任何通过计算机考试并获奖的人都是快乐的 ; 任何肯学习或幸运的人都可以通过所有的考试 ; 张同学不肯学习但他是幸运的 ; 任何幸运的人都能获奖。求证:张同学是快乐的。 解:先将问题用谓词表示如下:R1:“ 任何通过计算机考试并获奖的人都是快乐的”(x)((Pass(x, computer)∧Win(x, prize))→Happy(x))R2:“ 任何肯学习或幸运的人都可以通过所有考试”(x)(y)(Study(x)∨Lucky(x)→Pass(x, y))R3:“ 张同学不肯学习但他是幸运的”~ Study(zhang)∧Lucky(zhang)R4:“ 任何幸运的人都能获奖”(x)(Luck(x)→Win(x,prize))结论:“张同学是快乐的”的否定
~ Happy(zhang)
例题“快乐学生”问题由 R1 及逻辑转换公式 (P∧W)→H = ~( P∧W )∨ H = ~ P∧~ W∨ H ,可得 (1) ~ Pass(x, computer)∨ ~ Win(x, prize)∨Happy(x)由 R2 : (2) ~ Study(y)∨Pass(y,z) (3) ~ Lucky(u)∨Pass(u,v)由 R3 : (4) ~ Study(zhang) (5)Lucky(zhang)由 R4 : (6) ~ Lucky(w)∨Win(w , prize)由结论: (7) ~ Happy(zhang) (结论的否定)(8) ~ Pass(w, computer)∨Happy(w)∨ ~ Luck(w) (1)(6) , {w/x}(9) ~ Pass(zhang, computer)∨ ~ Lucky(zhang) (8)(7) ,{zhang/w}(10) ~ Pass(zhang, computer) (9)(5)(11) ~ Lucky(zhang) (10)(3){zhang/u, computer/v}(12) (11)(5)
4.4 基于归结的问答系统例: John 在那 Fido就在那 . John 在学校 . 问 :Fido 在那里 ?已知: (x)[AT(John, x) AT(Fido, x)]
AT(John, School)求证: (x)AT(Fido, x)子句集:~AT(John, x1) AT(Fido, x1)AT(John, School)~AT(Fido, x2)
~AT(Fido, x2) ~AT(John, x1) AT(Fido, x1)
子句集: ~AT(John, x1) AT(Fido, x1)AT(John, School)~AT(Fido, x2)
~AT(John, x2)
{x2/x1}
AT(John, School)
nil
{School/x2}
AT(Fido, x2)
AT(Fido, x2)
AT(Fido, School)
提取回答的过程
先进行归结,证明结论的正确性;用重言式代替结论求反得到的子句;按照证明过程,进行归结;最后,在原来为空的地方,得到的就是提取的回答。修改后的证明树称为修改证明树。
例:猴子摘香蕉问题
c
问题的表示已知:1, ~ON(s0)
2, (x)(s)(~ON(s) AT(box, x, push(x, s)))3, (s)(ON(climb(s)))4, (s)((ON(s) AT(box, c, s)) HB(grasp(s)))5, (x)(s)(AT(box, x, s) AT(box, x,
climb(s)))
求解: (s)HB(s)
问题的子句集1, ~ON(s0)
2, ON(s1) AT(box, x1, push(x1, s1))3, ON(climb(s2))4, ~ON(s3) ~AT(box, c, s3)
HB(grasp(s3))5, ~AT(box, x4, s4) AT(box, x4,
climb(s4))6, ~HB(s5)
~HB(s5) ~ON(s3) ~AT(box, c, s3) HB(grasp(s3))
~ON(s3) ~AT(box, c, s3)
{grasp(s3)/s5}
ON(climb(s2))
{climb(s2)/s3}
~AT(box, c, climb(s2))
~ON(s0) ON(s1) AT(box, x1, push(x1, s1))
{s0/s1}
AT(box, x1, push(x1, s0))
~AT(box, x4, s4) AT(box, x4, climb(s4))
{x4/x1,push(x4,s0)/s4}
AT(box, x4, climb(push(x4,s0)))
NIL
{c/x4,push(c,s0)/s2}
HB(s5)
HB(grasp(s3))
HB(grasp(climb(s2)))
HB(grasp(climb(push(c,s0))))
归结方法小结
求子句集,进行归结,方法简单通过修改证明树的方法,提取回答方法通用求解效率低,不宜引入启发信息不宜理解推理过程
4.5 基于规则的正向演绎系统问题:
归结方法不自然可能会丢失蕴涵关系中所包含的控制信息
例:以下蕴涵式:~A ~B C ~C A B~A ~C B ~A C B~B ~C A ~B A C均与子句 (A B C) 等价,但显然上面的蕴涵式信息更丰富。
事实表达式的与或形及其表达与或形
无量词约束否定符只作用于单个文字只有“与”、“或”
例: (u)(v)(Q(v, u)~((R(v)P(v))S(u, v)))
=(u)(v) (Q(v, u)((~R(v)~P(v))~S(u, v)))=>Q(v, a)((~R(v) ~P(v))~S(a, v)) Skolem化=> Q(w, a)((~R(v)~P(v))~S(a, v))
主合取元变量换名
事实的与或树表示例: Q(w, a)((~R(v) ~P(v)) ~S(a, v))
Q(w, a)((~R(v) ~P(v)) ~S(a, v))
Q(w, a) (~R(v) ~P(v)) ~S(a, v)
~R(v) ~P(v) ~S(a, v)
~R(v) ~P(v)
解图集: Q(w, a), ~R(v)~S(a, v), ~P(v)~S(a, v)
应用规则对与或图作变换对规则的形式:L W其中, L是单文字,W 是与或形,变量受全称量词约束
例: (x)(((y)(z)P(x, y, z)) (u)Q(x, u))= (x)(~((y)(z)P(x, y, z)) (u)Q(x, u))= (x)((y)(z)~P(x, y, z) (u)Q(x, u))= (x)(y)(z) (u)(~P(x, y, z) Q(x, u))转化 ~P(x, y, f(x, y)) Q(x, u)转化 P(x, y, f(x, y)) Q(x, u)转化 P(x1, y1, f(x1, y1)) Q(x1, u1) 换名
例: (L1 L2) W 转化为 L1 W 和 L2 W
命题逻辑的情况
例:事实: ((P Q) R) (S (T U))
规则: S (X Y) Z
((P Q) R) (S (T U))
(P Q) R S (T U)
P Q R S T U
P Q T US
X Y Z
X Y 事实子句:P Q SP Q T US RR T U
规则的子句: S (X Y) Z=> ~S(X Y) Z=> ~S X Z ~S Y Z
结论:加入规则后得到的解图,是事实与规则对应子句的归结式
得到的结论:P Q X ZP Q Y ZR X ZR Y Z
例:事实: A B规则集: A C D B E G目标公式: C G
A B
A B
A
C D
B
E G
C G
目标
谓词逻辑的情况事实表达式化成与或形规则化成 L W 的形式,其中 L为单文字目标用 Skolem 化的对偶形式,即消去全称量词,用 Skolem函数代替保留存在量词对析取元作变量换名
例: (y)(x)(P(x, y) Q(x, y)) => (y)(P(f(y), y) Q(f(y), y)) => P(f(y1), y1) Q(f(y2), y2) 换名
规则每使用一次,都要进行一次换名
例:事实: P(x, y) (Q(x, a) R(b, y)) 规则集: P(a, b) (S(a) X(b)) Q(b, a) U(a) R(b, b) V(b) 目标: S(a) X(b) U(a)
P(x, y) (Q(x, a) R(b, y))
P(x, y) Q(x, a) R(b, y)
Q(x, a) R(b, y)P(a, b)
{a/x,b/y}
S(a) X(b)Q(b, a)
{b/x}
U(a)
R(b, b)
{b/y}
V(b)
S(a) X(b) V(b)
一致解图如果一个解图中所涉及的置换是一致的,则该解图称为一致解图。设有置换集 {u1, u2, …, un}, 其中 : ui={ti1/vi1, …, tin/vin} ,定义表达式:
U1=(v1,1, …, v1,m1, …, vn,1, …, vn,mn) U2=(t1,1, …, t1,m1, …, tn,1, …, tn,mn)
置换集 {u1, u2, …, un} 称为一致的,当且仅当 U1 和 U2
是可合一的。 U1 、 U2 的 mgu 是 {u1, u2, …, un} 的合一复合。置换集的合一复合运算是可结合和可交换的。
一致置换举例u1 u2 U1 和 U2 合一复合
{a/x} {b/x} U1=(x, x) U2=(a, b)
不一致
{x/y} {y/z} U1=(y, z) U2=(x, y)
{x/y, x/z}
{f(b)/x} {f(a)/x} U1=(x, x) U2=(f(b), f(a))
不一致
{x/y, x/z} {a/z} U1=(y, z, z) U2=(x, x, a)
{a/x, a/y, a/z}
举例事实:
~D(F) (B(F) I(F))
规则:R1: ~D(x) ~T(x)R2: B(y) N(y)目标:
~T(u) N(v)
~D(F) (B(F) I(F))
~D(F) B(F) I(F)
B(F) I(F)~D(x)
{F/x}
~T(F)
R1
~T(u)
{F/u}
B(y)
{F/y}
N(F)
R2
N(v)
{F/v}
目标目标U1=(x, u, y, v)U2=(F, F, F, F)合一复合 u :{F/x, F/u, F/y, F/v}作用于目标: [~T(u) N(v)]u
= ~T(F) N(F)
规则: R1: ~D(x) ~T(x) R2: B(y) N(y)目标: ~T(u) N(v)
正向演绎系统小结事实表达式为与或形规则形式: L W, 其中 L为单文字目标公式为文字析取对事实和规则进行 Skolem化,消去存在量词,变量受全称量词约束,对主合取式中的变量和规则中的变量换名用“对偶形”对目标进行 Skolem化,消去全称量词,变量受存在量词约束,对析取式中的变量换名事实表达成与或树,其中,“”对应树中“与”,“ ”对应树中“或”从事实出发,正向应用规则,到得到目标节点为结束的一致解图为止存在合一复合时,则解图是一致的
4.6 基于规则的逆向演绎系统目标为任意形的表达式用“对偶形”对目标进行 Skolem化,即消去全称量词,变量受存在量词约束,对主析取元中的变量换名目标用与或树表示,其中,“”对应树中“与”,“”对应树中“或”事实表达式是文字的合取(有析取时可转化为规则)规则形式: L W, 其中W 为单文字,如形为:
L W1 W2 ,则变换为: L W1 和 L W2
从目标出发,逆向应用规则,到得到事实节点为结束条件的一致解图为止
例:事实: D(F) ~B(F) W(F) M(N)规则: R1: (W(x1) D(x1)) F(x1) R2: (F(x2) ~B(x2)) ~A(y2, x2) R3: D(X3) A(x3) R4: C(x4) A(x4) R5: M(x5) C(x5)目标: C(x) D(y) ~A(x, y)
C(x) D(y) ~A(x, y)
C(x) D(y) ~A(x, y)
C(x5)
{x/x5}
M(x)
R5
M(N)
{N/x}
D(F)
{F/y}
~A(y2, x2)
{x/y2,y/x2}
F(y) ~B(y)R2
~B(F)
{F/y}
F(x1)
{y/x1}
W(y) D(y)R1
W(F)
{F/y}
D(F)
{F/y}
一致性检查置换集{{x/x5}, {N/x}, {F/y}, {x/y2, y/x2}, {F/y}, {y/x1}, {F/y}, {F/y}}
U1=(x5, x, y, y2, x2, y, x1, y, y)U2=(x, N, F, x, y, F, y, F, F)
合一复合{N/x5, N/x, F/y, N/y2, F/x2, F/x1}
目标得到的解答 C(x) D(y) ~A(x, y)
=> C(N) D(F) ~A(N, F)
4.7 一些深入的问题
修剪不一致的局部解图规则的多次调用规则的递归调用加快匹配的速度
4.8 正、逆向系统对比事实表达式任意形规则形式: 单文字 W目标公式为文字析取对事实、规则消存在量词, Skolem化用对偶形消目标的全称量词,Skolem化事实表达式与或树,“”对“与”,“”对应“或”从事实出发,正向应用规则以目标为结束的一致解图
事实表达式是合取形规则形式: L 单文字目标公式任意形对事实、规则消存在量词, Skolem化用对偶形消目标的全称量词,Skolem化目标公式的与或树,“”对“与”,“”对应“或”从目标出发,逆向应用规则以事实为结束的一致解图
要解决的问题:归结方法的知识爆炸。
控制策略的目的归结点尽量少
控制策略的原则给出控制策略,以使仅对选择合适的子句间方可做归结。避免多余的、不必要的归结式出现。或者说,少做些归结仍能导出空子句。
4.9 归结过程的控制策略
控制策略的方法 (1)
采用支撑集 <=> 完备 支撑集:设有不可满足子句集 S 的子集 T,如果 S-T 是可满
足的,则 T是支持集。 采用支撑集策略时,从开始到得到的整个归结过程中,只选取不同时属于 S-T 的子句,在其间进行归结。就是说,至少有一个子句来自于支撑集 T或由 T导出的归结式。
例如: A1ΛA2ΛA3Λ ~ B 中的~ B 可以作为支撑集使用。要求每一次参加归结的亲本子句中,只要应该有一个是有目标公式的否定(~B)所得到的子句或者它们的后裔。支撑集策略的归结是完备的,同样,所有可归结的谓词公式都可以用采用支撑集策略达到加快归结速度的目的。问题是如何寻找合适的支撑集。一个最容易找到的支撑集是目标子句的非,即 S ~ B。
S
T
支撑集示意图
目标公式的否定(~ B )所得到的子句可以组成支撑集 T
控制策略的方法 (2)
线性归结 <=> 完备 线性归结策略首先从子句集中选取一个称作顶子
句的子句 C0开始作归结。归结过程中所得到的归结式 Ci立即同另一子句 Bi进行归结得归结式 Ci+1 。而Bi属于 S或是已出现的归结式 Cj(j<i) 。即,如下图所示归结得到的新子句立即参加归结。
线性归结是完备的,同样,所有可归结的谓词公式都可以采用线性归结策略达到加快归结速度的目的。如果能找到一个较好的顶子句,可以使归结顺利进行。否则也可能事与愿违。
C0 C1 C2 C3
C4
C5
空
线性归结策略示意图
控制策略的方法 (3)
单元归结 => 完备 单元归结策略要求在归结过程中,每次归结都有
一个子句是单元子句(只含一个文字的子句)或单元因子。显而易见,词中方法可以简单地削去另一个非单子句中的一个因子,使其长度减少,构成简单化,归结效率较高。
初始子句集中没有单元子句时,单元归结策略无效。所以说“反之不成立”,即此问题不能采用单元归结策略。
控制策略的方法 (4)输入归结 => 完备
与单元归结策略相似,输入归结策略要求在归结过程中,每一次归结的两个子句中必须有一个是 S的原始子句。这样可以避免归结出的不必要的新子句加入归结,造成恶性循环。可以减少不必要的归结次数。
如同单元归结策略,不是所有的可归结谓词公式的最后结论都是可以从原始子句集中的得到的。简单的例子,归结结束时,即最后一个归结式为空子句的条件是,参加归结的双方必须是两个单元子句。原始子句集中没有单元子句的谓词公式一定不能采用输入归结策略。