【算法复习】寻路算法1 - A星 A star



一、引言
1.1 A星算法简介
注意到,本文对A星算法的简介是基于wiki和boost中的BGL库,这是因为:1、wiki的条件目是经过世界上成千上万人审阅,准确性可有保证,不像一些个人博客那样错漏(文后参考资料部分将对网上著名的文章评述);2、除了STL的标准库以外,boost可算是C++的准标准库,它对运行效率追求极致,可从这份高质量的代码中学到不少技巧;3、此外,网路上对BGL库的研究、分析、注释甚少,我个人经常使用该库,沿着“知其然并知其所以然”的学习方法,查看其源码有助于深入理解算法。
1.2 A星算法的特点
(1)在算法过程中,既寻找通往终点的短路径,同时又维护从起点到达当前点的短路径。
(2)维护一个称为OPEN列表的有序列表,保证在进入死胡同时可以跳出,又不必像Dijkstra那样全局搜索。假如把A星算法运行中,当前点比做一个机器人,OPEN列表就像是他的视野。A星算法使得该视野不会漫无目的地扩展(那会耗费太多时间),又可以保证视野在必要时扩展,绕出死胡同。
(3)算法由内外两个循环组成:外循环不断取出OPEN列表的最小值点,记为当前点;内循环处理当前点的周围一圈相邻点。
二、基本概念
2.1 起点s、终点goal、当前点u、相邻点v、不可到达点、父节点predecessor
当前点u:算法主要循环的主角
相邻点v:u点周围一圈8个相邻点
不可到达点:即图中设置的路障,不能成为路径的一部分
父节点predecessor&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值