48
第第第 第第第第第第第 第第第 第第第第第第第 第第第第第第 第第第第第第第第 第 一,体 第第第第第第第第第第 City 第第第 () City 第第第 () Age 第第第 (, 23 (x)( y)( z)(F(x, y)F(y, z) GF(x, z)

第四章 谓词演算及应用

  • Upload
    karis

  • View
    98

  • Download
    5

Embed Size (px)

DESCRIPTION

第四章 谓词演算及应用. 是一种形式语言,具有严密的理论体系 是一种常用的知识表示方法 例: City (北京) City (上海) Age (张三, 23 ) (x)( y)( z)(F(x, y)F(y, z)GF(x, z). 4.1 归结原理. 归结原理是一种定理证明方法, 1965 年由 Robinson 提出,从理论上解决了定理证明问题。 子句集 无量词约束 元素只是文字的析取 否定符只作用于单个文字 元素间默认为和取 例: {~I(z) R(z), I(A), ~R(x) L(x), ~D(y) }. 化子句集的方法. - PowerPoint PPT Presentation

Citation preview

Page 1: 第四章 谓词演算及应用

第四章 谓词演算及应用第四章 谓词演算及应用是一种形式语言,具有严密的理论体系是一种常用的知识表示方法

– 例:– City (北京)– City (上海)– Age (张三, 23 )– (x)( y)( z)(F(x, y)F(y, z)GF(x, z)

Page 2: 第四章 谓词演算及应用

4.1 4.1 归结原理归结原理归结原理是一种定理证明方法, 1965 年由 Robinson 提出,从理论上解决了定理证明问题。子句集

– 无量词约束– 元素只是文字的析取– 否定符只作用于单个文字– 元素间默认为和取– 例: {~I(z)R(z), I(A), ~R(x) L(x), ~D(y)}

Page 3: 第四章 谓词演算及应用

化子句集的方法化子句集的方法例: (z) (x)(y){[(P(x) Q(x)) R(y)] U(z)}1, 消蕴涵符

理论根据: a b => ~a b(z) (x)(y){[~(P(x) Q(x)) R(y)] U(z)}

2, 移动否定符理论根据: ~(a b) => ~a ~b

~(a b) => ~a ~b ~(x)P(x)=>(x)~P(x) ~(x)P(x)=>(x)~P(x)

(z) (x)(y){[(~P(x) ~Q(x)) R(y)] U(z)}

Page 4: 第四章 谓词演算及应用

化子句集的方法(续化子句集的方法(续 11 ))3, 变量标准化即:对于不同的约束,对应于不同的变量

(x)A(x) (x)B(x) => (x)A(x) (y)B(y)4, 量词左移

(x)A(x) (y)B(y) => (x) (y) {A(x) B(y)}5, 消存在量词 (skolem 化)原则:对于一个受存在量词约束的变量,如果他不受全程量词约束,则该变量用一个常量代替,如果他受全程量词约束,则该变量用一个函数代替。

(z) (x)(y){[(~P(x) ~Q(x)) R(y)] U(z)} => (x) {[(~P(x) ~Q(x)) R(f(x))] U(a)}

Page 5: 第四章 谓词演算及应用

化子句集的方法(续化子句集的方法(续 22 ))6, 化为合取范式即 (ab) (cd) (ef) 的形式 (x){[(~P(x) ~Q(x)) R(f(x))]U(a)}=> (x){(~P(x) ~Q(x)) R(f(x))U(a)}=> (x){[~P(x) R(f(x))U(a)] [~Q(x)) R(f(x))U(a)]}

7, 隐去全程量词 {[~P(x) R(f(x))U(a)] [~Q(x)) R(f(x))U(a)]}

Page 6: 第四章 谓词演算及应用

化子句集的方法(续化子句集的方法(续 33 ))8, 表示为子句集 {~P(x) R(f(x))U(a), ~Q(x)) R(f(x))U(a)}

9, 变量标准化(变量换名){~P(x1) R(f(x1))U(a), ~Q(x2)) R(f(x2))U(a)}

Page 7: 第四章 谓词演算及应用

定理:若 S 是合式公式 F 的子句集,则 F 永假的充要条件是 S 不可满足。

S 不可满足:若 nilS ,则 S 不可满足。证明的思路:

目标的否定连同已知条件一起,化为子句集,并给出一种变换的方法,使得 S S1 S2 ... Sn 同时保证当 Sn 不可满足时,有 S 不可满足。

