路径规划算法 - 求解最短路径 - A*(A-Star)算法

简介: 路径规划算法 - 求解最短路径 - A*(A-Star)算法

Dijkstra(迪杰斯特拉)算法

A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。

  • A* 算法是一个“搜索算法”,实质上是广度优先搜索算法(BFS)的优化
  • A* 算法的作用是“求解最短路径”,如在一张有障碍物的图上移动到目标点,以及八数码问题(从一个状态到另一个状态的最短途径)
  • A* 算法的思路类似图的Dijkstra算法,采用贪心的策略,即“若A到C的最短路径经过B,则A到B的那一段必须取最短”,找出起点到每个可能到达的点的最短路径并记录。
  • A* 算法与Dijkstra算法的不同之处在于,A算法是一个“启发式”算法,它已经有了一些我们告诉它的先验知识,如“朝着终点的方向走更可能走到”。它不仅关注已走过的路径,还会对未走过的点或状态进行预测。因此A算法相交与Dijkstra而言调整了进行BFS的顺序,少搜索了哪些“不太可能经过的点”,更快地找到目标点的最短路径。另外一点,由于H选取的不同,A*算法找到的路径可能并不是最短的,但是牺牲准确率带来的是效率的提升。

广度优先算法

会从起点开始,向上、下、左、右四个方向的网格探索,如果没有找到终点的话,又会在这四个网格的基础上继续朝着四周向外探索,被探索过的网格不会被重复探索,但是会留下一个回溯标记,它指向了该网格,是由哪一个网格探索而来,这个算法会一直往外扩散,直到搜索到终点后,根据每一个网格的回溯标记,找到最短路径,

缺点:但是这个算法的局限性也很明显,就是搜索的时候没有方向性,在最差的情况下,需要检测完所有的网格才能找到路径,当网络很多时,计算量会很大

A* 算法 (A-star Algorithm)

路径规划、游戏开发等场景中十分常见的一种算法,

A* 算法的不同之处在于,它在检索周围网格时,记录了三个不同的数据

  • 从起点到这个网格的实际距离(左上角)
  • 网络到终点的直线距离(右上角)
  • 两个距离之和(下面数字)

    A* 算法会计算边界上所有网格的总花费,并找到花费最小的点,作为下一步的起始点

    在下一轮的搜索中,以这个点为基础继续向外探索,并找到新的花费最少的点,如此往复,直到终点


A* 算法,碰到障碍物

当探索遇到障碍物时,则不会探索这个网格

下面这个点,不是总花费最少的点,因为总花费是由从起点到该点的实际路径,和该点到终点的直线距离之和

所以在起点下方的点,才是下一步要探索的点

但这并不影响找到最短路径,也是 A* 算法的巧妙之处

模拟地图导航,每个路口,当成一个点

https://www.bilibili.com/video/BV1894y1V75p

目录
相关文章
|
24天前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
|
25天前
|
算法 安全 定位技术
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
119 40
|
22天前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
101 8
|
20天前
|
算法 机器人 Serverless
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
197 2
|
25天前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
142 4
|
25天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
129 4
|
25天前
|
传感器 机器学习/深度学习 监控
【路径规划】一种越野环境下车辆驾驶风险规避运动规划算法(Matlab代码实现)
【路径规划】一种越野环境下车辆驾驶风险规避运动规划算法(Matlab代码实现)
|
24天前
|
机器学习/深度学习 人工智能 算法
【路径规划】基于凸优化算法实现威胁区域无人机路径规划研究(Matlab代码实现)
【路径规划】基于凸优化算法实现威胁区域无人机路径规划研究(Matlab代码实现)
|
25天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
|
25天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)

热门文章

最新文章

下一篇
日志分析软件