Astart算法详解

  • 1. Astart算法路径搜索原理
  • 2. 栅格网络的Astart算法
  • 3. Astart算法优缺点

1. Astart算法路径搜索原理

  Dijkstra算法已经是非常经典的求解最短路径的动态规划算法,其可在解空间的可行域内求解出唯一确定最短路径。但Dijkstra算法需要遍历解空间内所有的点,这在解空间节点数巨大的情况下十分占用计算资源,求解效率低下。而对于在三维构型空间或运动空间内路径规划常见的栅格网络法,则会产生更大的节点数量,导致求解的实时性和效率十分低下。
  针对Dijkstra算法的缺陷,Astart算法在Dijkstra算法的基础上,增加了一个当前探测点到目标点的距离,而综合探测点到出发点的步长探测点到目标点的距离合,f = distStart + distEnd,来选定当前已探测距离点中可以固定的最小距离点,也就是根据合的最小值来确定每一迭代步选入闭集的点。
(由于Astart大部分算法内容近似Dijkstra算法,所以后续的算法步进原理中对部分重复的细节进行了省略,终点介绍改进的部分和整体算法流程。所以在看下文原理前可先看看我的上一篇博客:【路径规划】Dijkstra算法——超详细原理图解)

2. 栅格网络的Astart算法

  探测点P到出发点Start的步长和Dijkstra算法的计算原理一致,但探测点P到目标点End的距离可以有多种距离计算方式,其中最常用的就是欧几里得距离和曼哈顿距离,栅格网络由于规则的网格划分,很适合利用计算效率极高的曼哈顿距离进行迭代,所以本文范例采用曼哈顿距离参与计算。(distEnd = |Endx - Px| + |Endy - Py|)
  先让我们看看算例的空间分布:

  平面空间已经被栅格网络简化为一个个连续分布的网格,从图中可以看出,障碍物为三个网格集合,分别是[8, 17], [28, 29, 37, 38, 46, 47], [44, 53],出发点为22号网格,目标点为9号网格。
  第一步
  我们进行第一步的迭代计算,首先先计算出发点四周邻接点的f值,这个算例及其算法采用的是4向邻接的冯诺依曼邻域,其每一个邻接点到出发点的距离皆为1,在实际路径规划中,也可以采用8向邻接的摩尔领域,则斜向的邻接点到出发点的距离则为根号2,也可以用1.4来近似替代。

  第二步
  由于目前求得开集已知f值的点中(4个点),有2个相等的最小值7,则根据算法的循环求解规则,会选中下标小的最小值点,则13号点被选中,13号点进入闭集,在13号点的冯诺依曼邻域内继续计算周围可行域开集的f值
  第三步:以上述方式继续进行迭代。

  第四步
  此时出现了一个f值更新的情况,这和Dijkstra算法的更新规则相同,只有f值小于点原先已求出的f值时,才能更新该点的f值和父节点信息,14号点由于更新值(4+5)大于原有值(2+5)所以更新失败,14号点保留原有f值和父节点信息。

  第五步

  第六步
  这一步,开集已求点的最小值点不再从上一探测点的冯诺依曼领域内取得,而是取到了当前开集已求f值点中f值最小且下标最小的14号点,并以该点进行下一步的迭代。

  第七步
  这一步的第15号点发生了更新的情况,更新值(3+4)小于原有值(5+4),从而f值发生了更新,父节点也从原先的6变成了上一迭代步的选定点14。

  第八步

  第九步

  第十步

  第十一步

  第十二步

  第十三步

  第十四步

  第十五步

  第十六步
  当f值最小点选中目标点End时,迭代过程结束,通过父节点信息回溯可得从出发点Start到目标点End的最短路径,Astart算法也整体完成。

3. Astart算法优缺点

优点
  1. Astart算法的整体搜索规模比Dijkstra算法小不少,其搜索具有一定的指向性,会促使整体搜索方向朝向目标点,使得搜索效率较高,很适合在开放空间中的路径规划。
  2. Astart算法拥有与Dijkstra算法相同的最终确定唯一最优解,具有很好的收敛性,是一个优良的搜索算法。
缺点
  1. 不论选择冯诺依曼邻域还是摩尔邻域,其计算规模仍然较大,对于较复杂路径较大空间的搜索,其路径计算往往不能达到很强的实时性。
  2. Astart算法整体需要求解出确切路径后才能知晓真正最短路径的方向,而任何过程中的计算都存在试错的过程,所以其适用于整体路径规划完毕后的执行,而不适合边执行边规划的任务作业,当然对于实时性要求很强的任务作业,可以采用分段的方式进行Astart算法,不过这样的分段策略和衔接策略就需要更详细的讨论和调优。
(由于Astart算法所常用的栅格网络使用场景多变,其环境构建和代码编写具有很强的特异性,且大部分核心算法代码与Dijkstra算法相似,故本文不做本文范例的代码实现,感兴趣的同学可以根据上述一步步的迭代示意图自行尝试。)

