启发式寻路算法

2018-12-11  本文已影响0人  仲达_dc6c

1.曼哈顿距离进行估算

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

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

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

曼哈顿距离

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.图解

使用勾股定理 使用马哈顿算法openclose 父节点一个一个打印出来
上一篇 下一篇

猜你喜欢

热点阅读