欢迎来到天天文库
浏览记录
ID:31357880
大小:106.00 KB
页数:6页
时间:2019-01-09
《分层路径搜索算法研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、分层路径搜索算法研究 摘要:自动寻路算法是智能游戏中的重要组成部分,通过对现有自动寻路算法的分析,了解目前已有自动寻路算法所存在的不足。基于地图划分的思想设计分层路径搜索算法,通过将地图细分,计算细分区域中抽象节点的最短路径,在地图加载过程中,实现地图的预处理,从而在确定了路径起始点和结束点之后,快速实现自动寻路。 关键词:自动寻路算法;地图细分;抽象图 中图分类号:TP311文献标识码:A文章编号:1009-3044(2015)30-0066-02 1概述 随着信息技术的发展,游戏的画面质量不断提高,角色技能越来越丰富,当游戏的画面质量和角色技能发展到一定阶段之后,单纯的提高游戏画
2、面效果和角色已经难以满足玩家的需求,而游戏的难易程度、趣味性和操作游戏就成为了智能游戏的研究热点。 自动寻路是智能游戏中非常重要的组成部分,传统的A*自动寻路算法通过剪枝优化自动寻路搜索进程,最终找到一条路径起点和终点之间的最短路径。但A*的空间复杂度较高,在大地图上的自动寻路效果较差。而M-A*、HPA*算法通过对地图的多尺度划分来缩小搜素空间,提高了自动寻路算法效率,但是降低了所寻路径的最优程度。 2自动寻路算法优化思路6 目前,大多数的自动寻路算法都未考虑地图中障碍物的分布问题,而且相同自动寻路算法的性能在不同障碍物分布地图上的差别较大。Dijkstra和A*算法的难以满足大地图自
3、动寻路算法的性能要求;HPA*算法未考虑地形信息,降低最终路径的最有程度;M-A*仅的分区仅考虑起点和终点的区域信息,导致每一次自动寻路都需要重新分区,造成性能降低;Quadtree算法的抽象节点较多,终止条件过于严格,内存耗费严重。 针对目前主流自动寻路算法所存在的不足,提出一种考虑地图分布信息的分层路径搜索算法,通过对地图的分区,根据区域中障碍物的分布情况来选择合适的自动寻路算法来设计寻找路径,进而提高整个自动寻路算法的性能。 3分层路径搜索算法设计 分层路径搜索算法根据大地图中障碍物的分布情况,将大地图分为不均等的若干区域,并根据每个区域的障碍物信息来设置区域状态,并将区域边界的空
4、白节点看做抽象节点来构建地图的抽象图;并依据区域的状态,选择曼哈顿距离或者向上融合算法来获得抽象节点间的最短路径;使用A*算法在抽象图上实现抽象寻路,依据相关节点在所在区域的状态来选择对应的自动寻路算法进行细化;最终得到实际的最短路径。 3.1相关系数设计 在分层路径搜索算法中,引入了区域障碍物比例[α],区域状态标记[λ]和阈值[β]三个系数。 1)区域障碍物比例 区域障碍物比例[α6]用于计算区域的障碍物多少,为是否需要继续细分提供依据,其计算公式如式(1)所示。 [α=当前分区障碍物总数当前分区的节点总数](1) 2)区域状态标记 区域状态标记[λ]取值0或1,对分区过程中
5、所构建四叉树上不再细分的叶子及节点状态进行标记。如果区域内的障碍物较多,那么[λ]取值0,在该区域中使用A*算法实现自动寻路;如果[λ]取值1表示当前区域的障碍物较少,可以使用Bresenham直线方法寻找最优路径。 3)阈值 阈值[β]为是否需要对区域继续进行划分的边界值,[β]值越大,那么区有的划分就越细,地图中的抽象节点额越多,扩展节点越少,耗费时间越少,但耗费的内存越多;[β]值越小,区域划分越粗糙,抽象节点越小,耗费的内存越小。 3.2地图区域划分 将大地图根据障碍物信息细分成多个区域是分层路径搜索算法的核心思想。其区域划分思想与同样进行地图划分的Quadtree算法不同,在
6、算法中首选将地图划等分为四份,然后根据每个分区的区域障碍物比例[α]和阈值[β]的关系来设置区域状态标记[λ]。根据三个参数的定义,地图区域划分分为如下三种情况。 1)[α=0],表明当前区域没有障碍物,设置[λ=1],设置为叶子节点,表明该分区没有障碍物,不再进行细分,该区域使用Bresenhhan直线方法来寻找最短路径。 2)[0?α?β],区域内障碍物较多,继续细分。6 3)[α?β?1],区域内障碍物较少,设置[λ=0],设置为叶子节点,表明该分区有障碍物,在该区域内使用A*算法进行自动寻路。 分层路径搜索算法的分区算法流程图设计如图1所示。 在按照如上的思路进行地图区域划分
7、,最终得到一个包含地图区域信息的一个四叉树。 3.3抽象图构造 在完成地图区域划分之后,需要将所得到的四叉树叶子节点上边界上的非障碍物节点作为抽下点,来构造地图的抽象图。根据区域的状态分别采用曼哈顿距离或者自底向上融合算法来计算子区域抽象节点的最短距离。 如果子区域的[λ=1],则表明该区域内没有障碍物,直接使曼哈顿算法计算两个抽象节点之间的距离;否则,改区域中含有障碍物,使用自底向上融合的
此文档下载收益归作者所有