1、1第 2 章知识表示方法部分参考答案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
2、 是新型计算机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)
3、22.9 用谓词表示法求解机器人摞积木问题。设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有 4 个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。解:解:(1) 先定义描述状态的谓词CLEAR(x):积木 x 上面是空的。ON(x, y):积木 x 在积木 y 的上面。ONTABLE(x):积木 x 在桌子上。HOLDING(x):机械手抓住 x。HANDEMPTY:机械手是空的。其中,x 和 y 的个体域都是A, B, C。问题的初始状态是:ONTABLE(A)ON
4、TABLE(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。其中,每一个操作都可分为条件和动作两部分,具体描述如下:图机器人摞积木问题CABABC3Pickup(x)条件:ONTABL
5、E(x),HANDEMPTY,CLEAR(x)动作:删除表:ONTABLE(x),HANDEMPTY添加表:HANDEMPTY(x)Putdown(x)条件:HANDEMPTY(x)动作:删除表:HANDEMPTY(x)添加表:ONTABLE(x),CLEAR(x) ,HANDEMPTYStack(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,O
6、N(y, x)添加表:HOLDING(y),CLEAR(x)(3) 问题求解过程利用上述谓词和操作,其求解过程为:2.10 用谓词表示法求解农夫、狼、山羊、白菜问题。农夫、狼、山羊、白菜全部放在一条河的左岸,现在要把他们全部送到河的右岸去,农夫有一条船,过河时,除农夫外船上至多能载狼、山羊、白菜中的一种。狼要吃山羊,山羊要吃白菜,除非农夫在那里。似规划出一个确保全部安全过河的计划。请写出所用谓词的定义,并给出每个谓词的功能及变量的个体域。解:解:(1) 先定义描述状态的谓词要描述这个问题,需要能够说明农夫、狼、羊、白菜和船在什么位置,为简化问题表示,ONTABLE(A)ONTABLE(B)ON
7、(C,A)CLEAR(B)CLEAR(C)HANDEMPTYUpstack(A,C)ONTABLE(A)ONTABLE(B)HOLDING(C)CLEAR(A)CLEAR(B)CLEAR(C)Putdown(C)ONTABLE(A)ONTABLE(B)ONTABLE(C)CLEAR(A)CLEAR(B)CLEAR(C)HANDEMPTYPickup(A)ONTABLE(A)ONTABLE(C)HOLDING(B)CLEAR(A)CLEAR(B)CLEAR(C)Stack(C,B)ONTABLE(A)ONTABLE(C)ON(B,C)CLEAR(A)CLEAR(B)HANDEMPTYONTABL
8、E(C)ON(B,C)CLEAR(A)CLEAR(B)HOLDING(A)Stack(B,A)ONTABLE(C)ON(B,C)ON(A,B)CLEAR(A)HANDEMPTPickup(B)4取消船在河中行驶的状态,只描述左岸和右岸的状态。并且,由于左岸和右岸的状态互补,因此可仅对左岸或右岸的状态做直接描述。本题选择对左岸进行直接描述的方法,即定义谓词如下:AL(x):x 在左岸其中,x 的个体域是农夫,船,狼,羊,白菜。对应地,AL(x)表示 x 在右岸。问题的初始状态:AL(农夫)AL(船)AL(狼)AL(羊)AL(白菜)问题的目标状态:AL(农夫)AL(船)AL(狼)AL(羊)AL(白
9、菜)(2) 再定义描述操作的谓词本题需要以下 4 个描述操作的谓词:L-R:农夫自己划船从左岸到右岸L-R(x):农夫带着 x 划船从左岸到右岸R-L:农夫自己划船从右岸到左岸R-L(x) :农夫带着 x 划船从右岸到左岸其中,x 的个体域是狼,羊,白菜。对上述每个操作,都包括条件和动作两部分。它们对应的条件和动作如下:L-R:农夫划船从左岸到右岸条件:AL(船),AL(农夫),AL(狼)AL(羊),AL(羊)AL(白菜)动作:删除表:AL(船),AL(农夫)添加表:AL(船),AL(农夫)L-R(狼):农夫带着狼划船从左岸到右岸条件:AL(船),AL(农夫),AL(狼),AL(羊)动作:删除
10、表:AL(船),AL(农夫),AL(狼)添加表:AL(船),AL(农夫),AL(狼)L-R(羊):农夫带着羊划船从左岸到右岸条件:AL(船),AL(农夫),AL(羊), AL(狼),AL(白菜)或:AL(船),AL(农夫),AL(羊),AL(狼),AL(白菜)动作:删除表:AL(船),AL(农夫),AL(羊)添加表:AL(船),AL(农夫),AL(羊)L-R(白菜):农夫带着白菜划船从左岸到右岸条件:AL(船),AL(农夫),AL(白菜),AL(狼)5动作:删除表:AL(船),AL(农夫),AL(白菜)添加表:AL(船),AL(农夫),AL(白菜)R-L:农夫划船从右岸到左岸条件:AL(船),
11、AL(农夫),AL(狼)AL(羊),AL(羊)AL(白菜)或:AL(船),AL(农夫) ,AL(狼),AL(白菜),AL(羊)动作:删除表:AL(船),AL(农夫)添加表:AL(船),AL(农夫)R-L(羊) :农夫带着羊划船从右岸到左岸条件:AL(船),AL(农夫),AL(羊) ,AL(狼),AL(羊),AL(白菜)动作:删除表:AL(船),AL(农夫),AL(羊)添加表:AL(船),AL(农夫),AL(羊)(3) 问题求解过程AL(农夫)AL(船)AL(狼)AL(羊)AL(白菜)2.11 用谓词表示法求解修道士和野人问题。 在河的北岸有三个修道士、 三个野人和一条船,修道士们想用这条船将所
12、有的人都运过河去,但要受到以下条件限制:(1) 修道士和野人都会划船,但船一次只能装运两个人。(2) 在任何岸边,野人数不能超过修道士,否则修道士会被野人吃掉。假定野人愿意服从任何一种过河安排,请规划出一种确保修道士安全的过河方案。要求写出所用谓词的定义、功能及变量的个体域。解解: (1)定义谓词先定义修道士和野人人数关系的谓词:G(x,y,S): 在状态 S 下 x 大于 yGE(x,y,S):在状态 S 下 x 大于或等于 y其中,x,y 分别代表修道士人数和野人数,他们的个体域均为0,1,2,3。再定义船所在岸的谓词和修道士不在该岸上的谓词:Boat(z,S):状态 S 下船在 z 岸E
13、Z(x,S): 状态 S 下 x 等于 0,即修道士不在该岸上其中,z 的个体域是L,R,L 表示左岸,R 表示右岸。再定义安全性谓词:L-R(羊)AL(狼)AL(白菜)AL(农夫)AL(船)AL(羊)R-LAL(农夫)AL(船)AL(狼)AL(白菜)AL(羊)AL(农夫)AL(船)AL(羊)AL(白菜)AL(狼)L-R(狼)R-L(羊)AL(白菜)AL(农夫)AL(船)AL(狼)AL(羊)L-R(白菜)AL(羊)AL(农夫)AL(船)AL(白菜)AL(狼)R-LAL(农夫)AL(船)AL(羊)AL(白菜)AL(狼)L-R(羊)AL(农夫)AL(船)AL(羊)AL(白菜)AL(狼)6Safet
14、y(z,x,y,S)(G(x,0,S)GE(x,y,S)(EZ(x,S)其中,z,x,y 的含义同上。该谓词的含义是:状态 S 下,在 z 岸,保证修道士安全,当且仅当修道士不在该岸上,或者修道士在该岸上,但人数超过野人数。该谓词同时也描述了相应的状态。再定义描述过河方案的谓词:L-R(x, x1, y, y1,S):x1 个修道士和 y1 个野人渡船从河的左岸到河的右岸条件:Safety(L,x-x1,y-y1,S)Safety(R,3-x+x1,3-y+y1,S)Boat(L,S)动作:Safety(L,x-x1,y-y1,S)Safety(R,3-x+x1,3-y+y1,S)Boat(R
15、,S)R-L(x, x1, y, y1,S):x2 个修道士和 y2 个野人渡船从河的左岸到河的右岸条件:Safety(R,3-x-x2,3-y-y2,S)Safety(L,x+x2,y+y2,S)Boat(R,S)动作:Safety(R,3-x-x2,3-y-y2,S)Safety(L,x+x2,y+y2,S)Boat(L,S)(2) 过河方案Safety(L,3,3,S0)Safety(R,0,0,S0)Boat(L,S0)L-R(3, 1, 3, 1,S0)L-R(3, 0, 3, 2,S0)Safety(L,2,2,S1)Safety(R,1,1,S1)Boat(R,S1)Safety
16、(L,3,1,S1)Safety(R,0,2,S1)Boat(R,S1)R-L(2, 1, 2, 0,S1)R-L(3,0, 1, 1,S1)Safety(L,3,2,S2)Safety(R,0,1,S2)Boat(L,S2)L-R(3, 0, 2, 2,S2)Safety(L,3,0,S3)Safety(R,0,3,S3)Boat(R,S3)R-L(3, 0, 0, 1,S3)Safety(L,3,1,S4)Safety(R,0,2,S1)Boat(L,S4)L-R(3, 2, 1, 0,S4)Safety(L,1,1,S5)Safety(R,2,2,S5)Boat(R,S5)R-L(1,
17、1, 1, 1,S5)Safety(L,2,2,S6)Safety(R,1,1,S6)Boat(L,S6)L-R(2, 2, 2, 0,S6)Safety(L,0,2,S7)Safety(R,3,1,S7)Boat(R,S7)R-L(0, 0, 2, 1,S7)Safety(L,0,3,S8)Safety(R,3,0,S8)Boat(L,S8)L-R(0, 0, 3, 2,S8)Safety(L,0,1,S9)Safety(R,3,2,S9)Boat(R,S9)R-L(0, 1, 1, 0,S9)Safety(L,1,1,S10)Safety(R,2,2,S10)Boat(L,S10)L-R(
18、1, 1, 1, 1,S10)Safety(L,0,0,S11)Safety(R,3,3,S11)Boat(R,S11)2.18 请对下列命题分别写出它们的语义网络:7(1) 每个学生都有一台计算机。解:解:(2) 高老师从 3 月到 7 月给计算机系学生讲计算机网络课。解:解:(3) 学习班的学员有男、有女、有研究生、有本科生。解:解:参例 2.14(4) 创新公司在科海大街 56 号,刘洋是该公司的经理,他 32 岁、硕士学位。解:解:参例 2.10(5) 红队与蓝队进行足球比赛,最后以 3:2 的比分结束。解:解:2.19 请把下列命题用一个语义网络表示出来:GSgsoc学生占有权计算机
19、OwnerOwnsFGSgGSgISA讲课事件高老师老师Subject计算机系学生Object7 月8 月StartEnd讲课计算机网络ActionCaurse足球赛比赛AKO红队蓝队3:2Participants1Participants 2OutcomeISAISAAKO8(1) 树和草都是植物;解:解:(2) 树和草都有叶和根;解:解:(3) 水草是草,且生长在水中;解:解:(4) 果树是树,且会结果;解:解:(5) 梨树是果树中的一种,它会结梨。解:解:2.25 假设有以下一段天气预报: “北京地区今天白天晴,偏北风 3 级,最高气温 12,最低气温-2,降水概率 15%。 ”请用框架
20、表示这一知识。解:解:Frame地域:北京时段:今天白天天气:晴植物草树AKOAKO草树是一种是一种植物叶根HaveHave草水草水中AKOLive植物AKO树果树结果AKOCan植物AKO果树梨树结梨AKOCan树AKO9风向:偏北风力:3 级气温:最高:12 度最低:-2 度降水概率:15%2.26 按“师生框架” 、 “教师框架” 、 “学生框架”的形式写出一个框架系统的描述。解:解:师生框架Frame Name:Unit(Last-name,First-name)Sex:Area(male,female)Default:maleAge:Unit(Years)Telephone:Home
21、Unit(Number)MobileUnit(Number)教师框架Frame AKOMajor:Unit(Major-Name)Lectures:Unit(Course-Name)Field:Unit(Field-Name)Project :Area(National,Provincial,Other)Default:ProvincialPaper:Area(SCI,EI,Core,General)Default:Core学生框架Frame AKOMajor:Unit(Major-Name)Classes:Unit(Classes-Name)Degree:Area(doctor,mastor
22、, bachelor)Default:bachelor10第 3 章确定性推理部分参考答案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)可合一,其最一般和
23、一为:= 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
24、)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) 对
25、谓词(x) (y) (z)(P(x, y)Q(x, y)R(x, z),先消去连接词“”得:11(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)PQ, Q,P, P(2) PQ , PQ,PQ, PQ (3) P(y)Q(y) , P(f(x)R(a)(4)P(x)Q(x) , P(y)
26、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) 不可满足,其归结过程为:(2) 不可满足,其归结过程为:(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
27、)(P(x)(Q(a)Q(b)PQQPPNILPQPQQPQPQQNIL12G: (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 进行归结:a/x所以,G 是 F 的逻辑结论(2) 先将 F 和G
28、化成子句集由 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 进行归结:a/ba/xa/x所以,G 是 F 的逻辑结论同理可求得(3)、(4)和(5),其求解过程略。P(a,b)P(x,b)NILQ(a)Q(b)Q(a) P(x) Q(x) P(a)P(x)NILQ(a)Q(b)Q(a) P(x) Q(x) P(a)P(x)NIL133.15设已知:(1) 如果 x 是 y 的父亲,y 是 z 的父亲,则
29、 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)对上述扩充的子句集,其归结推理过程如下:x/v,z/ux
30、/s,y/ry/s,z/ry/zy/u由于导出了空子句,故结论得证。3.16假设张被盗,公安局派出 5 个人去调查。案情分析时,贞察员 A 说: “赵与钱中至少有一个人作案” ,贞察员 B 说: “钱与孙中至少有一个人作案” ,贞察员 C 说: “孙与李中至少有一个人作案” ,贞察员 D 说: “赵与孙中至少有一个人与此案无关” ,贞察员 E 说: “钱与李中至少有一个人与此案无关” 。 如果这 5 个侦察员的话都是可信的, 使用归结演绎推理求出谁是盗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)
31、P(z)P(y)P(u)NIL14窃犯。解:(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)
32、 C(u)(4) 对上述扩充的子句集,按归结原理进行归结,其修改的证明树如下:Q/u因此,钱是盗窃犯。实际上,本案的盗窃犯不止一人。根据归结原理还可以得出:S/u因此,孙也是盗窃犯。C(Z)C(Q)C (Z) C(S)C(Q)C(S)C(Q)C(S)C(Q)C(u)C(u)C(Q)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(S)C(L)C (Q) C(L)C(S)C(Q)C(Q)C(S)C(S)C(u)C(u)C(S)153.18设有子句集:P(x)Q(a, b), P(a)Q(a, b),Q(a, f(a),P(x)Q(x, b)分
33、别用各种归结策略求出其归结式。解:支持集策略不可用,原因是没有指明哪个子句是由目标公式的否定化简来的。删除策略不可用,原因是子句集中没有没有重言式和具有包孕关系的子句。单文字子句策略的归结过程如下:b/f(a)a/xb/f(a)用线性输入策略(同时满足祖先过滤策略)的归结过程如下:a/xa/xb/f(a)3.19设已知:(1) 能阅读的人是识字的;(2) 海豚不识字;(3) 有些海豚是很聪明的。请用归结演绎推理证明:有些很聪明的人并不识字。解:第一步,先定义谓词,设 R(x)表示 x 是能阅读的;K(y)表示 y 是识字的;W(z) 表示 z 是很聪明的;P(x)Q(a, b)P(a)Q(a,
34、 b)P(a)P(x)Q(x, b)Q(a,b)Q(a, f(a)NILP(x)Q(a, b)Q(a, f(a)P(a)P(x)Q(x, b)Q(a, b)Q(a, f(a)Q(a, b)16第二步,将已知事实和目标用谓词公式表示出来能阅读的人是识字的:(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)第四步,用归结演绎推理进行证明3.20对子句集:PQ, QR, RW,RP,WQ,QR 用线性输入策略是否可证
35、明该子句集的不可满足性?解:用线性输入策略不能证明子句集PQ, QR, RW,RP,WQ,QR 的不可满足性。原因是按线性输入策略,不存在从该子句集到空子句地归结过程。3.21对线性输入策略和单文字子句策略分别给出一个反例,以说明它们是不完备的。3.22分别说明正向、逆向、双向与/或形演绎推理的基本思想。3.23设已知事实为(PQ)R) (S(TU)F 规则为S(XY)Z试用正向演绎推理推出所有可能的子目标。解:解:先给出已知事实的与/或树,再利用 F 规则进行推理,其规则演绎系统如下图所示。由该图可以直接写出所有可能的目标子句如下:PQPQPQYW(z)K(x)W(z)K(z)W(z)NIL
36、17RTURXZRYZ3.24设有如下一段知识:“张、王和李都属于高山协会。该协会的每个成员不是滑雪运动员,就是登山运动员,其中不喜欢雨的运动员是登山运动员,不喜欢雪的运动员不是滑雪运动员。王不喜欢张所喜欢的一切东西,而喜欢张所不喜欢的一切东西。张喜欢雨和雪。 ”试用谓词公式集合表示这段知识,这些谓词公式要适合一个逆向的基于规则的演绎系统。试说明这样一个系统怎样才能回答问题:“高山俱乐部中有没有一个成员,他是一个登山运动员,但不是一个滑雪运动员?”解:解:(1) 先定义谓词A(x) 表示 x 是高山协会会员S(x) 表示 x 是滑雪运动员C(x) 表示 x 是登山运动员L(x,y) 表示 x
37、喜欢 y(2) 将问题用谓词表示出来(PQ)R) (S(TU)(PQ)R)(S(TU)(PQ)RPQSTUTUSXYZXYPQRXYZTU已知事实所有目标PQRXYZTU所有目标STUTUSXYZXYPQRXYZTU所有目标F规则(PQ)R) (S(TU)(PQ)R)(S(TU)(PQ)RPQ已知事实STUTUSXYZXYPQRXYZTU所有子目标18“张、王和李都属于高山协会A(Zhang)A(Wang)A(Li)高山协会的每个成员不是滑雪运动员,就是登山运动员(x)(A(x)S(x)C(x)高山协会中不喜欢雨的运动员是登山运动员(x)(L(x, Rain)C(x)高山协会中不喜欢雪的运动员
38、不是滑雪运动员(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 , S
39、now)规则:(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
40、,y)r5: L(Zhang, y)L(Wang , y)将目标公式转换为与/或形式A(x)(C(x) S(x)(6) 进行逆向推理19逆向推理的关键是要能够推出 L(Zhang , Rain)L(Zhang , Snow),其逆向演绎过程如下图所示。A(x)(C(x) S(x)A(x)C(x) S(x)C(x) S(x)L(x, Rain)L(x, Snow)r2r3L(Wang, y)L(Wang, y)Wang/x, y/Rainr4L(Zhang, y)L(Zhang, Rain)Rain/yWang /x, y/SnowL(Zhang, y)r4L(Zhang, Snow)Snow/
41、y1第 4 章 搜索策略部分参考答案4.5 有一农夫带一条狼,一只羊和一框青菜与从河的左岸乘船倒右岸,但受到下列条件的限制:(1) 船太小,农夫每次只能带一样东西过河;(2) 如果没有农夫看管,则狼要吃羊,羊要吃菜。请设计一个过河方案,使得农夫、浪、羊都能不受损失的过河,画出相应的状态空间图。题示:(1) 用四元组(农夫,狼,羊,菜)表示状态,其中每个元素都为 0 或 1,用 0 表示在左岸,用 1 表示在右岸。(2) 把每次过河的一种安排作为一种操作,每次过河都必须有农夫,因为只有他可以划船。解:解:第一步,定义问题的描述形式用四元组 S=(f,w,s,v)表示问题状态,其中,f,w,s 和
42、 v 分别表示农夫,狼,羊和青菜是否在左岸,它们都可以取 1 或 0,取 1 表示在左岸,取 0 表示在右岸。第二步,用所定义的问题状态表示方式,把所有可能的问题状态表示出来,包括问题的初始状态和目标状态。由于状态变量有 4 个,每个状态变量都有 2 种取值,因此有以下 16 种可能的状态:S0=(1,1,1,1),S1=(1,1,1,0),S2=(1,1,0,1),S3=(1,1,0,0)S4=(1,0,1,1),S5=(1,0,1,0),S6=(1,0,0,1),S7=(1,0,0,0)S8=(0,1,1,1),S9=(0,1,1,0),S10=(0,1,0,1),S11=(0,1,0,0
43、)S12=(0,0,1,1),S13=(0,0,1,0),S14=(0,0,0,1),S15=(0,0,0,0)其中,状态 S3,S6,S7,S8,S9,S12是不合法状态,S0和 S15分别是初始状态和目标状态。第三步,定义操作,即用于状态变换的算符组 F由于每次过河船上都必须有农夫,且除农夫外船上只能载狼,羊和菜中的一种,故算符定义如下:L(i)表示农夫从左岸将第 i 样东西送到右岸(i=1 表示狼,i=2 表示羊,i=3 表示菜,i=0 表示船上除农夫外不载任何东西) 。由于农夫必须在船上,故对农夫的表示省略。R (i)表示农夫从右岸将第 i 样东西带到左岸(i=1 表示狼,i=2 表示
44、羊,i=3 表示菜,i=0 表示船上除农夫外不载任何东西) 。同样,对农夫的表示省略。这样,所定义的算符组 F 可以有以下 8 种算符:L(0),L(1),L(2),L(3)R(0),R(1),R (2),R (3)第四步,根据上述定义的状态和操作进行求解。该问题求解过程的状态空间图如下:24.7 圆盘问题。设有大小不等的三个圆盘 A、B、C 套在一根轴上,每个盘上都标有数字 1、2、3、4,并且每个圆盘都可以独立的绕轴做逆时针转动,每次转动 90,其初始状态 S0和目标状态 Sg如图 4-31 所示,请用广度优先搜索和深度优先搜索,求出从 S0到 Sg的路径。解:解:设用 qA,qB和 qC
45、分别表示把 A 盘,B 盘和 C 盘绕轴逆时针转动 90,这些操作(算符)的排列顺序是 qA,qB,qC。应用广度优先搜索,可得到如下搜索树。在该搜索树中,重复出现的状态不再划出,节点旁边的标识 Si,i=0,1,2,,为按节点被扩展的顺序给出的该节点的状态标识。由该图可以看出,从初始状态 S0到目标状态 Sg的路径是初始状态 S0目标状态 Sg图 4-31 圆盘问题(1,1,l,1)L(2)(0,1,0,1)(1,1,0,1)R(0)(0,0,0,1)L(1)(0,1,0,0)L(3)(1,0,1,1)R(2)(1,1,1,0)R(2)(0,0,1,0)L(3)L(2)(1,0,1,0)R(
46、0)(0,0,0,0)L(2)11 122244433 322224213 1 4132432CBAABC3S02513(Sg)221 1 1333444423 312141223443 2 31 4121243423 311 4242413ABCqAqBqC33 131 1224244qA3 2 24 4 1311324qBqC4141232341233131 3 12442241234412341231 3 324112244qC334213112244qA314241231234qB1323 1 4242413qC4.7 题的广度优先搜索树S0S1S2S4S5S6S7S8S9S10S11
47、S12即 SgS3其深度优先搜索略。4.8 图 4-32 是 5 个城市的交通图,城市之间的连线旁边的数字是城市之间路程的费用。要求从 A 城出发,经过其它各城市一次且仅一次,最后回到 A 城,请找出一条最优线路。解:解:这个问题又称为旅行商问题(travelling salesmanproblem, TSP)或货郎担问题,是一个较有普遍性的实际应用问题。根据数学理论,对 n 个城市的旅行商问题,其封闭路径的排列总数为:(n!)/n=(n-1)!其计算量相当大。例如,当 n=20 时,要穷举其所有路径,A10B289C1163128D9E4-32 交通费用图34即使用一个每秒一亿次的计算机来算
48、也需要 350 年的时间。因此,对这类问题只能用搜索的方法来解决。下图是对图 4-32 按最小代价搜索所得到的搜索树,树中的节点为城市名称,节点边上的数字为该节点的代价 g。其计算公式为g(ni+1)=g(ni)+c(ni, ni+1)其中,c(ni,ni+1)为节点 ni到 ni+1节点的边代价。可以看出,其最短路经是A-C-D-E-B-A或A-B-E-D-C-A其实,它们是同一条路经。4.11 设有如下结构的移动将牌游戏:BBWWE其中,B 表示黑色将牌,W 表是白色将牌,E 表示空格。游戏的规定走法是:(1) 任意一个将牌可移入相邻的空格,规定其代价为 1;(2) 任何一个将牌可相隔 1
49、 个其它的将牌跳入空格,其代价为跳过将牌的数目加 1。游戏要达到的目标什是把所有 W 都移到 B 的左边。 对这个问题, 请定义一个启发函数 h(n),并给出用这个启发函数产生的搜索树。你能否判别这个启发函数是否满足下解要求?再求出的搜索树中,对所有节点是否满足单调限制?解:解:设 h(x)=每个 W 左边的 B 的个数,f(x)=d(x)+3*h(x),其搜索树如下:ABCDE010102911CDEBDEBCEBCD29118812618221638105101239211218689DE382126CE392531CD982425DE1262216BC1217914BD6 91619CE
50、862027BE882020CB862624CD8 12172529BD8319202722BC1233223B620A103028A230D1228D927EB1231EE828E626B626E930B831B1234D328C832D327D935E833E931图 4.32 的最小代价搜索树362354.14 设有如图 4-34 的与/或/树,请分别按和代价法及最大代价法求解树的代价。ABCDt2t3t4t1图 4.34 习题 4.14 的与/或树56217223E解:解:若按和代价法,则该解树的代价为:h(A)=2+3+2+5+2+1+6=21若按最大代价法,则该解树的代价为:h(A