带地形惩罚的A*寻路算法

英语原文地址:http://www.policyalmanac.org/games/aStarTutorial.htm

译文原文地址:http://blog.csdn.net/kenkao/article/details/5476392


一、A*寻路算法的基本流程

1、开启列表保存待探索的节点

2、关闭列表保存已经探索过的节点

3、将起始点加入开启列表

4、从开启列表选择F值最低的节点,将该节点作为当前节点

5、将当前节点从开启列表删除,将当前节点加入到关闭列表

6、获得当前节点附近所有有效的节点(排除超过边界的节点、已经在关闭列表的节点、障碍物、跨过拐角的节点)

7、遍历第6步所得的附近的节点,如果该节点不在开启列表,则添加到开启列表,并把当前节点作为它的父节点

      如果该节点已经在开启列表,比较该节点的G值与以当前节点为父节点的G值,如果新路径的G值较低,则修改该节点的父节点为当前节点

8、继续从第4步循环,直到终点添加进了关闭列表或者开启列表已经空了

9、如果终点添加进了关闭列表说明有可行的路径

10、从终点开始,根据每个节点的父节点往上递推,直到起点,则这条路径就是最优路径

二、整个算法的核心就是F值的计算,F为G值和H值的和

G值为当前节点到下一个节点的移动耗费,斜向移动为水平或垂直移动的1.4倍(2开根号),G值决定经过哪些点

H值为当前节点到终点的移动耗费,用曼哈顿算法计算,H值影响前进的大方向

三、带地形惩罚的A*算法

每个节点设定该节点的地形,不同的地形有不同的地形值,越难走的地形值越高

在计算G值的时候加上地形值

地形惩罚值的具体数字应该根据需要调整,总之值越大,在选择路径的时候优先级越低


示例程序源代码地址:http://pan.baidu.com/s/1nuY4Qhj



  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值