Page 8: 第四章 谓词演算及应用

4.2 4.2 归结方法(命题逻辑)归结方法(命题逻辑)设子句:

C1=LC1’C2=(~L) C2’则归结式 C 为:

C=C1’ C2’定理:

子句集 S={C1, C2, …, Cn} 与子句集 S1={C, C1, C2, …, Cn} 的不可满足性是等价的。其中, C 是 C1 和 C2 的归结式。

Page 9: 第四章 谓词演算及应用

归结的例子归结的例子设公理集:

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}

Page 10: 第四章 谓词演算及应用

子句集:(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)

Page 11: 第四章 谓词演算及应用

4.3 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, Ay}, 则:

P[x, f(y), B]s=P[z, f(A), B]

Page 12: 第四章 谓词演算及应用

合一如果存在一个 S 置换,使得 {Ei} 中 E1s=E2s=E3s=…=Ens , 则称 {Ei} 是可合一的。 S 为 {Ei} 的合一者。例: {P(x, f(y), B), P(z, f(B), B)} 置换 s={A/x, B/y, A/z} 是一个合一者 , 因为: P(x, f(y), B)s= P(A, f(B), B) P(z, f(B), B)s= P(A, f(B), B)置换 s={z/x, B/y} 和置换 s={x/z, B/y} 也都是合一者。结论:合一者不唯一。

Page 13: 第四章 谓词演算及应用

最一般合一者( mgu )置换最少,限制最少,产生的例最具一般性。如前面的例子:{P(x, f(y), B), P(z, f(B), B)}对于置换 {A/x, B/y, A/z} ,产生的例是:

P(A, f(B), B)对于置换 ={z/x, B/y} ,产生的例是:

P(z, f(B), B)mgu 也不是唯一的。

Page 14: 第四章 谓词演算及应用

合一算法合一算法例: {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)

Page 15: 第四章 谓词演算及应用

谓词逻辑的归结方法谓词逻辑的归结方法对于子句 C1L1 和 C2L2 ,如果 L1 与 ~

L2 可合一,且 s 是其合一者,则 (C1C2)s 是其归结式。

例: P(x)Q(y), ~P(f(z))R(z) => Q(y)R(z)

Page 16: 第四章 谓词演算及应用

归结举例归结举例设公理集:(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)

Page 17: 第四章 谓词演算及应用

(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)

Page 18: 第四章 谓词演算及应用

目标求反: ~(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)

Page 19: 第四章 谓词演算及应用

例题得归结树例题得归结树~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

Page 20: 第四章 谓词演算及应用

4.4 4.4 基于归结的问答系统基于归结的问答系统例:

已知: (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)

Page 21: 第四章 谓词演算及应用

~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)

Page 22: 第四章 谓词演算及应用

提取回答的过程提取回答的过程先进行归结,证明结论的正确性;用重言式代替结论求反得到的子句;按照证明过程,进行归结;最后,在原来为空的地方,得到的就是提取的回答。修改后的证明树称为修改证明树

Page 23: 第四章 谓词演算及应用

例:猴子摘香蕉问题例:猴子摘香蕉问题

c

Page 24: 第四章 谓词演算及应用

问题的表示问题的表示已知: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)

Page 25: 第四章 谓词演算及应用

问题的子句集问题的子句集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)

返回

Page 26: 第四章 谓词演算及应用

~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))))

Page 27: 第四章 谓词演算及应用

归结方法小结归结方法小结求子句集,进行归结,方法简单通过修改证明树的方法,提取回答方法通用求解效率低,不宜引入启发信息不宜理解推理过程

Page 28: 第四章 谓词演算及应用

4.5 4.5 基于规则的正向演绎系统基于规则的正向演绎系统问题:

– 归结方法不自然– 可能会丢失蕴涵关系中所包含的控制信息

例:以下蕴涵式:~A ~B C ~C A B~A ~C B ~A C B~B ~C A ~B A C均与子句 (A B C) 等价,但显然上面的蕴涵式信息更丰富。

Page 29: 第四章 谓词演算及应用

事实表达式的与或形及其表达事实表达式的与或形及其表达与或形

– 无量词约束– 否定符只作用于单个文字– 只有“与”、“或”

例: (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))主合取元变量换名

Page 30: 第四章 谓词演算及应用

