【路径规划】基于A*算法和Dijkstra算法的路径规划(Python代码实现)
2023-09-14 09:05:20 时间
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
Dijkstra算法是Edsger Wybe Dijkstra在1956年提出的一种用来寻找图形中结点之间最短路径的算法。Dijkstra算法的基本思想是贪心思想,主要特点是以起始点为中心向外层层扩展,直到扩展到目标点为止。
A*算法发表于1968年,A*算法是将Dijkstra算法与广度优先搜索算法(BFS)二者结合而成,通过借助启发式函数的作用,能够使该算法能够更快的找到最优路径。A算法是静态路网中求解最短路径最有效的直接搜索方法。
📚2 运行结果
A*:
D*:
部分代码:
# show graph if show_animation: # pragma: no cover plt.plot(self.calc_grid_position(current.x, self.min_x), self.calc_grid_position(current.y, self.min_y), "xc") # for stopping simulation with the esc key. plt.gcf().canvas.mpl_connect('key_release_event', lambda event: [exit( 0) if event.key == 'escape' else None]) if len(closed_set.keys()) % 10 == 0: plt.pause(0.001)
# show graph if show_animation: # pragma: no cover plt.plot(self.calc_grid_position(current.x, self.min_x), self.calc_grid_position(current.y, self.min_y), "xc") # for stopping simulation with the esc key. plt.gcf().canvas.mpl_connect('key_release_event', lambda event: [exit( 0) if event.key == 'escape' else None]) if len(closed_set.keys()) % 10 == 0: plt.pause(0.001)
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]张希闻,肖本贤.改进D~*算法的移动机器人路径规划[J].传感器与微系统,2018,37(12):52-54+58.DOI:10.13873/J.1000-9787(2018)12-0052-03.
[2]张宇航,陈志军,吴超仲,钱闯,熊盛光. 基于改进A~*算法的电动汽车节能路径规划[C]//.第十七届中国智能交通年会科技论文集.,2022:64-65.DOI:10.26914/c.cnkihy.2022.053514.
[3]致谢:Atsushi Sakai(@Atsushi_twi)
🌈4 Python代码实现
相关文章
- python案例-判断素数
- python错误类型
- python自定义小工具:密码匿名化、毫秒时间显示、人类易读字节
- [Py] Python 接口数据用 pandas 高效写入 csv
- 华为OD机试 - 高效的任务规划(Java & JS & Python)
- 零基础Python初学者必看学习路径规划!
- 字典的最大深度 python 实现
- Python数模笔记-模拟退火算法(3)整数规划问题
- Python小白的数学建模课-05.0-1规划
- 第十三届蓝桥杯国赛 C++ C组 F 题、Python B组 E 题——近似GCD(AC)
- 〖Python全栈白宝书-免费版③〗- Pycharm编辑器不能复制粘贴怎么办?
- python矩阵中的冒号:,切片操作[:]
- 强化学习笔记:多臂老虎机问题(2)--Python仿真
- 【学习经验分享NO.16】超全代码-python画Sigmoid,ReLU,Tanh等十多种激活函数曲线及其梯度曲线(持续更新)
- 路径规划算法 python 实现