当前位置: 首页 > news >正文

【路径规划】基于A*算法和Dijkstra算法的路径规划(Python代码实现)

👨‍🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Python代码实现

💥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代码实现

http://www.lryc.cn/news/11528.html

相关文章:

  • 蓝桥杯 stm32 PWM 设置占空比
  • React 合成事件理解
  • 202302|读书笔记——国图点滴
  • Linux 操作系统原理 — NUMA 架构中的多线程调度开销与性能优化
  • OpenGL - 如何理解 VAO 与 VBO 之间的关系
  • Linux中sed的使用
  • [软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
  • ISP相关
  • vTESTstudio - VT System CAPL Functions - VT2004(续1)
  • WeakMap弱引用
  • Springboot 使用quartz 定时任务 增删改查
  • 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】
  • Linux常用命令汇总
  • 1.TCP、UDP区别、TCP/IP七层、四层模型、应用层协议(计网)
  • 气敏电阻的原理,结构,分类及应用场景总结
  • 实验10 拓扑排序与最短路径2022
  • C/C++每日一练(20230218)
  • 【C语言】预编译
  • 音频信号处理笔记(一)
  • 【深度学习】模型评估
  • AcWing《蓝桥杯集训·每日一题》—— 3777 砖块
  • CleanMyMac X软件下载及详细功能介绍
  • pytorch零基础实现语义分割项目(一)——数据概况及预处理
  • ARM+LINUX嵌入式学习路线
  • echart在微信小程序的使用
  • 51单片机最强模块化封装(5)
  • 链表学习之判断链表是否回文
  • 【Linux06-基础IO】4.5万字的基础IO讲解
  • c++协程库理解—ucontext组件实践
  • 英语基础-状语