概要

AStar是一种路径规划算法,其思想包含Dijkstra算法和启发式算法。该算法也是通过起点开始,逐步记录能够搜索到的节点,并记录它们离起点的最短距离;同时还会估算搜索到的点离终点的距离。

公式

G --  当前节点离起点的距离
H –  估算当前节点离终点的距离
F = G + H

两个队列

开启列表 – 当前寻址到的节点,包含GHF三个值,但其值可能会在随后的迭代搜寻中被更新。在每次寻址的过程中,会有新的节点存入开启列表(除非当前节点寻址到的所有节点都已经在开启列表中),也会有一个节点从开启列表移动到关闭列表中;
关闭列表 – 其节点来之开启列表中的节点。关闭列表表示其GHF三个值不会再发生变动了,或者说已经是最小值了;

H的计算方法

因为是估算,H的公式是需要考虑实际情况的,尽可能选取准确率更高的方法。这样能使得算法迭代的次数更少,性能更优。比如像北京这样的平原城市,道路规划工整,这样的地方选择使用曼哈顿的距离公式就比较合适。反之像重庆这样的山城,城市依山而建,选用欧式距离可能更为合适。

算法思想

选取开启列表中F值最小的节点,寻址通过它

能直接到达的所有其它节点。这部分节点分为三类:一是已经出现在关闭列表中,忽略;二是没有出现在开启列表中,我们就把它直接放入开启列表,同时记录其父节点为当前节点;三是已经出现在开启列表中,需要计算通过当前节点到达新节点的G值,如果该值更小,则更新(同时更改父节点指向当前节点),否则忽略。
当终点第一次出现在关闭列表中时,算法停止。通过父节点指针倒推,获取到最短路径。

小结

AStar算法是一种快速路径规划算法,只要H值计算的正确率较高,其性能是非常好的;反之其性能就会比较糟糕。
与Dijkstra算法一样,该算法也包含开启列表与关闭列表,并通过每一步迭代寻址改变两个列表中的值。这种方式保证了算法的严谨性,算出的路径一定是最短的路径。
与Dijkstra算法不同的是,它并非使用离起点最短的节点作为下一次迭代的起始节点,反而使用的是F值最小的节点。这时就体现出启发函数的作用了。如果在某些场景完全估算不出H值,AStar算法也是无法使用的。

参考文献

https://zhuanlan.zhihu.com/p/101938680
https://www.gamedev.net/reference/articles/article2003.asp

AStar路径规划算法相关推荐

  1. 【ROS-Navigation】—— Astar路径规划算法解析

    文章目录 前言 1. 导航的相关启动和配置文件 1.1 demo01_gazebo.launch 1.2 nav06_path.launch 1.3 nav04_amcl.launch 1.4 nav ...

  2. (一)路径规划算法---Astar实现自定义的全局路径规划插件

    Astar实现自定义的全局路径规划插件 文章目录 Astar实现自定义的全局路径规划插件 1.插件功能包的建立 2. 相关步骤 2.1 建立工作空间和环境变量的配置 2.2 建立功能包 2.3 添加源 ...

  3. a算法和a*算法的区别_机器人路径规划算法,全局路径规划与局部路径规划究竟有哪些区别?...

       若步智能                  移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是 ...

  4. D* Lite路径规划算法

    D* Lite路径规划算法 1.D* Lite算法简述 2.D* Lite算法伪代码 3.D*Lite算法一个简单的例子 3.1 地图无变化时 3.2地图变化时 4.算法总结 参考资料 搜索算法其他文 ...

  5. Field D*路径规划算法

    Field D*路径规划算法 1.栅格法路径规划存在的问题 2.Filed D*算法主要思想解析 3.Filed D*算法伪代码 4.算法优化 5.算法总结 参考文献 搜索算法其他文章 紧接着上一篇D ...

  6. 自动驾驶路径规划——基于概率采样的路径规划算法(RRT、RRT*)

    目录 1. RRT算法背景 1.1 RRT算法核心思想 1.2 RRT算法优缺点 2. 经典RRT算法 2.1 RRT算法流程 2.2 RRT伪代码 3. 基于目标概率采样 4. RRT*算法 4.1 ...

  7. Dijkstra、RRT两类路径规划算法原理的直观理解

    在路径规划的算法里,有两大类算法是很常用的,一类是基于搜索和图的Dijkstra算法,还有一类是基于采样的RRT算法.本文对其算法原理进行简单的理解,力图生动的展示枯燥的数学公式背后精彩的思想. Di ...

  8. 中国物流供应链“零的突破”!阿里路径规划算法入围运筹学“奥斯卡”

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最新消息,中国物流力量,刚在全球运筹和管理科学界的最高荣誉中,实现零的突破! 1月15日,国际运筹学与管理科学学会(INFORMS)公布了2 ...

  9. 机器人学习--路径规划算法

    参考网址:https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247520667&idx=3&sn=47ee67915 ...

最新文章

  1. android异常 More than one file was found with OS independent path ‘META-INF/XXX‘
  2. 史记.饭岛爱列传(转)
  3. Caffe学习系列(22):caffe图形化操作工具digits运行实例
  4. 新款苹果电脑_苹果真牛!iPhone的软件,苹果电脑上也照样可用了
  5. 管理项目的问题跟踪器的提示
  6. redis-bitmap 命令使用的一些帖子
  7. H264--1--编码原理以及I帧B帧P帧
  8. python+matlab2014b混合编程
  9. 多米诺喷码机维修大全之----缺字、字体不成形、字体跑点以及歪
  10. 【开发神器】自动化测试、用 Apipost!
  11. 好看的table-css样式
  12. 阿铭Linux_网站维护学习笔记20190408
  13. 技术经济与企业管理复习知识点总结
  14. WSJ0中的wv文件如何转换为wav文件
  15. 2020-06-03:抢红包设计
  16. OLED、QLED、miniled、microled的区别与优劣势是什么?(非商业转载)
  17. html网页表格中加超链接,用html给div加类似a标签的超链接(转)
  18. idea全局搜索文件
  19. uni-app【多媒体API】
  20. 3S基础知识:VC6.0+MapX编程总结

热门文章

  1. 「2019纪中集训Day23」解题报告
  2. 程序员遇到人生低谷期怎么做?
  3. 推荐系统 --- 推荐算法 --- 基于用户行为的推荐算法 - 协同过滤算法
  4. html怎么设置一个表格的宽度一样吗,html表格单元格大小 怎样在html中设置所有表格大小一样...
  5. 深度学习-根据日志画loss-acc折线图
  6. Gallary(中)
  7. python实现关联算法_【原创】利用python实现apriori关联算法并分析挖掘数据
  8. 【三维目标检测】3DSSD(一)
  9. 查询oracle数据库表名和中文名
  10. poj入门水题整理1--按刷题顺序解释