人工智能课后题答案.docx
- 文档编号:23430384
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:35
- 大小:182.21KB
人工智能课后题答案.docx
《人工智能课后题答案.docx》由会员分享,可在线阅读,更多相关《人工智能课后题答案.docx(35页珍藏版)》请在冰豆网上搜索。
人工智能课后题答案
第一章课后习题答案
第1题
答:
1,综合数据库
定义三元组:
(m,c,b)
其中:
,表示传教士在河左岸的人数。
,表示野人在河左岸的认输。
,b=1,表示船在左岸,b=0,表示船在右岸。
2,规则集
规则集可以用两种方式表示,两种方法均可。
第一种方法:
按每次渡河的人数分别写出每一个规则,共(30)、(03)、(21)、(11)、(10)、(01)、(20)、(02)八种渡河的可能(其中(xy)表示x个传教士和y个野人上船渡河),因此共有16个规则(从左岸到右岸、右岸到左岸各八个)。
注意:
这里没有(12),因为该组合在船上的传教士人数少于野人人数。
规则集如下:
r1:
IF(m,c,1)THEN(m-3,c,0)
r2:
IF(m,c,1)THEN(m,c-3,0)
r3:
IF(m,c,1)THEN(m-2,c-1,0)
r4:
IF(m,c,1)THEN(m-1,c-1,0)
r5:
IF(m,c,1)THEN(m-1,c,0)
r6:
IF(m,c,1)THEN(m,c-1,0)
r7:
IF(m,c,1)THEN(m-2,c,0)
r8:
IF(m,c,1)THEN(m,c-2,0)
r9:
IF(m,c,0)THEN(m+3,c,1)
r10:
IF(m,c,0)THEN(m,c+3,1)
r11:
IF(m,c,0)THEN(m+2,c+1,1)
r12:
IF(m,c,0)THEN(m+1,c+1,1)
r13:
IF(m,c,0)THEN(m+1,c,1)
r14:
IF(m,c,0)THEN(m,c+1,1)
r15:
IF(m,c,0)THEN(m+2,c,1)
r16:
IF(m,c,0)THEN(m,c+2,1)
第二种方法:
将规则集综合在一起,简化表示。
规则集如下:
r1:
IF(m,c,1)and0=jori=0)THEN(m-i,c-j,0)
r2:
IF(m,c,0)and0=jori=0)THEN(m+i,c+j,1)
3,初始状态:
(5,5,1)
4,结束状态:
(0,0,0)
第2题
答:
1,综合数据库
定义两元组:
(L5,L2)
其中:
0<=L5<=5,表示容量为5升的壶的当前水量。
0<=L2<=2,表示容量为2升的壶的当前水量。
2,规则集
r1:
IF(L5,L2)THEN(5,L2)/*将L5灌满水*/
r2:
IF(L5,L2)THEN(L5,2)/*将L2灌满水*/
r3:
IF(L5,L2)THEN(0,L2)/*将L5水到光*/
r4:
IF(L5,L2)THEN(L5,0)/*将L2水到光*/
r5:
IF(L5,L2)andL5+L2<=5THEN(L5+L2,0)/*L2到入L5中*/
r6:
IF(L5,L2)andL5+L2>5THEN(5,L5+L2-5)/*L2到入L5中*/
r7:
IF(L5,L2)andL5+L2<=2THEN(0,L5+L2)/*L5到入L2中*/
r8:
IF(L5,L2)andL5+L2>5THEN(L5+L2-2,2)/*L5到入L2中*/
3,初始状态:
(5,0)
4,结束条件:
(x,1),其中x表示不定。
当然结束条件也可以写成:
(0,1)
第3题
答:
1,综合数据库
定义三元组:
(A,B,C)
其中A,B,C分别表示三根立柱,均为表,表的元素为1~N之间的整数,表示N个不同大小的盘子,数值小的数表示小盘子,数值大的数表示大盘子。
表的第一个元素表示立柱最上面的柱子,其余类推。
2,规则集
为了方便表示规则集,引入以下几个函数:
first(L):
取表的第一个元素,对于空表,first得到一个很大的大于N的数值。
tail(L):
取表除了第一个元素以外,其余元素组成的表。
cons(x,L):
将x加入到表L的最前面。
规则集:
r1:
IF(A,B,C)and(first(A) r2: IF(A,B,C)and(first(A) r3: IF(A,B,C)and(first(B) r4: IF(A,B,C)and(first(B) r5: IF(A,B,C)and(first(C) r6: IF(A,B,C)and(first(C) 3,初始状态: ((1,2,...,N),(),()) 4,结束状态: ((),(),(1,2,...,N)) 问题的状态规模: 每一个盘子都有三中选择: 在A上、或者在B上、或者在C上,共N个盘子,所以共有 种可能。 即问题的状态规模为 。 第4题 答: 1,综合数据库 定义5元组: (M,B,Box,On,H) 其中: M: 猴子的位置 B: 香蕉的位置 Box: 箱子的位置 On=0: 猴子在地板上 On=1: 猴子在箱子上 H=0: 猴子没有抓到香蕉 H=1: 猴子抓到了香蕉 2,规则集 r1: IF(x,y,z,0,0)THEN(w,y,z,0,0)猴子从x处走到w处 r2: IF(x,y,x,0,0)THEN(z,y,z,0,0)如果猴子和箱子在一起,猴子将箱子推到z处 r3: IF(x,y,x,0,0)THEN(x,y,x,1,0)如果猴子和箱子在一起,猴子爬到箱子上 r4: IF(x,y,x,1,0)THEN(x,y,x,0,0)如果猴子在箱子上,猴子从箱子上下来 r5: IF(x,x,x,1,0)THEN(x,x,x,1,1)如果箱子在香蕉处,猴子在箱子上,猴子摘到香蕉 其中x,y,z,w为变量 3,初始状态(c,a,b,0,0) 4,结束状态(x1,x2,x3,x4,1)其中x1~x4为变量。 第5题 答: 1,综合数据库 定义四元组: (x,y,z,n) 其中x,y,x∈[0,1],1表示钱币为正面,0表示钱币为方面。 n=0,1,2,3,表示当前状态是经过n次翻钱币得到的。 2,规则库 r1: IF(x,y,z,n)THEN(~x,y,z,n+1) r2: IF(x,y,z,n)THEN(x,~y,z,n+1) r3: IF(x,y,z,n)THEN(x,y,~z,n+1) 其中~x表示对x取反。 3,初始状态(1,1,0,0) 4,结束状态(1,1,1,3)或者(0,0,0,3) 第6题 提示: 将十进制数分为整数部分和小数部分两部分。 用四元组(a,b,c,d)表示综合数据库,其中a,b表示到目前为止还没有转换的十进制数的整数部分和小数部分,c,d表示已经转换得到的二进制数的整数部分和小数部分。 然后根据十进制数转换二进制数的原理,分别定义整数的转换规则和小数的转换规则,一次规则的执行,转换得到二进制数的一位。 第7题 答: 设规则R的逆用R'表示。 由题意有R应用于D后,得到数据库D',由可交换系统的性质, 有: rule(D) rule(D') 其中rule(D)表示可应用于D的规则集合。 由于R'是R'的逆,所以R'应用于D'后,得到数据库D。 同样由可交换系统的性质, 有: rule(D') rule(D) 综合上述两个式子,有rule(D')=rule(D)。 第8题 答: 说明一个产生式系统是可交换的,就是要证明该产生式系统满足可交换产生式系统的三条性质。 (1)该产生式系统以整数的集合为综合数据库,其规则是将集合中的两个整数相乘后加入到数据库中。 由于原来数据库是新数据库的子集,所以原来的规则在新数据库中均可以使用。 所以满足可交换产生式系统的第一条性质。 (2)该产生式系统以某个整数的子集的出现为目标条件,由于规则执行的结果只是向数据库中添加数据,如果原数据库中已经满足目标了,即出现了所需要的整数子集,规则的执行结果不会破坏该整数子集的出现,因此新的数据库仍然会满足目标条件。 满足可交换产生式系统的第二个性质。 (3)设D是该产生式系统的一个综合数据库。 对D施以一个规则序列后,得到一个新的数据库D'。 该规则序列中的有些规则有些是可以应用于D的,这些规则用R1表示。 有些规则是不能应用于D的,这些规则用R2表示。 由于R1中的规则可以直接应用与D,所以R1中规则的应用与R2中规则的执行结果无关,也与R1中其他的规则的执行无关。 所以可以认为,先将R1中所有的规则对D应用,然后再按照原来的次序应用R2中的规则。 因此对于本题的情况,这样得到的综合数据库与D'是相同的。 而由于R1中一条规则的执行与其他的规则无关,所以R1中规则的执行顺序不会影响到最终的结果。 因此满足可交换产生式系统的第三个条件。 因此这样一个产生式系统是一个可交换的产生式系统。 第二章课后习题 第1题 答: 为了方便起见,我们用((AB)()())这样的表表示一个状态。 这样得到搜索图如下: 第2题 提示: 可定义h为: h=B右边的W的数目 设j节点是i节点的子节点,则根据走法不同,h(i)-h(j)的值和C(i,j)分为如下几种情况: (1)B或W走到了相邻的一个空格位置,此时: h(i)-h(j)=0,C(i,j)=1; (2)W跳过了1或2个W,此时h(i)-h(j)=0,C(i,j)=1或2; (3)W向右跳过了一个B(可能同时包含一个W),此时: h(i)-h(j)=-1,C(i,j)=1或2; (4)W向右跳过了两个B,此时: h(i)-h(j)=-2,C(i,j)=2; (5)W向左跳过了一个B(可能同时包含一个W),此时: h(i)-h(j)=1,C(i,j)=1或2; (6)W向左跳过了两个B,此时: h(i)-h(j)=2,C(i,j)=2; (7)B跳过了1或2个B,此时h(i)-h(j)=0,C(i,j)=1或2; (8)B向右跳过了一个W(可能同时包含一个B),此时: h(i)-h(j)=1,C(i,j)=1或2; (9)B向右跳过了两个W,此时: h(i)-h(j)=2,C(i,j)=2; (10)B向左跳过了一个W(可能同时包含一个B),此时: h(i)-h(j)=-1,C(i,j)=1或2; (11)B向左跳过了两个W,此时: h(i)-h(j)=-2,C(i,j)=2; 纵上所述,无论是哪一种情况,具有: h(i)-h(j)≤C(i,j) 且容易验证h(t)=0,所以该h是单调的。 由于h满足单调条件,所以也一定有h(n)≤h*(n),即满足A*条件。 第3题 答: 定义h1=n*k,其中n是还未走过的城市数,k是还未走过的城市间距离的最小值。 h2= ,其中n是还未走过的城市数,ki是还未走过的城市间距离中n个最小的距离。 显然这两个h函数均满足A*条件。 第4题 提示: 对于四皇后问题,如果放一个皇后的耗散值为1的话,则任何一个解的耗散值都是4。 因此如果h是对该耗散值的估计,是没有意义的。 对于像四皇后这样的问题,启发函数应该是对找到解的可能性的评价。 比如像课上讲到的,利用一个位置放皇后后,消去的对角线的长度来进行评价。 第5题 答: 定义h1=M+C-2B,其中M,C分别是在河的左岸的传教士人数和野人人数。 B=1表示船在左岸,B=0表示船在右岸。 也可以定义h2=M+C。 h1是满足A*条件的,而h2不满足。 要说明h(n)=M+C不满足A*条件是很容易的,只需要给出一个反例就可以了。 比如状态(1,1,1),h(n)=M+C=1+1=2,而实际上只要一次摆渡就可以达到目标状态,其最优路径的耗散值为1。 所以不满足A*的条件。 下面我们来证明h(n)=M+C-2B是满足A*条件的。 我们分两种情况考虑。 先考虑船在左岸的情况。 如果不考虑限制条件,也就是说,船一次可以将三人从左岸运到右岸,然后再有一个人将船送回来。 这样,船一个来回可以运过河2人,而船仍然在左岸。 而最后剩下的三个人,则可以一次将他们全部从左岸运到右岸。 所以,在不考虑限制条件的情况下,也至少需要摆渡 次。 其中分子上的"-3"表示剩下三个留待最后一次运过去。 除以"2"是因为一个来回可以运过去2人,需要 个来回,而"来回"数不能是小数,需要向上取整,这个用符号 表示。 而乘以"2"是因为一个来回相当于两次摆渡,所以要乘以2。 而最后的"+1",则表示将剩下的3个运过去,需要一次摆渡。 化简有: 再考虑船在右岸的情况。 同样不考虑限制条件。 船在右岸,需要一个人将船运到左岸。 因此对于状态(M,C,0)来说,其所需要的最少摆渡数,相当于船在左岸时状态(M+1,C,1)或(M,C+1,1)所需要的最少摆渡数,再加上第一次将船从右岸送到左岸的一次摆渡数。 因此所需要的最少摆渡数为: (M+C+1)-2+1。 其中(M+C+1)的"+1"表示送船回到左岸的那个人,而最后边的"+1",表示送船到左岸时的一次摆渡。 化简有: (M+C+1)-2+1=M+C。 综合船在左岸和船在右岸两种情况下,所需要的最少摆渡次数用一个式子表示为: M+C-2B。 其中B=1表示船在左岸,B=0表示船在右岸。 由于该摆渡次数是在不考虑限制条件下,推出的最少所需要的摆渡次数。 因此,当有限制条件时,最优的摆渡次数只能大于等于该摆渡次数。 所以该启发函数h是满足A*条件的。 第6题 答: 题目的另一个说法是: 当A*结束时,OPEN表中任何一个具有f(n) 用反证法证明。 假设在A*结束的时候,OPEN表中有一个节点n没有被扩展,且f(n) A*算法每次从OPEN表中取出f值最小的节点扩展,当该节点是目标节点时,算法结束。 并且由可采纳性定理,知道这时A*找到了从初始节点到目标节点的最佳路径,即f(t)=f*(s)。 如果这时OPEN中存在f(n) 第7题 答: 因为A*选作扩展的任何一个节点n,均有f(n)≤f*(s),因此f(n)>f*(s)的节点,不会被A*所扩展。 所以如果从OPEN表中去掉f(n)>f*(s)的节点,不会影响A*的可采纳性。 而F是f*(s)的上界范围,因此去掉f(n)>F的节点也同样不会影响A*的可采纳性。 第8题 提示: 对于8数码问题,逆向搜索和正向搜索是完全一样的,只是把目标状态和初始状态对调就可以了。 第9题 提示: 在搜索期间改善h函数,是一种动态改变h函数的方法。 像改进的A*算法中,对NEST中的节点按g值的大小选择待扩展的节点,相当于令这些节点的h=0,就是动态修改h函数的一种方法。 由定理6,当h满足单调条件时,A*所扩展的节点序列,其f是非递减的。 对于任何节点i,j,如果j是i的子节点,则有f(i)≤f(j)。 利用该性质,我们可以提出另一种动态修改h函数的方法: f(j)=max(f(i),f(j)) 以f(j)作为节点j的f值。 f值的改变,隐含了h值的改变。 当h不满足单调条件时,经过这样修正后的h具有一定的单调性质,可以减少重复节点的可能性。 第10题 提示: 很多知识对求解问题有好处,这些知识并不一定要写成启发函数的形式,很多情况下,也不一定能清晰的写成一个函数的形式。 为了叙述方便,我们将两个相对的扇区称为相对扇区,图中阴影部分的扇区称为阴影扇区,非阴影部分的扇区称为非阴影扇区。 由题意,在目标状态下,一个扇区的数字之和等于12,一个相对扇区的数字之和等于24,而一个阴影扇区或者非阴影扇区的数字之和为48。 为此,我们可以将目标进行分解,首先满足阴影扇区的数字之和为48(这时非阴影部分的数字和也一定为48)。 为了这个目标我们可以通过每次转动圆盘45o实现。 在第一个目标被满足的情况下,我们再考虑第二个目标: 每一个相对扇区的数字和为24。 在实现这个目标的过程中,我们希望不破坏第一个目标。 为此我们采用转动90o的方式实现,这样即可以调整相对扇区的数字和,又不破坏第一个目标。 在第二个目标实现之后,我们就可以实现最终目标: 扇区内的数字和为12。 同样我们希望在实现这个目标的时候,不破坏前两个目标。 为此我们采用转动180o的方式实现。 这样同样是即可以保证前两个目标不被破坏,又可以实现第三个目标。 经过这样的分析以后,我们发现该问题就清晰多了。 当然,是否每一个第一、第二个目标的实现,都能够实现第三个目标呢? 有可能不一定。 在这种情况下,就需要在发现第三个目标不能实现时,重新试探其他的第一、第二个目标。 第三章课后习题答案 第1题 答: 此题要求按照课中例题的方式,给出算法,以下是每个循环结束时的搜索图。 上面这种做法比较简单,也可以如下做: 第2题 从该搜索图可以看出,无论先走者选择哪个走步,后走者都可以走到标记为A的节点,该节点只剩下一枚钱币,所以先走者必输。 对于一般的具有n个钱币的情况,当n=4×m+1时,后走者存在取胜策略。 因为后走者可以根据先走者的走法,选择自己的走法,使得双方拿走的钱币数为4,这样经过m个轮回后,共拿走了4×m个钱币,只剩下了一枚钱币,而此时轮到先走者走棋。 所以在这种情况下,后走者存在取胜的策略。 对于钱币数不等于4×m+1的情况,先走者可以根据实际的钱币数选择取走的钱币数,使得剩下的钱币数为4×m+1个,此时先走者相当于4×m+1个钱币时的后走者了。 因此在这种情况下,先走者存在获胜的策略。 第3题 答: 第四章课后习题答案 第1题 答: (1)( x)[P(x)→P(x)] ( x)[~P(x)∨P(x)] {~P(x)∨P(x)} (2){~{( x)P(x)}}→( x)[~P(x)] {( x)P(x)}∨( x)[~P(x)] {( x)P(x)}∨( y)[~P(y)] ( x)( y)[P(x)∨~P(y)] {P(x)∨~P(f(a))} (3)~( x){P(x)→{( y)[P(y)→P(f(x,y))]∧~( y)[Q(x,y)→P(y)]}} ~( x){P(x)→{( y)[~P(y)∨P(f(x,y))]∧~( y)[~Q(x,y)∨P(y)]}} ~( x){P(x)→{( y)[~P(y)∨P(f(x,y))]∧( y)[Q(x,y)∧~P(y)]}} ~( x){P(x)→{( y)[~P(y)∨P(f(x,y))]∧( z)[Q(x,z)∧~P(z)]}} ~( x){~P(x)∨{( y)[~P(y)∨P(f(x,y))]∧( z)[Q(x,z)∧~P(z)]}} ( x){P(x)∧{( y)[P(y)∧~P(f(x,y))]∨( z)[~Q(x,z)∨P(z)]}} ( x)( y)( z){P(x)∧{[P(y)∧~P(f(x,y))]∨[~Q(x,z)∨P(z)]}} ( x)( y)( z){P(x)∧[P(y)∨~Q(x,z)∨P(z)]∧[~P(f(x,y))∨~Q(x,z)∨P(z)]} {P(a)∧[P(b)∨~Q(a,z)∨P(z)]∧[~P(f(a,b))∨~Q(a,z)∨P(z)]} {P(a),P(b)∨~Q(a,z1)∨P(z1),~P(f(a,b))∨~Q(a,z2)∨P(z2)} (4)( x)( y){[P(x,y)→Q(y,x)]∧[Q(y,x)→S(x,y)]}→( x)( y)[P(x,y)→S(x,y)] ( x)( y){[P(x,y)→Q(y,x)]∧[Q(y,x)→S(x,y)]}→( x)( y)[P(x,y)→S(x,y)] ( x)( y){[~P(x,y)∨Q(y,x)]∧[~Q(y,x)∨S(x,y)]}→( u)( v)[~P(u,v)∨S(u,v)] ~{( x)( y){[~P(x,y)∨Q(y,x)]∧[~Q(y,x)∨S(x,y)]}}∨( u)( v)[~P(u,v)∨S(u,v)] ( x)( y){[P(x,y)∧~Q(y,x)]∨[Q(y,x)∧~S(x,y)]}∨( u)( v)[~P(u,v)∨S(u,v)] ( x)( y)( u)( v){[P(x,y)∧~Q(y,x)]∨[Q(y,x)∧~S(x,y)]}∨[~P(u,v)∨S(u,v)] ( x)( y)( u)( v){[P(x,y)∨Q(y,x)]∧[P(x,y)∨~S(x,y)]∧[~Q(y,x)∨~S(x,y)]}∨[~P(u,v)∨S(u,v)] ( x)( y)( u)( v)[P(x,y)∨Q(y,x)∨~P(u,v)∨S(u,v)]∧[P(x,y)∨~S(x,y)∨~P(u,v)∨S(u,v)]∧[~Q(y,x)∨~S(x,y)∨~P(u,v)∨S(u,v)] [P(a,y)∨Q(y,a)∨~P(f(y),v)∨S(f(y),v)]∧[P(a,y)∨~S(a,y)∨~P(f(y),v)∨S(f(y),v)]∧[~Q(y,a)∨~S(a,y)∨~P(f(y),v)∨S(f(y),v)] {P(a,y1)∨Q(y1,a)∨~P(f(y1),v)∨S(f(y1),v),P(a,y2)∨~S(a,y2)∨~P(f(y2),v2)∨S(f(y2),v2),~Q(y3,a)∨~S(a,y3)∨~P(f(y3),v3)∨S(f(y3),v3)} 第2题 答: 设有两个置换s1={a/x}和s2={x/y},合适公式P(x,y)。 则: P(x,y)s1s2=P(a,x) P(x,y)s2s1=P(a,a) 二者不相等。 所以说,置换的合成是不可交换的。 第3题 答: {A/x,A./y,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 课后 答案