ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:149KB ,
资源ID:2428075      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2428075.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西电八数码问题求解.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

西电八数码问题求解.doc

1、西安电子科技大学课程论文 数据结构 八数码问题的求解 班级: 作者: 学号: 时间: 1 摘要 八数码问题也称为九宫问题 ,在 3 3 的棋盘,摆 有八个棋子,每个棋子上标有 1 至 8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(以 0 标记),与空格相邻的棋子可以移到空格中。给定初始位置和目标位置,要求通过一系列的数码移动,将初始状态转化为目标状态。状态转换的规则:空格四周的数移向空格,我们可以看作是空格移动,它最多可以有 4 个方向的移动,即上、下、左、右。九宫重排问题的求解方法,就是从给定的初始状态出发,不断地空格上下左右的数码移至空格,将一个状态转化成其它状态,直到产生目

2、标状态。 一般用搜索法来解决:广度优先搜索法、深度优先搜索法、 A*算法等,本 文用全局择优来解决该问题。 引言 八数码问题是人工智能中一个很典型的智力问题。 一般用搜索法来解决:广度优先搜索法、 深度优先搜索法、 A*算法等。搜索就是按照一定规则扩展已知结点,直到找到目标结点或所有结点都不能扩展为止,广度优先是从初始状态一层一层向下找,直到找到目标为止。深度优先是按照一定的顺序前查找完一个分支,再查找另一个分支,以至找到目标为止。 广度和深度优先搜索有一个很大的缺陷就是他们都是在一个给定的状态空间中穷举 。由于八数码问题状态空间共有 9!个状态,对于八数码问题如果选定了初始状态和目标状态,有

3、 9!/2 个状态要搜索,考虑到时间和空间的限制,在这里采用 A*算法作为搜索策略 。 A*是一种静态路网中求解最短路径最有效的方法,公式表示为: f(n)=g(n)+h(n),其中 f(n) 是从初始点经由节点 n 到目标点的估价函数 , g(n) 是在状态空间中从初始节点到 n 节点的实际代价 , h(n) 是从 n 到目标节点最佳路径的估计代价 ,保证找到 最短路径 (最优解的)条件,关键在于估价函数 h(n)的 选取。 一 、 需求分析 八数码游戏(八 数码问题)描述为:在 3 3 组成的九宫格棋盘上,摆有八2 个将牌,每一个将牌都刻有 1-8 八个数码中的某一个数码。棋盘中留有一个空

4、格,允许其周围的某一个将牌向空格移动,这样通过移动将牌就可以不断改变将牌的布局。这种游戏求解的问题是:给定一种初始的将牌布局或结构(称初始状态)和一个目标的布局(称目标状态),问如何移动将牌,实现从初始状态到目标状态的转变。 状态表示:把一个状态,自左至右,自上而下地用一个长度为 9 的一维数组表示。 如何判断是否无解:八数码问题不是任何情况下都有解的,考察数组中出去0 的其他 8 位 ,如果 在位置 i #include #include #define SIZE 10000 int start33=0; int end33=0; struct node int index;/结点序号 in

5、t p_index;/父结点序号 int matrix33;/ 八数码状态 int h_function;/启发式函数值 ; node openSIZE; /存放已经生成的未考察的节点 int openlength=0; int openlast=0;/open表最后一个数据的位置 node closedSIZE; /存放已 经考察过得节点 int closedlength=0; int closedlast=0;/closed表最后一个数据的位置 int fail=0;/失败标记, fail=1则搜索失败 int n_index=0;/节点标记序号 int extend33=0; int n

6、_root=0; struct Root node resultRootSIZE; int length; ; void init(Root ; void read() printf(“输入初始状态: n“); int i,j; 4 for(i=0;i0;i-) for(j=0;jopenj+1.h_function) exchangeNode(j,j+1); 7 int seekfather(node a) int i; for(i=0;i0)/空格上移 int *p= int *q= exchange(p,q); if(judge() inopen(extend); copy_matrix

7、(extend,now); if(i0)/空格左移 exchange( if(judge() inopen(extend); copy_matrix(extend,now); if(j10000) fail=1; return; 9 adjust(); sort(); void print_matrix(int a3) int i,j; for(i=0;i=0;j-) print_matrix(result.resultRootj.matrix); printf(“步数为 %dn“,n_root); int countContray(int a3) int num=0; int i,j; int i1,i2,j1,j2; for(i=1;i9;i+) i1=i/3; i2=i%3;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。