在Dijkstra算法代码下载本文涉及到的代码。
程序代码
Dijkstra算法的程序如下:
function
找图中顶点间最短距离
在这样一张图中,找到从A到D的最短距离和路径。构造邻接矩阵如下:
adj
指定起点和终点,使用上面的程序计算即可:
[
结果如下:
最短距离: 22.00
路径 : 'A' 'F' 'E' 'D'
找栅格地图中两点间最短距离
如下图所示栅格地图,指定起点和终点,智能体(或机器人)只能在“上、下、左、右”四个方向移动,找出最短路径:
结果如下:
可以直接提供邻接矩阵给上面的程序,但是需要修改程序中求邻居的部分(四个方向相邻栅格中不是障碍物的栅格),同时还需要在程序中对某栅格是否是障碍物进行判断,因为是障碍物的话程序不需要对该栅格进行规划。
也可以为程序提供栅格数量(除障碍物)和每个栅格的邻居,删除程序中求邻居的部分,修改程序中邻居间的距离(比如为1)即可。