2023年人工智能第3版王万森部分习题超详细解析答案分析.pdf
12 第二章 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.10 用谓词表示法求解农夫、狼、山羊、白菜问题。农夫、狼、山羊、白菜全部放在一条河的左岸,现在要把他们全部送到河的右岸去,农夫有一条船,过河时,除农夫外船上至多能载狼、山羊、白菜中的一种。狼要吃山羊,山羊要吃白菜,除非农夫在那里。似规划出一个确 12 保全部安全过河的计划。请写出所用谓词的定义,并给出每个谓词的功能及变量的个体域。解:(1)先定义描述状态的谓词 要描述这个问题,需要能够说明农夫、狼、羊、白菜和船在什么位置,为简化问题表示,取消船在河中行驶的状态,只描述左岸和右岸的状态。并且,由于左岸和右岸的状态互补,因此可仅对左岸或右岸的状态做直接描述。本题选择对左岸进行直接描述的方法,即定义谓词如下:AL(x):x 在左岸 其中,x 的个体域是农夫,船,狼,羊,白菜。对应地,AL(x)表示 x 在右岸。问题的初始状态:AL(农夫)AL(船)AL(狼)AL(羊)AL(白菜)问题的目标状态:AL(农夫)AL(船)AL(狼)AL(羊)AL(白菜)(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(羊)动作:删除表:AL(船),AL(农夫),AL(狼)添加表:AL(船),AL(农夫),AL(狼)L-R(羊):农夫带着羊划船从左岸到右岸 条件:AL(船),AL(农夫),AL(羊),AL(狼),AL(白菜)或:AL(船),AL(农夫),AL(羊),AL(狼),AL(白菜)动作:删除表:AL(船),AL(农夫),AL(羊)12 添加表:AL(船),AL(农夫),AL(羊)L-R(白菜):农夫带着白菜划船从左岸到右岸 条件:AL(船),AL(农夫),AL(白菜),AL(狼)动作:删除表:AL(船),AL(农夫),AL(白菜)添加表:AL(船),AL(农夫),AL(白菜)R-L:农夫划船从右岸到左岸 条件:AL(船),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.18 请对下列命题分别写出它们的语义网络:(1)每个学生都有一台计算机。解:L-R(羊)AL(狼)AL(白菜)AL(农夫)AL(船)AL(羊)R-L AL(农夫)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-L AL(农夫)AL(船)AL(羊)AL(白菜)AL(狼)L-R(羊)AL(农夫)AL(船)AL(羊)AL(白菜)AL(狼)g s o c 学生 占有权 计算机 Owner Owns F GS g ISA ISA AKO 12(2)高老师从 3 月到 7 月给计算机系学生讲计算机网络课。解:(3)学习班的学员有男、有女、有研究生、有本科生。解:参例 2.14 (4)创新公司在科海大街 56 号,刘洋是该公司的经理,他 32 岁、硕士学位。解:参例 2.10 (5)红队与蓝队进行足球比赛,最后以 3:2 的比分结束。解:2.19 请把下列命题用一个语义网络表示出来:(1)树和草都是植物;解:(2)树和草都有叶和根;ISA 讲课事件 高老师 老师 Subject 计算机系学生 Object 7 月 8 月 Start End 讲课 计算机网络 Action Caurse 足球赛 比赛 AKO 红队 蓝队 3:2 Participants1 Participants 2 Outcome 植物 草 树 AKO AKO 12 解:(3)水草是草,且生长在水中;解:(4)果树是树,且会结果;解:(5)梨树是果树中的一种,它会结梨。解:2.26 按“师生框架”、“教师框架”、“学生框架”的形式写出一个框架系统的描述。解:师生框架 Frame Name:Unit(Last-name,First-name)Sex:Area(male,female)Default:male Age:Unit(Years)Telephone:Home Unit(Number)Mobile Unit(Number)教师框架 Frame AKO Major:Unit(Major-Name)Lectures:Unit(Course-Name)草 树 是一种 是一种 植物 叶 根 Have Have 草 水草 水中 AKO Live 植物 AKO 树 果树 结果 AKO Can 植物 AKO 果树 梨树 结梨 AKO Can 树 AKO 12 Field:Unit(Field-Name)Project:Area(National,Provincial,Other)Default:Provincial Paper:Area(SCI,EI,Core,General)Default:Core 学生框架 Frame AKO Major:Unit(Major-Name)Classes:Unit(Classes-Name)Degree:Area(doctor,mastor,bachelor)Default:bachelor 2.37 把下列谓词公式化为子句集(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),先消去连接词“”得:12(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)2.41 设已知:(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 12 由于导出了空子句,故结论得证。2.42 假设张被盗,公安局派出 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)C(S)C(L)C(Q)C(L)C(S)C(Q)C(Q)C(S)C(S)C(u)C(u)C(S)12 因此,孙也是盗窃犯。第三章 3.7 圆盘问题。设有大小不等的三个圆盘 A、B、C 套在一根轴上,每个盘上都标有数字 1、2、3、4,并且每个圆盘都可以独立的绕轴做逆时针转动,每次转动 90,其初始状态 S0 和目标状态 Sg 如图 4-31所示,请用广度优先搜索和深度优先搜索,求出从 S0 到 Sg 的路径。解:设用 qA,qB和 qC分别表示把 A 盘,B 盘和 C 盘绕轴逆时针转动 90,这些操作(算符)的排列顺序是 qA,qB,qC。应用广度优先搜索,可得到如下搜索树。在该搜索树中,重复出现的状态不再划出,节点旁边的标识 Si,i=0,1,2,,为按节点被扩展的顺序给出的该节点的状态标识。由该图可以看出,从初始状态 S0到目标状态 Sg的路径是 S02513(Sg)初始状态 S0 目标状态 Sg 图 3-27 圆盘问题 1 1 1 2 4 4 4 3 3 3 2 2 4 2 1 3 1 4 1 3 2 4 3 2 C B A A B C 12 其深度优先搜索略。3.8 图 4-32是 5 个城市的交通图,城市之间的连线旁边的数字是城市之间路程的费用。要求从 A 城出发,经过其它各城市一次且仅一次,最后回到 A 城,请找出一条最优线路。解:这个问题又称为旅行商问题(travelling salesman problem,TSP)或货郎担问题,是一个较有普遍性的实际应用问题。根据数学理论,对 n 个城市的旅行商问题,其封闭路径的排列总数为:(n!)/n=(n-1)!其计算量相当大。例如,当 n=20 时,要穷举其所有路径,即使用一个每秒一亿次的计算机来算也需要 350 年的时间。因此,对这类问题只能用搜索的方法来解决。下图是对图 4-32按最小代价搜索所得到的搜索树,树中的节点为城市名称,节点边上的数 A 10 B 2 8 9 C 11 6 3 12 8 D 9 E 3-28 交通费用图 2 2 1 1 1 3 3 3 4 4 4 2 3 3 121 4 1 2 2 3 4 4 3 2 3 1 4 1 2 1 2 4 3 4 2 3 3 1 1 4 2 4 2 4 1 3 A B C qA qB qC 3 3 1 3 1 1 2 2 4 2 4 4 qA 3 2 2 4 4 1 3 1 1 3 2 4 qB qC 4 14 1 23 23 4 1 23 3 1 3 1 3 1 2 4 4 2 2 4 1 2 3 4 4 1 2 3 4 1 2 3 1 3 3 2 4 1 1 2 2 4 4 qC 3 3 4 2 1 3 1 1 2 2 4 4 qA 3 1 4 2 4 1 2 3 1 2 3 4 qB 1 3 2 3 1 4 2 4 2 4 1 3 qC 3.7 题的广度优先搜索树 S0 S1 S2 S4 S5 S6 S7 S8 S9 S10 S11 S12即 Sg S3 3 12 字为该节点的代价 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 其实,它们是同一条路经。3.11 设有如下结构的移动将牌游戏:B B W W E 其中,B 表示黑色将牌,W 表是白色将牌,E 表示空格。游戏的规定走法是:(1)任意一个将牌可移入相邻的空格,规定其代价为 1;(2)任何一个将牌可相隔 1 个其它的将牌跳入空格,其代价为跳过将牌的数目加 1。游戏要达到的目标什是把所有 W 都移到 B 的左边。对这个问题,请定义一个启发函数 h(n),并给出用这个启发函数产生的搜索树。你能否判别这个启发函数是否满足下解要求?再求出的搜索树中,对所有节点是否满足单调限制?解:设 h(x)=每个 W左边的 B的个数,f(x)=d(x)+3*h(x),其搜索树如下:12 3.14 设有如图 4-34的与/或/树,请分别按和代价法及最大代价法求解树的代价。解:若按和代价法,则该解树的代价为:h(A)=2+3+2+5+2+1+6=21 若按最大代价法,则该解树的代价为:h(A)=maxh(B)+5,h(C)+6=max(h(E)+2)+5,h(C)+6 A B C D t2 t3 t4 t1 图 3.30 习题 4.14 的与/或树 5 6 2 1 7 2 2 3 E 12 =max(max(2,3)+2)+5,max(2,1)+6=max(5+5,2+6)=10 3.15 设有如图 4-35所示的博弈树,其中最下面的数字是假设的估值,请对该博弈树作如下工作:(1)计算各节点的倒推值;(2)利用-剪枝技术剪去不必要的分枝。解:各节点的倒推值和剪枝情况如下图所示:图 3.31 习题 3.15 的博弈树 3 0 5-3 6-2 3 5 4-3 0 6 8-3 3 6 9 S0 A B C D E F G H I J K L N M 习题 3.15 的倒推值和剪枝情况 3 0 5-3 3 6-2 3 5 4-3 0 6 8-3 3 6 0 0 0 -3 9 3 3 4 4 4 4 -3 6 6 S0 A B C D E F G H I J K M N L