- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于A星算法游戏路径优化仿真分析
基于A星算法游戏路径优化仿真分析
摘要:路径搜索是许多游戏的核心组成部分,路径搜索的算法有很多,不同的搜索算法有不同的搜索效率。A*算法是游戏中解决寻路问题的主要搜索算法,该文通过对A*算法的分析与研究,找出不足并进行优化和改进。在A*算法基础上添加了一个对障碍预处理的方案,使角色能顺利地绕开障碍,减少搜索不必要的障碍所用的额外的空间和时间。并进行了寻路仿真实验,对比分析了传统算法和改进算法的性能。实验结果表明改进A*算法的可行性与有效性。
关键词:A*算法;启发式函数;寻路;预处理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)01-0195-02
寻路作为游戏中的基本问题之一,即角色按照程序指定的合适的路径从地图的A点抵达B点,根据角色对周围环境了解程度的不同,分为全局路径规划方法和完全未知或部分未知的局部路径规划方法两种。目前网络游戏、手机增值等业务迅猛发展,寻路技术已成为游戏的一个核心组成部分。物体按照某种指定方式移动,就要求程序必须能够找到一条从起点到目标点的最佳路径,这条路径应该是绕过障碍物并且到达目的地最短的路径,而A*算法就是完成这个任务的最好的算法。
1 A*算法的不足与改进
启发式A*搜索算法,顾名思义,就是有启发地寻找目标结点,并且在基于最小的成本下,尽可能地找到通向目标点的最合适并且最短的路径。
在《一种基于A星算法的游戏路径优化应用》的文章中,讲述了传统A*算法的不足,即在面对障碍时进行了许多无用功结点的搜索,并对此不足作出了相应的改进,添加了一个对障碍预处理的方案,并且额外添加一个destination集合,使角色能顺利地绕开障碍,减少搜索所用的额外内存空间,从而更加智能地到达目标结点,并且对此改进方法作了仿真分析。
2 仿真实验
2.1 实验环境及设备
实验仿真的硬件设备:Inter(R) Core(TM) i5-4200 CPU @ 1.60GHz 2.30GHz,内存为4GB;操作系统为Microsoft Windows 8.1;仿真系统开发平台环境为:Dev-cpp5.4.0;
2.2 实验基本流程及技术难点
2.2.1 实验基本流程
图1为实验整体流程图。
2.2.2 技术难点
(1) 目标结点选取
在传统的A*算法中,目标点只有一个,为了让角色优先到达障碍边界出口点,根据堆栈的思想,将此作为一个destination目标集合,将边界出口点作为最先到达的临时目标点。
(2) 障碍的内存存储
为了用尽可能少的内存存储障碍,运用了一个边界出口点方法,即存储障碍边界点的障碍,这里的方法可以有很多,本文的方法是将障碍再加一层屏障。
(3) 多??边界出口点的选取
一个障碍可能会有多个边界出口点,为了选取最近以及最可靠的出口点,根据角色到出口点加上出口点到终点的距离来进一步判断出口点的选取。
(4) 预处理障碍
在角色寻路的过程中,从角色到目标点或者临时目标点的连线中,如果检测到存在障碍,那么立刻停止检测,就该障碍作进一步处理。
2.2.3 结果数据分析
(1) 内存结点的分析
添加了改进方案的A*算法在搜索的过程中,搜索无用功的结点明显减少,例如表1中哈曼顿的结点从51减少到了16,搜索范围变小,例如多障碍的结点由643减少到了143,并且根据图2可知,结点减少率大约在80%左右,综上所述,改进以后的算法能更精确且快速地绕开障碍并寻找路径,直至抵达终点。
(2) 消耗时间的分析
在实际游戏中,游戏在生成地图的时候已经预处理了障碍,又因为A*算法是基于静态网格下的,即障碍都是静态的,针对5种不同的地形实验进行A*算法改进前和改进后消耗时间的精确测试,如表2和表3,可以清楚地看出每组实验测试了5组数据,并且从中去掉一个最高值和最低值,取剩下三组数据求平均值[1],使最终的平均值数据更加精确,而5种不同的实验(实验一到实验五)中改进前和改进后结点的个数分别对应为:73,29,730,121,858和14,22,110,52,173,结合这些数据绘制出随着结点个数变化时间消耗分析预测图,如图3,可以明显地看出,虽然在结点很少的情况下,改进后的A*算法所需时间高于传统的A*算法,但是随着结点个数增加,并且根据线性预测分析法[2]可以明显看出,改进的A*算法要优于传统的A*算法,综上所述,在基于改进A*算法上预处理所需内存明显减少的情况下,游戏所运行的的时间也有一定的优化,从而验证了改进A*算法的真实性和可行性。
3 结束语
本文在A*算法的基础上,添加了对就近障碍预处理找出边界出口的方案,结合一个de
您可能关注的文档
最近下载
- 中国黄金集团江西金山矿业有限公司3000吨/日采选扩建工程项目环境影响报告书.pdf
- 4月“三会一课”会议记录模板.doc VIP
- 人教版PEP小学英语五年级上册第四单元Unit 4 B Let’s talk精品课件.pptx VIP
- 急性乳腺炎业务查房.pdf VIP
- 2025秋季中国寰球工程有限公司高校毕业生招聘190人笔试参考题库附答案解析.docx VIP
- 拟任县处级党政领导职务政治理论水平任职资格考试题库(含答案).pdf VIP
- 人教版(2024)新教材八年级数学上册课件:第13章 三角形 综合与实践:确定匀质薄板的重心位置.pptx
- 机械臂非线性摩擦最小能耗控制模型的的分析研究.pdf VIP
- 医疗机构监管工作季度考核表.doc VIP
- 管理会计教案.docx VIP
原创力文档


文档评论(0)