- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
A星算法八数码问题和SA算法模拟退火算法旅行商问题
A*算法SA算法A*算法SA算法1A*算法1【算法简介】1【算法流程】1【问题描述】1【核心代码】2【实验结果】2【实验思考】6SA算法7【算法简介】7【算法流程】7【问题描述】7【核心代码】7【实验结果】8【实验思考】9附录10【A*算法解决八数码问题代码】10【SA算法解决旅行商问题代码】23A*算法【算法简介】A*搜索算法是对A搜索算法的改进,从而不仅能得到目标解,而且还一定能找到最优解。当然是问题有节的前提下。定义最优估价函数f*(n)=g*(n)+h*(n)。其中n为状态空间图中的一个状态,g*(n)为起点到n状态的最短路径代价值,h*(n)为n状态到目的状态的最短路径的代价值。这样f*(n)就是从起点出发通过n状态而到达目的状态的最佳路径的总代价。A*搜索中用个个个g(n)和h(n)作为g*(n)和h*(n)的估计,使其尽量接近,从而提高效率。【算法流程】初始化open、closed链表判断此问题是否有解:无解,则打印信息退出;有解,则继续Repeat open表为空查找失败 open表不空,从open表中拿出fmin(记为Bestnode)放入closed表 若Bestnode是目标结点成功求解break 若Bestnode不是目标结点,产生它的后继succeed链表 对每个后继,Repeat建立此结点到Bestnode的parent指针结点在open表中,将open表中结点加入Bestnode后继结点链,若此结 点g值小于open表中结点g值,open表中结点改变parent指针,并删除此点结点在closed表中,将closed表中结点加入Bestnode后继结点链,若此结点g值小于closed表中结点g值,closed表中结点改变parent指针,closed表中结点重新加入open表中,并删除此点open表和closed表中均无此点,将此点加入Bestnode后继结点链,并按一定规则的加入到open表中【问题描述】在一个3*3的方棋盘上放着1,2,3,4,5,6,7,8八个数码,每个数码各占一格,且有一个空格。这些数码可以在棋盘上移动,其移动规则时:与空格相邻的数码放个可以移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。【核心代码】while(!isEmpty(open)){//从open表中拿出f值最小的元素,并将拿出的元素放入closed表中popN (open , tmpNode);addN (closed , tmpNode); outputS (tmpNode);if(HValue(tmpNode) == 0) success= true;//目标结点SucceedL(tmpNode , succeed);//后继存入succeed//判断后继结点while(!isEmpty(succeed)){popN (succeed, tmpLNode); if(inLink(tmpLNode , open , tmpChartNode , thePreNode)) else if(inLink(tmpLNode , closed , tmpChartNode , thePreNode))else{addSucceedN(tmpNode , tmpLNode);addAscNode(open , tmpLNode);}}if(success) outputBR(tmpNode);//打印最优路径}【实验结果】1.启发式函数h(n)采用不在位奖牌数时,所得结果:2.启发式函数h(n)采用曼哈顿距离时的结果对比上述两种情况,因此实验中,不在位奖牌数为4,曼哈顿距离为1+2+1+1=5.所以但启发式函数采用曼哈顿距离时,其包含的启发信息量大,搜索效率高。体现在上实验上便是,加入open表的状态数少1.但最终最优路径一致。【实验思考】八数码的可解问题如上图,此种情况下,八数码问题是无解的。通过查阅资料,了解到八数码解的问题可以通过逆序数的奇偶性来判断。因为八数码问题在空白移动过程中,数码的逆序数不改变。左右移动,数码序列不变。上下移动,数码序列中某个数字则移动了两位,整个序列的奇偶性不变。问题的实质就是:如果是N*N的数码盘的话,左右移动,数码序列不变;上下移动则数码序列变动N-1位。若N为奇数则在变动过程中其逆序数的奇偶性不会改变。因八数码问题N=3,为奇数故可通过判断当前状态S的逆序数以及目标状态SD的数字序列的逆序数的奇偶性是否相同来判断该问题是否可解。SA算法【算法简介】模拟退火算法作为局部搜索算法的一种扩展,是根据复杂组合优化问题与固体的退火过程之间的相似之处,从而在它们之间建立联系而提出来的。它是一种典型的概率模拟算法,其基本思想时在一个相当大的空间内
您可能关注的文档
- AI课程介绍.doc
- Altium_Designer中英文技术词汇对照总结.doc
- AK2006水平浓淡节油燃烧器.ppt
- AMETEK显示模块90219VE.doc
- Amazon新手要知道100个问题.doc
- AI教程-绘制风景矢量图.docx
- AMETEK氧化锆74422SE.doc
- AMETEK氧化锆过滤器74422SE.doc
- AHU参数测量与数据分析.pptx
- AM_DSB 调幅波调制 课程设计.docx
- 纽约州立石溪分校计算机科学.pdf
- 氟尿嘧啶专着3241 fluorouracil cream3240.pdf
- 讲稿讲稿专着碘iobenguane 123 injection3517.pdf
- 案例电话传真2261uk.pdf
- 分析文凭计划bi programa del elistama dutch paper 1 hl markscheme.pdf
- 小提琴ii192二幕一场分谱-23 violin.pdf
- 详解介绍2005ifla-筑空间winners.pdf
- 已知芦苇数量天空望远镜sky amp telescope.pdf
- 内容学生xunan yan id bhp billitonmy ass 1屁股.pdf
- 门罗双脑同步技术.pdf
文档评论(0)