2008级高级人工智能试卷答案.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《高级人工智能》试卷答案(2008级)

简答题:

初始状态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)

FOIL算法

生成训练子集合T(包括正例和负例),如果T包含正例,则继续,否则结束;

用目标谓词初始化1个新子句头P(V1,V2…..,Vk);

生成一个新的训练集合T1,T1<-T;

如果T1中包含负例,则在背景知识中找到一个约束L,添加在子句P的右边,否则车到7)

生成新的空的训练集合T2,如果T1中的每个元素ti和基于约束L的每一个绑定(扩展)bi都满足L,则将bi加入到ti中,将ti加入到T2中。

T1<-T2,转到4);

结束。

从结点S0开始搜索,S0不是目标结点G,则扩展S0,由f(n)=V(n)/10+D(n)得如下两式:

f(S1)=3/10+1

f(S2)=7/10+1

由于S1、S2不是目标结点G,则从S1、S2中选取代价最小的进行扩展,对S1进行扩展得如下两式:

f(S3)=5/10+2

f(S4)=10/10+2

由于S3、S4不是目标结点G,则从S3、S4、S2中选取代价最小的进行扩展,对S2进行扩展得如下两式:

f(G)=14/10+2

f(S5)=13/10+2

找到所求结点G,搜索停止。

4.9个方格的一字棋博弈问题算法

具体实现(C++实现)

#include<stdio.h>

#include<string.h>

#include<iostream.h>

constintmaxwin=32767;

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(nodef,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])

{

inti,j;

printf("stateis:\n");

printf("+-+-+-+\n");

for(i=0;i<MAX;i++)

{

for(j=0;j<MAX;j++)

{

if(temp[i][j]=='c')printf("|");

elseprintf("|%c",temp[i][j]);

}

printf("|\n+-+-+-+\n");

}

//printf("Itsvalueis%d,itsflooris%d\n",f.value,f.floor);

return;

}

//打印结点的状态

intchess::che(charf[MAX][MAX],intx,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]==

您可能关注的文档

文档评论(0)

xie_tan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档