a算法和a*算法的区别_机器人路径规划之A*算法(附C++源码)
1. 基本原理A*算法的本质是广度优先的图搜索.意在寻找一个从起点到目标节点的最短路径.A*算法在Dijkstra的基础上加入了启发式变量,一般用启发式距离(两点的直线距离)表示.启发式距离2. 算法伪代码本伪代码摘取自Principles of Robot Motion.其中O代表优先队列,C存放着已访问过的节点.3. 关键C++代码剖析先来看看A*算法运行的最终结果吧...
·
1. 基本原理
A*算法的本质是广度优先的图搜索.意在寻找一个从起点到目标节点的最短路径.
A*算法在Dijkstra的基础上加入了启发式变量,一般用启发式距离(两点的直线距离)表示.
2. 算法伪代码
本伪代码摘取自Principles of Robot Motion.
其中O代表优先队列,C存放着已访问过的节点.
3. 关键C++代码剖析
先来看看A*算法运行的最终结果吧
知乎视频www.zhihu.com首先先创建一个类代表节点(省略了构造函数等Method).
class
在main函数中定义起始节点和目标节点
node
初始化地图,这里计算了每个节点的启发式距离
for
添加障碍物
void
A*算法函数
void
4. 资源指路
最近一直没更新就是因为在写这个A*算法,其中大部分变量和算法过程我都尽量和Principles of Motion中的说明保持一致,源代码已上传github(非工程文件,需自行配置),有不明白的可以在评论区留言,我会尽量回复.
aStargithub.com
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)