dijkstra算法_Dijkstra算法例子

  • Post author:
  • Post category:其他


在Dijkstra算法代码下载本文涉及到的代码。

程序代码

Dijkstra算法的程序如下:

function

找图中顶点间最短距离

26350c7828dc9591e9fc71ae2a6543e2.png

在这样一张图中,找到从A到D的最短距离和路径。构造邻接矩阵如下:

adj 

指定起点和终点,使用上面的程序计算即可:

[

结果如下:

最短距离: 22.00
路径 :     'A'    'F'    'E'    'D'

513a41126a3bfa30d79002bd2d559428.png

找栅格地图中两点间最短距离

如下图所示栅格地图,指定起点和终点,智能体(或机器人)只能在“上、下、左、右”四个方向移动,找出最短路径:

cb3bebe174fc0536b26e79db84e93ba9.png

结果如下:

10b8cabd8d30f2aa42ab90d414a42832.png

可以直接提供邻接矩阵给上面的程序,但是需要修改程序中求邻居的部分(四个方向相邻栅格中不是障碍物的栅格),同时还需要在程序中对某栅格是否是障碍物进行判断,因为是障碍物的话程序不需要对该栅格进行规划。

也可以为程序提供栅格数量(除障碍物)和每个栅格的邻居,删除程序中求邻居的部分,修改程序中邻居间的距离(比如为1)即可。