资源描述
3.8 判断下列公式是否为可合一,若可合一,则求出其最一般合一。
(1) P(a, b), P(x, y)
(2) P(f(x), b), P(y, z)
(3) P(f(x), y), P(y, f(b))
(4) P(f(y), y, x), P(x, f(a), f(b))
(5) P(x, y), P(y, x)
解:(1) 可合一,其最一般和一为:σ={a/x, b/y}。
(2) 可合一,其最一般和一为:σ={y/f(x), b/z}。
(3) 可合一,其最一般和一为:σ={ f(b)/y, b/x}。
(4) 不可合一。
(5) 可合一,其最一般和一为:σ={ y/x}。
3.11 把下列谓词公式化成子句集:
(1) (x)(y)(P(x, y)∧Q(x, y))
(2) (x)(y)(P(x, y)→Q(x, y))
(3) (x)(y)(P(x, y)∨(Q(x, y)→R(x, y)))
(4) (x) (y) (z)(P(x, y)→Q(x, y)∨R(x, z))
解:(1) 由于(x)(y)(P(x, y)∧Q(x, y))已经是Skolem标准型,且P(x, y)∧Q(x, y)已经是合取范式,所以可直接消去全称量词、合取词,得
{ P(x, y), Q(x, y)}
再进行变元换名得子句集:
S={ P(x, y), Q(u, v)}
(2) 对谓词公式(x)(y)(P(x, y)→Q(x, y)),先消去连接词“→”得:
(x)(y)(¬P(x, y)∨Q(x, y))
此公式已为Skolem标准型。
再消去全称量词得子句集:
S={¬P(x, y)∨Q(x, y)}
(3) 对谓词公式(x)(y)(P(x, y)∨(Q(x, y)→R(x, y))),先消去连接词“→”得:
(x)(y)(P(x, y)∨(¬Q(x, y)∨R(x, y)))
此公式已为前束范式。
再消去存在量词,即用Skolem函数f(x)替换y得:
(x)(P(x, f(x))∨¬Q(x, f(x))∨R(x, f(x)))
此公式已为Skolem标准型。
最后消去全称量词得子句集:
S={P(x, f(x))∨¬Q(x, f(x))∨R(x, f(x))}
(4) 对谓词(x) (y) (z)(P(x, y)→Q(x, y)∨R(x, z)),先消去连接词“→”得:
(x) (y) (z)(¬P(x, y)∨Q(x, y)∨R(x, z))
再消去存在量词,即用Skolem函数f(x)替换y得:
(x) (y) (¬P(x, y)∨Q(x, y)∨R(x, f(x,y))) 此公式已为Skolem标准型。
最后消去全称量词得子句集:
S={¬P(x, y)∨Q(x, y)∨R(x, f(x,y))}
3-13 判断下列子句集中哪些是不可满足的:
(1) {¬P∨Q, ¬Q, P, ¬P}
(2) { P∨Q , ¬P∨Q, P∨¬Q, ¬P∨¬Q }
(3) { P(y)∨Q(y) , ¬P(f(x))∨R(a)}
(4) {¬P(x)∨Q(x) , ¬P(y)∨R(y), P(a), S(a), ¬S(z)∨¬R(z)}
(5) {¬P(x)∨Q(f(x),a) , ¬P(h(y))∨Q(f(h(y)), a)∨¬P(z)}
(6) {P(x)∨Q(x)∨R(x) , ¬P(y)∨R(y), ¬Q(a), ¬R(b)}
解:(1) 不可满足,其归结过程为:
¬P∨Q
¬Q
¬P
P
NIL
(2) 不可满足,其归结过程为:
P∨Q
¬P∨Q
Q
P∨¬Q
¬P∨¬Q
¬Q
NIL
(3) 不是不可满足的,原因是不能由它导出空子句。
(4) 不可满足,其归结过程略
(5) 不是不可满足的,原因是不能由它导出空子句。
(6) 不可满足,其归结过程略
3.14 对下列各题分别证明G是否为F1,F2,…,Fn的逻辑结论:
(1) F: (x)(y)(P(x, y)
G: (y)(x)(P(x, y)
(2) F: (x)(P(x)∧(Q(a)∨Q(b)))
G: (x) (P(x)∧Q(x))
(3) F: (x)(y)(P(f(x))∧(Q(f(y)))
G: P(f(a))∧P(y)∧Q(y)
(4) F1: (x)(P(x)→(y)(Q(y)→L(x.y)))
F2: (x) (P(x)∧(y)(R(y)→L(x.y)))
G: (x)(R(x)→Q(x))
(5) F1: (x)(P(x)→(Q(x)∧R(x)))
F2: (x) (P(x)∧S(x))
G: (x) (S(x)∧R(x))
解:(1) 先将F和¬G化成子句集:
S={P(a,b), ¬P(x,b)}
再对S进行归结:
¬P(x,b)
P(a,b)
NIL
{a/x}
所以,G是F的逻辑结论
(2) 先将F和¬G化成子句集
由F得:S1={P(x),(Q(a)∨Q(b))}
由于¬G为:¬ (x) (P(x)∧Q(x)),即
(x) (¬ P(x)∨¬ Q(x)),
可得: S2={¬ P(x)∨¬ Q(x)}
因此,扩充的子句集为:
S={ P(x),(Q(a)∨Q(b)),¬ P(x)∨¬ Q(x)}
再对S进行归结:
Q(a)∨Q(b)
Q(a)
¬ P(x)∨¬ Q(x)
¬ P(a)
P(x)
NIL
Q(a)∨Q(b)
{a/b}
¬ P(x)∨¬ Q(x)
Q(a)
{a/x}
¬ P(a)
P(x)
{a/x}
NIL
所以,G是F的逻辑结论
同理可求得(3)、(4)和(5),其求解过程略。
3.15 设已知:
(1) 如果x是y的父亲,y是z的父亲,则x是z的祖父;
(2) 每个人都有一个父亲。
使用归结演绎推理证明:对于某人u,一定存在一个人v,v是u的祖父。
解:先定义谓词
F(x,y):x是y的父亲
GF(x,z):x是z的祖父
P(x):x是一个人
再用谓词把问题描述出来:
已知F1:(x) (y) (z)( F(x,y)∧F(y,z))→GF(x,z))
F2:(y)(P(x)→F(x,y))
求证结论G:(u) (v)( P(u)→GF(v,u))
然后再将F1,F2和¬G化成子句集:
① ¬F(x,y)∨¬F(y,z)∨GF(x,z)
② ¬P(r)∨F(s,r)
③ P(u)
④ ¬GF(v,u))
对上述扩充的子句集,其归结推理过程如下:
¬F(x,y)∨¬F(y,z)∨GF(x,z)
¬GF(v,u)
¬F(x,y)∨¬F(y,z)
¬P(r)∨F(s,r)
¬F(y,z)∨¬P(y)
¬P(r)∨F(s,r)
¬P(y)∨¬P(z)
¬P(y)
P(u)
NIL
{x/v,z/u}
{x/s,y/r}
{y/s,z/r}
{y/z}
{y/u}
由于导出了空子句,故结论得证。
3.16 假设张被盗,公安局派出5个人去调查。案情分析时,贞察员A说:“赵与钱中至少有一个人作案”,贞察员B说:“钱与孙中至少有一个人作案”,贞察员C说:“孙与李中至少有一个人作案”,贞察员D说:“赵与孙中至少有一个人与此案无关”,贞察员E说:“钱与李中至少有一个人与此案无关”。如果这5个侦察员的话都是可信的,使用归结演绎推理求出谁是盗窃犯。
解:(1) 先定义谓词和常量
设C(x)表示x作案,Z表示赵,Q表示钱,S表示孙,L表示李
(2) 将已知事实用谓词公式表示出来
赵与钱中至少有一个人作案:C(Z)∨C(Q)
钱与孙中至少有一个人作案:C(Q)∨C(S)
孙与李中至少有一个人作案:C(S)∨C(L)
赵与孙中至少有一个人与此案无关:¬ (C (Z)∧C(S)),即 ¬C (Z) ∨¬C(S)
钱与李中至少有一个人与此案无关:¬ (C (Q)∧C(L)),即 ¬C (Q) ∨¬C(L)
(3) 将所要求的问题用谓词公式表示出来,并与其否定取析取。
设作案者为u,则要求的结论是C(u)。将其与其否)取析取,得:
¬ C(u) ∨C(u)
(4) 对上述扩充的子句集,按归结原理进行归结,其修改的证明树如下:
C(Z)∨C(Q)
¬C (Z) ∨¬C(S)
C(Q)∨¬C(S)
C(Q)∨C(S)
C(Q)
¬C(u)∨C(u)
C(Q)
{Q/u}
因此,钱是盗窃犯。实际上,本案的盗窃犯不止一人。根据归结原理还可以得出:
C(S)∨C(L)
¬C (Q) ∨¬C(L)
C(S)∨¬C(Q)
C(Q)∨C(S)
C(S)
¬C(u)∨C(u)
C(S)
¬C (Q) ∨¬C(L)
C(S)∨C(L)
C(Q)∨C(S)
C(S)∨¬C(Q)
¬C(u)∨C(u)
C(S)
{S/u}
C(S)
因此,孙也是盗窃犯。
3.18 设有子句集:
{P(x)∨Q(a, b), P(a)∨Q(a, b), Q(a, f(a)), P(x)∨Q(x, b)}
分别用各种归结策略求出其归结式。
解:支持集策略不可用,原因是没有指明哪个子句是由目标公式的否定化简来的。
删除策略不可用,原因是子句集中没有没有重言式和具有包孕关系的子句。
单文字子句策略的归结过程如下:
Q(a, f(a))
P(x)∨Q(a, b)
{b/f(a)}
P(x)∨Q(x, b)
P(a)
Q(a, f(a))
Q(a, b)
{a/x}
{b/f(a)}
Q(a, b)
用线性输入策略(同时满足祖先过滤策略)的归结过程如下:
P(a)∨Q(a, b)
P(x)∨Q(a, b)
P(x)∨Q(x, b)
P(a)
{a/x}
{a/x}
Q(a, f(a))
Q(a,b)
{b/f(a)}
NIL
3.19 设已知:
(1) 能阅读的人是识字的;
(2) 海豚不识字;
(3) 有些海豚是很聪明的。
请用归结演绎推理证明:有些很聪明的人并不识字。
解:第一步,先定义谓词,
设R(x)表示x是能阅读的;
K(y)表示y是识字的;
W(z) 表示z是很聪明的;
第二步,将已知事实和目标用谓词公式表示出来
能阅读的人是识字的:(x)(R(x))→K(x))
海豚不识字:(y)(¬K (y))
有些海豚是很聪明的:(z) W(z)
有些很聪明的人并不识字:(x)( W(z)∧¬K(x))
第三步,将上述已知事实和目标的否定化成子句集:
¬R(x))∨K(x)
¬K (y)
W(z)
¬W(z)∨K(x))
第四步,用归结演绎推理进行证明
W(z)
¬W(z)∨K(x))
W(z)
K(z)
NIL
3.20 对子句集:
{P∨Q, Q∨R, R∨W, R∨P, W∨Q, Q∨R }
用线性输入策略是否可证明该子句集的不可满足性?
解:用线性输入策略不能证明子句集
{P∨Q, Q∨R, R∨W, R∨P, W∨Q, Q∨R }
的不可满足性。原因是按线性输入策略,不存在从该子句集到空子句地归结过程。
3.23 设已知事实为
((P∨Q)∧R) ∨(S∧(T∨U))
F规则为
S→(X∧Y)∨Z
试用正向演绎推理推出所有可能的子目标。
解:先给出已知事实的与/或树,再利用F规则进行推理,其规则演绎系统如下图所示。
由该图可以直接写出所有可能的目标子句如下:
P∨Q∨T∨U
P∨Q∨X∨Z
P∨Q∨Y∨Z
R∨T∨U
R∨X∨Z
R∨Y∨Z
所有子
目标
U
T
Z
Y
X
R
Q
P
所有
目标
U
T
Z
Y
X
R
Q
P
Y
X
Z
X∧Y
S
U
T
T∨U
S
所有
目标
U
T
Z
Y
X
R
Q
P
所有
目标
Y
Z
U
T
X
P
R
Q
Y
X
X
Y
F
规则
Z
X∧Y
X∧Y
Z
S
S
U
T
Q
P
T
U
Q
P
已知事实
已知事实
T∨U
S
R
(P∨Q)
T∨U
R
S
(P∨Q)
(S∧(T∨U))
((P∨Q)∧R)
(S∧(T∨U))
((P∨Q)∧R)
((P∨Q)∧R) ∨(S∧(T∨U))
((P∨Q)∧R) ∨(S∧(T∨U))
3.24 设有如下一段知识:
“张、王和李都属于高山协会。该协会的每个成员不是滑雪运动员,就是登山运动员,其中不喜欢雨的运动员是登山运动员,不喜欢雪的运动员不是滑雪运动员。王不喜欢张所喜欢的一切东西,而喜欢张所不喜欢的一切东西。张喜欢雨和雪。”
试用谓词公式集合表示这段知识,这些谓词公式要适合一个逆向的基于规则的演绎系统。试说明这样一个系统怎样才能回答问题:
“高山俱乐部中有没有一个成员,他是一个登山运动员,但不是一个滑雪运动员?”
解:(1) 先定义谓词
A(x) 表示x是高山协会会员 S(x) 表示x是滑雪运动员
C(x) 表示x是登山运动员 L(x,y) 表示x 喜欢y
(2) 将问题用谓词表示出来
“张、王和李都属于高山协会 A(Zhang)∧A(Wang)∧A(Li)
高山协会的每个成员不是滑雪运动员,就是登山运动员 (x)(A(x)∧¬S(x)→C(x))
高山协会中不喜欢雨的运动员是登山运动员 (x)(¬L(x, Rain)→C(x))
高山协会中不喜欢雪的运动员不是滑雪运动员 (x)(¬L(x, Snow)→¬ S(x))
王不喜欢张所喜欢的一切东西 (y)( L(Zhang, y)→¬ L(Wang ,y))
王喜欢张所不喜欢的一切东西 (y)(¬ L(Zhang, y)→L(Wang, y))
张喜欢雨和雪 L(Zhang , Rain)∧L(Zhang , Snow)
(3) 将问题要求的答案用谓词表示出来
高山俱乐部中有没有一个成员,他是一个登山运动员,但不是一个滑雪运动员?
(x)( A(x)→C(x)∧¬ S(x))
(4) 为了进行推理,把问题划分为已知事实和规则两大部分。假设,划分如下:
已知事实:A(Zhang)∧A(Wang)∧A(Li)
L(Zhang , Rain)∧L(Zhang , Snow)
规则:
(x)(A(x)∧¬S(x)→C(x))
(x)(¬L(x, Rain)→C(x))
(x)(¬L(x, Snow)→¬ S(x))
(y)( L(Zhang, y)→¬ L(Wang ,y))
(y)(¬ L(Zhang, y)→L(Wang, y))
(5) 把已知事实、规则和目标化成推理所需要的形式
事实已经是文字的合取形式:
f1: A(Zhang)∧A(Wang)∧A(Li)
f2: L (Zhang , Rain)∧L(Zhang , Snow)
将规则转化为后件为单文字的形式:
r1: A(x)∧¬S(x)→C(x))
r2: ¬L(x, Rain)→C(x)
r3: ¬L(x, Snow)→¬ S(x)
r4: L(Zhang, y)→¬ L(Wang ,y)
r5: ¬ L(Zhang, y)→L(Wang , y)
将目标公式转换为与/或形式
¬ A(x)∨(C(x)∧¬ S(x))
(6) 进行逆向推理
逆向推理的关键是要能够推出L(Zhang , Rain)∧L(Zhang , Snow),其逆向演绎过程如下图所示。
¬ A(x)∨(C(x)∧¬ S(x))
C(x)∧¬ S(x)
¬ A(x)
C(x)
¬ S(x)
r2
r34
¬L(x, Rain)
¬L(x, Snow)
{Wang/x, y/Rain}
{Wang /x, y/Snow}
¬L(Wang, y)
¬L(Wang, y)
r4
r4
L(Zhang, y)
L(Zhang, y)
{Rain/y}
{Snow/y}
L(Zhang, Snow)
L(Zhang, Rain)
6.8 设有如下一组推理规则:
r1: IF E1 THEN E2 (0.6)
r2: IF E2 AND E3 THEN E4 (0.7)
r3: IF E4 THEN H (0.8)
r4: IF E5 THEN H (0.9)
且已知CF(E1)=0.5, CF(E3)=0.6, CF(E5)=0.7。求CF(H)=?
解:(1) 先由r1求CF(E2)
CF(E2)=0.6 × max{0,CF(E1)}
=0.6 × max{0,0.5}=0.3
(2) 再由r2求CF(E4)
CF(E4)=0.7 × max{0, min{CF(E2 ), CF(E3 )}}
=0.7 × max{0, min{0.3, 0.6}}=0.21
(3) 再由r3求CF1(H)
CF1(H)= 0.8 × max{0,CF(E4)}
=0.8 × max{0, 0.21)}=0.168
(4) 再由r4求CF2(H)
CF2(H)= 0.9 ×max{0,CF(E5)}
=0.9 ×max{0, 0.7)}=0.63
(5) 最后对CF1(H )和CF2(H)进行合成,求出CF(H)
CF(H)= CF1(H)+CF2(H)+ CF1(H) × CF2(H)
=0.692
6.10 设有如下推理规则
r1: IF E1 THEN (2, 0.00001) H1
r2: IF E2 THEN (100, 0.0001) H1
r3: IF E3 THEN (200, 0.001) H2
r4: IF H1 THEN (50, 0.1) H2
且已知P(E1)= P(E2)= P(H3)=0.6, P(H1)=0.091, P(H2)=0.01, 又由用户告知:
P(E1| S1)=0.84, P(E2|S2)=0.68, P(E3|S3)=0.36
请用主观Bayes方法求P(H2|S1, S2, S3)=?
解:(1) 由r1计算O(H1| S1)
先把H1的先验概率更新为在E1下的后验概率P(H1| E1)
P(H1| E1)=(LS1 × P(H1)) / ((LS1-1) × P(H1)+1)
=(2 × 0.091) / ((2 -1) × 0.091 +1)
=0.16682
由于P(E1|S1)=0.84 > P(E1),使用P(H | S)公式的后半部分,得到在当前观察S1下的后验概率P(H1| S1)和后验几率O(H1| S1)
P(H1| S1) = P(H1) + ((P(H1| E1) – P(H1)) / (1 - P(E1))) × (P(E1| S1) – P(E1))
= 0.091 + (0.16682 –0.091) / (1 – 0.6)) × (0.84 – 0.6)
=0.091 + 0.18955 × 0.24 = 0.136492
O(H1| S1) = P(H1| S1) / (1 - P(H1| S1)) = 0.15807
(2) 由r2计算O(H1| S2)
先把H1的先验概率更新为在E2下的后验概率P(H1| E2)
P(H1| E2)=(LS2 × P(H1)) / ((LS2-1) × P(H1)+1)
=(100 × 0.091) / ((100 -1) × 0.091 +1)
=0.90918
由于P(E2|S2)=0.68 > P(E2),使用P(H | S)公式的后半部分,得到在当前观察S2下的后验概率P(H1| S2)和后验几率O(H1| S2)
P(H1| S2) = P(H1) + ((P(H1| E2) – P(H1)) / (1 - P(E2))) × (P(E2| S2) – P(E2))
= 0.091 + (0.90918 –0.091) / (1 – 0.6)) × (0.68 – 0.6)
=0.25464
O(H1| S2) = P(H1| S2) / (1 - P(H1| S2))
=0.34163
(3) 计算O(H1| S1,S2)和P(H1| S1,S2)
先将H1的先验概率转换为先验几率
O(H1) = P(H1) / (1 - P(H1)) = 0.091/(1-0.091)=0.10011
再根据合成公式计算H1的后验几率
O(H1| S1,S2)= (O(H1| S1) / O(H1)) × (O(H1| S2) / O(H1)) × O(H1)
= (0.15807 / 0.10011) × (0.34163) / 0.10011) × 0.10011
= 0.53942
再将该后验几率转换为后验概率
P(H1| S1,S2) = O(H1| S1,S2) / (1+ O(H1| S1,S2))
= 0.35040
(4) 由r3计算O(H2| S3)
先把H2的先验概率更新为在E3下的后验概率P(H2| E3)
P(H2| E3)=(LS3 × P(H2)) / ((LS3-1) × P(H2)+1)
=(200 × 0.01) / ((200 -1) × 0.01 +1)
=0.09569
由于P(E3|S3)=0.36 < P(E3),使用P(H | S)公式的前半部分,得到在当前观察S3下的后验概率P(H2| S3)和后验几率O(H2| S3)
P(H2| S3) = P(H2 | ¬ E3) + (P(H2) – P(H2| ¬E3)) / P(E3)) × P(E3| S3)
由当E3肯定不存在时有
P(H2 | ¬ E3) = LN3 × P(H2) / ((LN3-1) × P(H2) +1)
= 0.001 × 0.01 / ((0.001 - 1) × 0.01 + 1)
= 0.00001
因此有P(H2| S3) = P(H2 | ¬ E3) + (P(H2) – P(H2| ¬E3)) / P(E3)) × P(E3| S3)
=0.00001+((0.01-0.00001) / 0.6) × 0.36 =0.00600
O(H2| S3) = P(H2| S3) / (1 - P(H2| S3))=0.00604
(5) 由r4计算O(H2| H1)
先把H2的先验概率更新为在H1下的后验概率P(H2| H1)
P(H2| H1)=(LS4 × P(H2)) / ((LS4-1) × P(H2)+1)
=(50 × 0.01) / ((50 -1) × 0.01 +1) =0.33557
由于P(H1| S1,S2)=0.35040 > P(H1),使用P(H | S)公式的后半部分,得到在当前观察S1,S2下H2的后验概率P(H2| S1,S2)和后验几率O(H2| S1,S2)
P(H2| S1,S2) = P(H2) + ((P(H2| H1) – P(H2)) / (1 - P(H1))) × (P(H1| S1,S2) – P(H1))
= 0.01 + (0.33557 –0.01) / (1 – 0.091)) × (0.35040 – 0.091) =0.10291
O(H2| S1,S2) = P(H2| S1, S2) / (1 - P(H2| S1, S2)) =0.10291/ (1 - 0.10291) = 0.11472
(6) 计算O(H2| S1,S2,S3)和P(H2| S1,S2,S3)
先将H2的先验概率转换为先验几率
O(H2) = P(H2) / (1 - P(H2) )= 0.01 / (1-0.01)=0.01010
再根据合成公式计算H1的后验几率
O(H2| S1,S2,S3)= (O(H2| S1,S2) / O(H2)) × (O(H2| S3) / O(H2)) ×O(H2)
= (0.11472 / 0.01010) × (0.00604) / 0.01010) × 0.01010 =0.06832
再将该后验几率转换为后验概率
P(H2| S1,S2,S3) = O(H1| S1,S2,S3) / (1+ O(H1| S1,S2,S3))= 0.06832 / (1+ 0.06832) = 0.06395
H2原来的概率是0.01,经过推理后得到的后验概率是0.06395,它相当于先验概率的6倍
6.11设有如下推理规则
r1: IF E1 THEN (100, 0.1) H1
r2: IF E2 THEN (50, 0.5) H2
r3: IF E3 THEN (5, 0.05) H3
且已知P(H1)=0.02, P(H2)=0.2, P(H3)=0.4,请计算当证据E1,E2,E3存在或不存在时P(Hi | Ei)或P(Hi |﹁Ei)的值各是多少(i=1, 2, 3)?
解:(1) 当E1、E2、E3肯定存在时,根据r1、r2、r3有
P(H1 | E1) = (LS1 × P(H1)) / ((LS1-1) × P(H1)+1)
= (100 × 0.02) / ((100 -1) × 0.02 +1) =0.671
P(H2 | E2) = (LS2 × P(H2)) / ((LS2-1) × P(H2)+1)
= (50 × 0.2) / ((50 -1) × 0.2 +1)=0.9921
P(H3 | E3) = (LS3 × P(H3)) / ((LS3-1) × P(H3)+1)
= (5 × 0.4) / ((5 -1) × 0.4 +1)=0.769
(2) 当E1、E2、E3肯定存在时,根据r1、r2、r3有
P(H1 | ¬E1) = (LN1 × P(H1)) / ((LN1-1) × P(H1)+1)
= (0.1 × 0.02) / ((0.1 -1) × 0.02 +1)
=0.002
P(H2 | ¬E2) = (LN2 × P(H2)) / ((LN2-1) × P(H2)+1)
= (0.5 × 0.2) / ((0.5 -1) × 0.2 +1)
=0.111
P(H3 | ¬E3) = (LN3 × P(H3)) / ((LN3-1) × P(H3)+1)
= (0.05 × 0.4) / ((0.05 -1) × 0.4 +1)
=0.032
2.8 设有如下语句,请用相应的谓词公式分别把他们表示出来:
(1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花 。
解:定义谓词
P(x):x是人
L(x,y):x喜欢y
其中,y的个体域是{梅花,菊花}。
将知识用谓词表示为:
(x )(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花))
(2) 有人每天下午都去打篮球。
解:定义谓词
P(x):x是人
B(x):x打篮球
A(y):y是下午
将知识用谓词表示为:
(x )(y) (A(y)→B(x)∧P(x))
(3) 新型计算机速度又快,存储容量又大。
解:定义谓词
NC(x):x是新型计算机
F(x):x速度快
B(x):x容量大
将知识用谓词表示为:
(x) (NC(x)→F(x)∧B(x))
(4) 不是每个计算机系的学生都喜欢在计算机上编程序。
解:定义谓词
S(x):x是计算机系学生
L(x, pragramming):x喜欢编程序
U(x,computer):x使用计算机
将知识用谓词表示为:
¬ (x) (S(x)→L(x, pragramming)∧U(x,computer))
(5) 凡是喜欢编程序的人都喜欢计算机。
解:定义谓词
P(x):x是人
L(x, y):x喜欢y
将知识用谓词表示为:
(x) (P(x)∧L(x,pragramming)→L(x, computer))
2.9 用谓词表示法求解机器人摞积木问题。设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。
A
B
C
CA
B
图 机器人摞积木问题
解:(1) 先定义描述状态的谓词
CLEAR(x):积木x上面是空的。
ON(x, y):积木x在积木y的上面。
ONTABLE(x):积木x在桌子上。
HOLDING(x):机械手抓住x。
HANDEMPTY:机械手是空的。
其中,x和y的个体域都是{A, B, C}。
问题的初始状态是:
ONTABLE(A)
ONTABLE(B)
ON(C, A)
CLEAR(B)
CLEAR(C)
HANDEMPTY
问题的目标状态是:
ONTABLE(C)
ON(B, C)
ON(A, B)
CLEAR(A)
HANDEMPTY
(2) 再定义描述操作的谓词
在本问题中,机械手的操作需要定义以下4个谓词:
Pickup(x):从桌面上拣起一块积木x。
Putdown(x):将手中的积木放到桌面上。
Stack(x, y):在积木x上面再摞上一块积木y。
Upstack(x, y):从积木x上面拣起一块积木y。
其中,每一个操作都可分为条件和动作两部分,具体描述如下:
Pickup(x)
条件:ONTABLE(x),HANDEMPTY,CLEAR(x)
动作:删除表:ONTABLE(x),HANDEMPTY
添加表:HANDEMPTY(x)
Putdown(x)
条件:HANDEMPTY(x)
动作:删除表:HANDEMPTY(x)
添加表:ONTABLE(x),CLEAR(x) ,HANDEMPTY
Stack(x, y)
条件:HANDEMPTY(x),CLEAR(y)
动作:删除表:HANDEMPTY(x),CLEAR(y)
添加表:HANDEMPTY,ON(x, y) ,CLEAR(x)
Upstack(x, y)
条件:HANDEMPTY,CLEAR(y) ,ON(y,x)
动作:删除表:HANDEMPTY,ON(y, x)
添加表:HOLDING(y),CLEAR(x)
(3) 问题求解过程
利用上述谓词和操作,其求解过程为:
ONTABLE(A)
ONTABLE(B)
ONTABLE(C)
CLEAR(A)
CLEAR(B)
CLEAR(C)
HANDEMPTY
ONTABLE(A)
ONTABLE(B)
ON(C, A)
CLEAR(B)
CLEAR(C) HANDEMPTY
ONTABLE(A)
O
展开阅读全文