双向A*算法浅析

前言:

本文基于我写的A*浅析http://blog.csdn.net/jz_terry/article/details/77414990

建议先看完A*浅析再看本文。


引入:

众所周知,双向BFS是对BFS极大的优化,它从起点和终点开始分别搜索,直到相遇。

那么,既然有双向BFS,为什么不能有双向A*呢?


策略:

同双向BFS一样,双向A*也是从起点和终点开始分别进行A*搜索。

直到两个open list中的点出现重复。

最后的答案是两个G值相加。

为什么是这样呢?请看下面。


证明:



我们知道,A*每一步选的都是F值最小的点,

同时,我们还知道一个性质:每一步选的点的G值一定是起点到该点的最优路线的值。

如上图,选了X点意味着估价中经过X点的路径是最优的,选了Y点意味着估价中经过Y点的路径是最优的

根据贪心思想,

答案很显然就是X点与Y点的G值和加上X到与X点Y点相交的点的距离加上在Y到与X点Y点相交的点的距离。


总结:

感觉没什么好总结的。

双向A*其实很简单,

就请记住:

双向A*就是从起点和终点开始分别进行A*搜索。

直到两个open list中的点出现重复。

最后的答案是两个G值相加。


最后,感谢大家的支持。

欢迎各路大佬指正本文的问题。


如果你认为本文写得好,欢迎点赞与转发(转发请标明出处与原文链接)

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值