资源描述:
《2007级_高级人工智能_试卷答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《高级人工智能》试卷答案(2007级)一、简答题:1.初始状态S0=(0,1,2,1,3,0),首先定义两个操作:分别把箱子A,箱子B推到目标状态。首先机器人向左推3格得到状态S1=(0,1,2,1,0,0),机器人推箱子向上走两格得到状态S2=(0,3,2,1,0,2)第二步,机器人返回去推箱子B,得状态S3=(0,3,2,1,3,1),机器人推箱子B向左走一格得状态S4=(0,3,1,1,2,1),机器人再向下走一格,再向左走格得状态S5=(0,3,1,3,3,0)最后机器人推着箱子B向上走两眇到达目标状态S6=(0,3,1,3,3,0)2.FOIL算
2、法1)生成训练子集合T(包括正例和负例),如果T包含正例,则继续,否则结束;2)用目标谓词初始化1个新子句头P(V1,V2…..,Vk);3)生成一个新的训练集合T1,T1<-T;4)如果T1中包含负例,则在背景知识中找到一个约束L,添加在子句P的右边,否则车到7)5)生成新的空的训练集合T2,如果T1中的每个元素ti和基于约束L的每一个绑定(扩展)bi都满足L,则将bi加入到ti中,将ti加入到T2中。6)T1<-T2,转到4);7)结束。3.从结点S0开始搜索,S0不是目标结点G,则扩展S0,由f(n)=V(n)/10+D(n)得如下两式:f(S1)=
3、3/10+1f(S2)=7/10+1由于S1、S2不是目标结点G,则从S1、S2中选取代价最小的进行扩展,对S1进行扩展得如下两式:f(S3)=5/10+2f(S4)=10/10+2由于S3、S4不是目标结点G,则从S3、S4、S2中选取代价最小的进行扩展,对S2进行扩展得如下两式:f(G)=14/10+2f(S5)=13/10+2找到所求结点G,搜索停止。4.9个方格的一字棋博弈问题算法具体实现(C++实现)#include#include#includeconstintmaxwin=3276
4、7;constintminwin=-32767;constintMAX=3;intpai;structnode{intvalue;intfather;charpf[MAX][MAX];intfloor;intson;};classchess{private:intdep;intp,q,ppp;nodequeue[10000];intsign[10000];public:voidinit();voidprint(chartemp[3][3]);intequal(chara[MAX][MAX],charb[MAX][MAX]);intGetAllMoves(n
5、odef,intp,int&bit);intche(charf[MAX][MAX],intx,charch);intcheck(charf[MAX][MAX]);intfun(charf[MAX][MAX]);intmaxnum(inta,intb);intminnum(inta,intb);intmax(intdepth,nodef,intvf_min);intmin(intdepth,nodef,intvf_max);intwork(charsump[3][3],int&x,int&y);};voidchess::print(chartemp[3][3
6、]){inti,j;printf("stateis:");printf("+-+-+-+");for(i=0;i7、");elseprintf("
8、%c",temp[i][j]);}printf("
9、+-+-+-+");}//printf("Itsvalueis%d,itsflooris%d",f.value,f.floor);return;}//打印结点的状态intchess::che(charf[MAX][MAX],intx
10、,charch){if(x==0)if(f[0][0]==ch&&f[0][1]==ch&&f[0][2]==ch)return1;if(x==1)if(f[1][0]==ch&&f[1][1]==ch&&f[1][2]==ch)return1;if(x==2)if(f[2][0]==ch&&f[2][1]==ch&&f[2][2]==ch)return1;if(x==3)if(f[0][0]==ch&&f[1][0]==ch&&f[2][0]==ch)return1;if(x==4)if(f[0][1]==ch&&f[1][1]==ch&&f[2][1]
11、==ch)return1;if(x==5)if(f[0][2]==