【路径规划】Astart算法——图文直观解析相关推荐

  1. 改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化

    改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化,平滑处理,启发函数的改进,环境地图可以根据自己的实际情况进行改进,算法包含了非常详细的代码注释 ID:695006710638 ...

  2. 改进后的A星三维路径规划完整算法(matlab语言)

    改进后的A星三维路径规划完整算法(matlab语言),包括障碍物模型优化,平滑处理,启发函数的改进,环境地图可以根据自己的实际情况进行改进,算法包含了非常详细的代码注释 YID:69500671063 ...

  3. 路径规划——CH算法

    原文地址:https://zhuanlan.zhihu.com/p/110367906 1 CH算法的基本原理 CH(Contraction Hierarchies)算法是 Robert Geisbe ...

  4. 路径规划A*算法及SLAM自主地图创建导航算法

    最近研究机器人自主路径规划,http://www.slamcn.org/index.php/首页.关注了「泡泡机器人SLAM」专栏平台,上面有很多公开的视频,涵盖多种SLAM技术及其算法的视频.PPT ...

  5. 路径规划;a*算法 demo_路径规划A*算法

    (做封面图片,可真是费了很长时间) 前言 路径规划涉及到很多内容. 但路径规划的起点,应该都是A*这个来自斯坦福大学算法. 说起A*,网上有很多相关的内容.各种博客,各种解释. 但是我愣是没看明白. ...

  6. 路径规划—— A* 算法

    参考原文:路径规划之 A* 算法 (weibo.com) A*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法.它有较好的性能和准确度. 本... 路径规划之 A* 算法 A*(念做:A ...

  7. 【硬核】 ROS Navigation 局部路径规划常见算法

    简介 ​ 最近,作者参加了关于RMUS 高校 SimReal挑战赛,首次接触到了机器人导航领域,这里记录一下这段时间的收货.sim2real的全称是simulation to reality,是强化学 ...

  8. 2021-11-06关节空间路径规划和算法(采样、搜索)或者末端轨迹优化?

    关节空间路径规划 一些概念 一. 摘自 运动规划ompl 1.1. 运动规划 (Motion Planning) 我们这里讲的 运动规划 ,有别于 轨迹规划 (Path Planning).一般来说, ...

  9. 自动驾驶路径规划——Dijkstra算法

    目录 前言 1. 深度优先(DFS)和广度优先(BFS) 2. 深度优先搜索(DFS) 2.1 算法基本思想 2.2 深度优先搜索算法(C) 3. 广度优先搜索(BFS) 3.1 算法基本思想 3.2 ...

最新文章

  1. Android开发中遇到的bug
  2. 机器学习库一:scikit-learn
  3. 【object-c基础】Object-c基础之三:面对对象开发@interface,@implementation
  4. java 原子类能做什么_死磕 java原子类之终结篇(面试题)
  5. Mysql执行计划的extra列及filesort祥析
  6. 首次自动对接!美国离本土载人航天又进一步,SpaceX成功抵达国际空间站
  7. 女友晚安之后依然在线:python男友用20行代码写了个小工具
  8. Prometheus Operator 架构 - 每天5分钟玩转 Docker 容器技术(178)
  9. Zabbix篇四:钉钉机器人报警
  10. mysql oracle视频网盘_前端和后端终极学习视频(百度网盘资料)
  11. python嵩天ppt_嵩天python课程笔记1
  12. JS重点整理之JS原型链彻底搞清楚
  13. 如何将pdf转化成word文档呢?
  14. Java学习指南(15) 链表
  15. 专用播放器到底是些什么东西?
  16. BCD码的作用和实现
  17. 利用随机森林算法实现Bank风险预测
  18. Oracle数据库的常见漏洞及注入语句
  19. java对接快递100追踪物流信息
  20. linux :ls -Z查看文件的type 属性

热门文章

  1. MySQL环境配置和入门讲解!
  2. 2020腾讯广告算法大赛:赛题理解与解题思路
  3. 原创推荐!B站最强学习资源汇总(数据科学,机器学习,Python)
  4. 他本科来自普通二本,读博后3年迎来2篇Nature,创造校史!
  5. OpenAI数十亿代码训出Codex:能将英语翻译成代码,给四句话就能写个神经网络...
  6. 超详细配置教程,搭建 Windows 深度学习环境
  7. 《百面机器学习》---AI算法工程师求职必备“面经”
  8. 马斯克蝉联美国CEO薪酬榜No.1,年入41亿,库克皮猜纳德拉加起来都没他高
  9. 基于OpenCV的视障人士实时目标检测
  10. 高校疯传!法国TOP双硕算法专家匠心打造一套保姆级AI学习笔记并公开(保姆级/20G高清/PPT/代码)...