事实的与或树表示事实的与或树表示例: 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)

Page 31: 第四章 谓词演算及应用

应用规则对与或图作变换应用规则对与或图作变换 对规则的形式:

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

Page 32: 第四章 谓词演算及应用

命题逻辑的情况命题逻辑的情况例:

事实: ((P Q) R) (S (T U))规则: S (X Y) Z

Page 33: 第四章 谓词演算及应用

((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 UP Q X ZP Q Y ZR X ZR Y Z

规则的子句: S (X Y) Z=> ~S(X Y) Z=> ~S X Z ~S Y Z

结论:加入规则后得到的解图,是事实与规则对应子句的归结式

Page 34: 第四章 谓词演算及应用

例:事实: A B规则集: A C D B E G目标公式: C G

A B

A B

A

C D

B

E G

C G

目标

Page 35: 第四章 谓词演算及应用

谓词逻辑的情况谓词逻辑的情况事实表达式化成与或形规则化成 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) 换名

规则每使用一次,都要进行一次换名

Page 36: 第四章 谓词演算及应用

例:事实: 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) V(B)

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)

Page 37: 第四章 谓词演算及应用

一致解图一致解图 如果一个解图中所涉及的置换是一致的,则该解图称为一致解图。 设有置换集 {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}的合一复合。 置换集的合一复合运算是可结合和可交换的。

Page 38: 第四章 谓词演算及应用

一致置换举例一致置换举例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(z)/x} {f(A)/x} U1=(x, x)U2=(f(z), f(A)) {f(A)/x, A/z}

{x/y, x/z} {A/z} U1=(y, z, z)U2=(x, x, A) {A/x, A/y, A/z}

Page 39: 第四章 谓词演算及应用

举例举例事实:

~D(F) (B(F) I(F))规则:

R1: ~D(x) ~T(x)R2: B(y) N(y)

目标:~T(u) N(v)

Page 40: 第四章 谓词演算及应用

~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)

Page 41: 第四章 谓词演算及应用

正向演绎系统小结正向演绎系统小结 事实表达式为与或形 规则形式: L W, 其中 L 为单文字 目标公式为文字析取 对事实和规则进行 Skolem 化,消去存在量词,变量受全称量词约束,对主合取元和规则中的变量换名 用“对偶形”对目标进行 Skolem 化,消去全称量词,变量受存在量词约束,对析取元中的变量换名 事实表达成与或树,其中,“”对应树中“与”,“”对应树中“或” 从事实出发,正向应用规则,到得到目标节点为结束的一致解图为止 存在合一复合时,则解图是一致的

Page 42: 第四章 谓词演算及应用

4.6 4.6 基于规则的逆向演绎系统基于规则的逆向演绎系统 目标为任意形的表达式 用“对偶形”对目标进行 Skolem 化,即消去全称量词,变量受存在量词约束,对主析取元中的变量换名 目标用与或树表示,其中,“”对应树中“与”,“”对应树中“或” 事实表达式是文字的合取 规则形式: L W, 其中 W 为单文字,如形为:

L W1 W2 ,则变换为: L W1 和 L W2

从目标出发,逆向应用规则,到得到事实节点为结束条件的一致解图为止

Page 43: 第四章 谓词演算及应用

例:事实: 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}

Page 44: 第四章 谓词演算及应用

一致性检查一致性检查置换集

{{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)

Page 45: 第四章 谓词演算及应用

4.7 4.7 一些深入的问题一些深入的问题修剪不一致的局部解图建立规则连接图结构规则的多次调用规则的递归调用加快匹配的速度

Page 46: 第四章 谓词演算及应用

4.8 4.8 正、逆向系统对比正、逆向系统对比 事实表达式任意形 规则形式: 单文字 W 目标公式为文字析取 对事实、规则消存在量词,

Skolem 化 用对偶形消目标的全称量词,

Skolem 化 事实表达式与或树,“”对“与”,“”对应“或” 从事实出发,正向应用规则 以目标为结束的一致解图

事实表达式是合取形 规则形式: L 单文字 目标公式任意形 对事实、规则消存在量词,

Skolem 化 用对偶形消目标的全称量词,

Skolem 化 目标公式的与或树,“”对“与”,“”对应“或” 从目标出发,逆向应用规则 以事实为结束的一致解图

Page 47: 第四章 谓词演算及应用

结束结束

Page 48: 第四章 谓词演算及应用