1.曼哈顿距离进行估算
g(n)=横竖距离,取10;斜方向取14;值越大,计算的越准确
h(n)=abs(x-x1)+abs(y-y1)
f(n)=g(n)+h(n)
![](https://img.haomeiwen.com/i7387620/bd22f6d1643d9269.png)
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.图解
![](https://img.haomeiwen.com/i7387620/5c8aa281044cc77e.png)
![](https://img.haomeiwen.com/i7387620/9bc212395483dcb7.png)
![](https://img.haomeiwen.com/i7387620/ad1062c16d8379f1.png)
网友评论