路径规划之Best-First Search算法

系列文章目录

路径规划之Dijkstra算法

路径规划之Best-First Search算法


路径规划之Best-First Search算法


前言

Best-First Search算法和Dijkstra算法类似,都属于BFS的扩展或改进

一、Best-First Search算法

1.1 起源

Best-First Search算法又称最佳优先搜索算法 ,属于BFS的扩展,最开始人们也尝试过使用DFS来实现路径规划,效果图如下

上图中可以看出,在实际情况中DFS处于不撞南墙不回头 的状态,它找到的路径并不是机器人运行的最优路径;相比之下BFS虽然耗费时间长,代价大,但是可以找到机器人运行的最优路径。

虽然BFS能有效找到最优路径,但是它耗费的代价过大,时间过长,于是在BFS的基础上提出了最佳优先搜索(Best-First Search)。

Best-First Search和Dijkstra不同的地方在于每次选择新的遍历节点时,Dijkstra选择离起点代价最小 的点,而Best-First Search选择离终点代价最小的节点。

1.2 过程

  1. 初始化一个优先队列用于存储已遍历但未找到离终点最短路径的结点,队列开始只有起点;
  2. 遍历当前节点相邻的结点,将它们加入优先队列中,选择其中到终点代价最小的结点作为下一次遍历的结点(该结点从优先队列中踢出,成为已扩展的结点);
  3. 如果相邻的结点中已存在优先队列中,更新它到终点的代价;否则加入优先队列;
  4. 重复2、3步骤直至到达终点。

该算法到终点的代价可以使用欧氏距离或者曼哈顿距离来计算,如图所示

三、简单使用

以下就是Best-First Search算法在一个比较简单的地图中进行路径规划的过程,但该算法在应用中非常容易陷入局部最优解,使用频率远低于Dijkstra算法

相关推荐
徐小夕18 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
Robert--cao18 小时前
移动底盘与机械臂联合规划:开源算法与工程实现
算法
小豆庄18 小时前
Mac 上给视频人脸打码:本地工具的依赖、追踪与推理管线
算法·视觉检测·视频·敏捷流程·纹理贴图
星夜离尘5619 小时前
MATLAB 工程实验:从相邻块均值手写重叠 Allan 偏差,数清有效项
算法·matlab·均值算法
y1su21 小时前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
residual_fan21 小时前
船用柴油机动态机动工况故障诊断:控制感知仿射网络(CAAN)的技术实现
人工智能·算法·数据挖掘·数据分析
其实防守也摸鱼1 天前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
蓝悦无人机1 天前
《Planning algorithms》读书笔记——第8章 反馈运动规划
算法·读书笔记·反馈运动规划
RaaS1001 天前
Agent Skills 进了 Linux Foundation:2.8 亿次安装,但装 skill 还没有安全规范
人工智能·算法·架构
CV爱数码1 天前
CT 重建从零开始(五):ASTRA Toolbox 上手——几何、投影器与算法
图像处理·算法·计算机视觉·ct