AGV导航中的最短路径算法比较

在AGV导航中,路径选择是一个重要课题,如果最优路径使用最短路径算法,那可以使用的算法有很多,本文比较了当前流行的最短路径算法,主要有Dijkstra 算法,Floyd算法,A-star算法,Bellman-Ford 算法,SPFA算法等

下表是对各种算法的一个比较:

算法

适用场景

实现难易度

时间/空间复杂度

负权边问题

Floyd算法

多源最短路径,计算任意两点之间的最短距离;

稠密图效果最佳;

时间复杂度比较高,不适合计算大量数据;

简单

时间复杂度:O(n^3)

空间复杂度:O(n^2)

可以处理

Dijkstra 算法

单源最短路径,计算一个点到图中其他点之间的最短距离;

稠密图;

 

 

中等

时间复杂度: O((N+M)logN)

空间复杂度:O(M)

不能处理

A-star算法

单源最短路径,可以平衡效率和路线质量,找到次优路线的搜索算法;

是对 Dijkstra 算法的优化和改造;

复杂

时间复杂度: O((N+M)logN)

空间复杂度:O(M)

不能处理

Bellman-Ford 算法

单源最短路径

稀疏

中等

时间复杂度:O(MN)

空间复杂度:O(M)

可以处理

SPFA算法

单源最短路径

Bellman-Ford 算法的优化

稀疏

中等

时间复杂度最坏也是O(MN)

空间复杂度:O(M)

可以处理

因为AGV导航需要计算任意两点的最短路径,所以我们需要一个多源最短路径算法。Floyd算法满足此需求,同时实现简单,易于理解,虽然时间复杂度高,但是如果应用场景中导航点的个数不是天文数字的话,还是可以承受的。

 

References:

  A-star 算法原理分析:  https://blog.csdn.net/m0_37264516/article/details/88045568

  Floyd算法:        https://baike.baidu.com/item/Floyd%E7%AE%97%E6%B3%95/291990?fromtitle=%E5%BC%97%E6%B4%9B%E4%BC%8A%E5%BE%B7%E7%AE%97%E6%B3%95&fromid=5546207&fr=aladdin

Dijkstra(迪杰斯特拉算法)的实现: https://blog.csdn.net/qq_41923622/article/details/82082052

最短路径问题:https://cloud.tencent.com/developer/article/1525973

Bellman-Ford算法:https://baike.baidu.com/item/Bellman-Ford%E7%AE%97%E6%B3%95/1089090?fr=aladdin

SPFA 法:https://baike.baidu.com/item/SPFA%E7%AE%97%E6%B3%95/8297411?fr=aladdin

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验是一种重要的学习方法,可以帮助学生更好地掌握理论知识并提升实际操作能力。南京邮电大学通达学院开设了许多实验课程,其一门是"熟悉MATLAB环境"。 MATLAB是一种常用的数学软件和编程语言,被广泛应用于不同领域的科学与工程计算。学习MATLAB的环境,对于提高学生的编程和计算能力具有重要意义。 在实验一,学生可以通过模拟实践的方式,深入学习MATLAB环境的使用。首先,学生会了解到MATLAB的特点和功能,掌握其基本操作和命令的使用。例如,学生可以学习如何创建变量、矩阵和数组,并进行数值计算、绘图和数据处理。 其次,在实验过程,学生还可以学习如何使用MATLAB解决各种数学问题。通过编写MATLAB程序和脚本,学生可以实现自己的数学计算和模拟,并通过调试和修改程序,提高代码的效率和准确性。 此外,在实验一,学生还可以学习MATLAB的应用案例,包括信号处理、图像处理、控制系统等方面的应用。通过这些案例,学生可以更好地理解MATLAB在科学与工程计算的实际应用,并将其运用到自己的学习和研究。 总之,实验一"熟悉MATLAB环境"是南京邮电大学通达学院为学生提供的一门重要实验课程,通过实践学习MATLAB的使用,能够帮助学生提高编程和计算能力,并为将来的学术研究和工程实践打下坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值