- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
A*算法实验报告
(班级:网络0902 ,姓名:王国林,学号:091330208 )
概述
8数码问题
8数码问题是指在3X3的九宫棋盘上有标号为1~8的8个棋牌,和一个空白位,通过棋牌向空白位移动来改变棋盘布局,如何移动棋牌才能从初使布局到达目标布局.显然解答路径实际上就是一个合法的走步序列
A*算法
A*算法属于一种启发式有哪些信誉好的足球投注网站,它扩展结点的次序类似于广度优先有哪些信誉好的足球投注网站,但不同的是每生成一个子结点需要计算估价函数F,以估算起始结点的约束经过该结点至达目标结点的最佳路径代价;每当扩展结点时,意是在所有待扩展结点中选择具有最小F值的结点做为扩展对象,以便使有哪些信誉好的足球投注网站尽量沿最有希望的方向进行.A*算法只要求产生问题的全部状态空间的部分结点及关系,就可以求解问题了,有哪些信誉好的足球投注网站效率较高。
A*算法的一般描述
约定
S:指示初使状态节点(Note);G:指示有哪些信誉好的足球投注网站图OPEN:作为存放待扩展节点的表;SNS:子节点集合CLOSE:作为存放已被扩展节点的表
Move_First(Open):指示取Open表首节点作为当前要被扩展的节点n,同时将节点n移到CLOSE表;
F(n)=G(n)+H(n):评价函数,用于排列节点在OPEN表中的位置
算法过程
○1 G:=S;○2 OPEN:=(S),CLOSE:=();
○3如果OPEN为空则算法失败
○4n:=Move_First(OPEN);
○5如果n是目标结点,有哪些信誉好的足球投注网站完成。
○6扩展节点n,将非节点n祖先的子节点置于子点子集合SNS中,并插入G,对SNS每个子节点计算F(n,ni)=G(n,ni)+H(ni)
○7标记与修改指针:
把SNS中的子结点分为三类:全新结点,已出现于OPEN表的结点,已出现于CLOSE表的节点;2.加第一类子节点于OPEN表;3.由评价函数值,选择最优结点,并移动子结点指向父节点的指针,改为指向新父节点
○8重新排序OPEN表中结点;○9返回语句○3
A*算法在VC6.0开发环境下的实现
定义问题的初始状态S0和目标状态Sg如图1.用A*算法有哪些信誉好的足球投注网站其过程的有哪些信誉好的足球投注网站树及各节点的估价函数值如下图.从图中可以看出A*算法结束在最佳路径上,在这条路径上,其扩展的节点的f值是非递减的,g*值是递增的,h*值递减.
主要程序代码及注释
变量和主要涵数
#definemax200
staticints0[3][3]={{2,8,3},{1,0,4},{7,6,5}};/*八数码的原始状态*/staticintt0[3][3]
={{1,2,3},{8,,4},{7,6,5}};/*八数码的最终状态*/intf[max],g[max],h[max];/*满足f*(n)=g*(n)+h*(n)*/intab[max][3][3];/*所有可能用到的状态*/intaopen[max][3][3];/*open表中所有可能用到的状态*/intbclose[max][3][3];/*close表中所有可能用到的状态*/intaopenn=0;/*open表中所有状态数*/
intbclosen=0;/*close表中所有状态数*/intn=0/*所扩展的状态数*/
intopen[max];/*open表中的状态的先后顺序*/intclose[max];/*close表中的状态*/
intNoObjectLocation(array)/*求某一状态中数码不在目标位置的个数的函数*/intarray[3][3];
voidNextState(array)/*生成所选中状态的子状态*/intarray[3][3];
{
switch(cc)
{
case0:n=n+1;
for(ii=0;ii3;ii++)for(jj=0;jj3;jj++)ab[n][ii][jj]=array[ii][jj];
ab[n][0][0]=ab[n][0][1];/*空格往右移*/
ab[n][0][1]=0;
n=n+1;for(ii=0;ii3;ii++)for(jj=0;jj3;jj++)ab[n][ii][jj]=array[ii][jj];
ab[n][0][0]=ab[n][1][0];/*空格往右移*/
ab[n][1][0]=0;
cc为1,2,3时程序类似与上面.case4:
n=n+1;for(ii=0;ii3;ii++)for(jj=0;jj3;jj++)ab[n][ii][jj]=array[ii][jj];
ab[n][1][1]=ab[n][1][0];/*
空格往左移
*/
ab[n][1
您可能关注的文档
最近下载
- 岐黄天使中医西学中专项128学时试题答案.doc
- 2024年人工智能(AI)训练师职业技能鉴定考试题库(浓缩500题).docx VIP
- 特应性皮炎治疗药物应用管理专家共识(2024版).pptx
- 《语文课程与教学论》(王文彦)课后答案.docx VIP
- 饲料中钙的测定课件(共52张PPT)《畜禽营养与饲料》.pptx VIP
- 网架结构安全性检测鉴定.pdf
- 部编版小学语文四年级上册第三单元单元整体教学解读教材分析(新版).pptx
- 2024年NX省生态环境监测专业技术人员大比武模拟试卷及答案-3应急监测.pdf
- 天天特卖售后第二天售后场景考试.doc VIP
- 《饲料中磷的测定导学案-畜禽营养与饲料》.docx VIP
文档评论(0)