启发式寻路算法

1.曼哈顿距离进行估算

g(n)=横竖距离,取10;斜方向取14;值越大,计算的越准确

h(n)=abs(x-x1)+abs(y-y1)

f(n)=g(n)+h(n)


启发式寻路算法_第1张图片
曼哈顿距离

2.算法的流程

2.1 将起点放入到open队列中

 2.2 判断目标

    open表是否为null,null失败退出

    将open中的最小值N,放入到close列表中

    判断N是否为终点,终点成功

2.3节点扩展

计算节点N所能走的节点Vi所对应的F值,并把这些节点存入open列表

如果Vi既不在open中,也不再close中。将Vi加入open。

如果open有存在,但是Vi的f值小于原f值,则更新。

以上两步都需要记录节点N为Vi的父节点

2.4 估价排序

open表中的节点按f值从小到大排序

重复2.2  2.3  2.4


3.图解


启发式寻路算法_第2张图片
使用勾股定理


启发式寻路算法_第3张图片
使用马哈顿算法openclose



启发式寻路算法_第4张图片
父节点一个一个打印出来

你可能感兴趣的:(启发式寻路算法)