人工智能课程设计.pdfVIP

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

滑块问题求解系统

一、设计任务

用智能搜索算法中的盲目搜索和启发式搜索这两类基本方法设计八数码问题的求解系

统。所谓八数码问题是指这样一种游戏:将分别标有数字1,2,3,…,8的八块正方形数码

牌任意地放在一块3×3的数码盘上.放牌时要求不能重叠.于是,在3×3的数码盘上出

现了一个空格.现在要求按照每次只能将与空格相邻的数码牌与空格交换的原则,将任

意摆放的数码盘逐步摆成某种特殊的排列.如下图表示了一个具体的八数码问题求解.

283123

1484

765765

二、设计环境及使用说明

设计环境主要采用VC++开发环境。

三、系统已实现的功能

用广度优先搜索算法和两种A*搜索算法实现八数码问题的求解系统。

四、算法思想及分析

1、广度优先搜索算法

算法思想:

这是一种盲目搜索算法。算法主要思想是从初始结点开始依次沿其上下左右四

个方向扩展结点,并逐一检查这些后继结点是否为目标结点,若不等于目标结点则

把该后继结点插入到数组末尾。然后取数组中未扩展的第一个结点重复以上操作,

直到得到目标结点为止或在限定步数以内未得到解。

数据结构:

算法当中的结点用结构体实现,

typedefstruct{

intnum[9];//八个数码用一个一维数组来存储。

charexpension;//记录是否可以扩展,Y代表可以扩展,N代表不可以。

charbandirect;//表示不可以执行的操作,L代表不能左移,R代表不能右

移,U代表不能上移,D代表不能下移,C代表可以任

意移动。

intfather;//记录父节点的下标。

}Node;

扩展的结点存储在数组里:

Nodenode[MAXSIZE];//将搜索过的状态存储于该数组中。

算法当中遇到的问题和解决方法:

1)如何去表达八个数码的位置和每个结点状态的表示

用一维或二维数组去表示八个数码的位置关系,每个结点包含了一个一维数组

(用来表示八个数码的位置关系),可扩展标记(用来标识一个结点是否被扩

展过,避免重复扩展),限制移动方向的标记(避免一个结点在一个方向的重

复扩展),记录父节点的指针(父节点下标)。

2)如何以最简洁的方式表达一个结点在其四个方向的扩展

设定一个数组用以存储该结点在每个方位是否可扩展。操作一个结点时先根据

空格的位置判断该结点可在哪些方向移动并在数组相应位置1.然后用一个for

循环来解决不同方向移动时的相同操作代码的合并和不同操作代码的拆分处

理。

部分关键代码:

intmove(inttmp)//将空格进行移动操作。

{

inttempNum;

inti,j;

intdir[4]={0};

for(j=0;j9;j++)//判断空格的位置。

if(node[tmp].num[j]==0)

break;

//判断有哪几个方向可以移动

//如果空格不在第一列的位置并且该结点可以往左移动则标记此结点可以往左

方向移动。以下类似

if(j!=0j!=3j!=6node[tmp].bandirect!=L)dir[0]=1;

if(j!=0j!=1j!=2node[tmp].bandirect!=U)dir[1]=1;

if(j!=2j!=5j!=8

文档评论(0)

155****3402 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档