数据结构中学过一次,GIS空间分析中再学一次~~~~
迪杰斯特拉算法是一个典型的贪婪算法,每次都查找与源点距离最近的点
张康聪教材中的一个例子:
六个节点的阻抗矩阵
已知源点为点3,要求从点3开始出发,求出点3到各点的最短路径
①在点3到点1、2、4、6路径中选择最短路径
min(P3-1,P3-2,P3-4,P3-6)=min(53,39,25,19),选定最短的P3-6,从3到6最短的路径即为P3-6
②把点6作为stepping stone,从点6开始往下一点寻找路径,与第一步中没有选定的路径比较
min(P3-6-5,P3-1,P3-2,P3-4)=min(32,53,39,25),选定最短的P3-4,从3到4最短的路径即为P3-4
③把点4作为stepping stone,从点4开始往下一点寻找路径
min(P3-4-5,P3-4-1,P3-6-5,P3-1,P3-2)=min(38,83,32,53,39),选定最短的P3-6-5,从3到5最短的路径即为P3-6-5
④min(P3-4-1,P3-1,P3-2)=min(83,53,39),从3到2最短的路径即为P3-2
⑤min(P3-4-1,P3-1)=min(83,53),从3到1最短的路径即为P3-1
迪杰斯特拉算法每一步都是在备选路径列表中选择最短路径