最短路径分析——迪杰斯特拉算法

  数据结构中学过一次,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,从36最短的路径即为P3-6

  ②把点6作为stepping stone,从点6开始往下一点寻找路径,与第一步中没有选定的路径比较

    min(P3-6-5,P3-1,P3-2,P3-4)=min(32,53,39,25),选定最短的P3-4,从34最短的路径即为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,从35最短的路径即为P3-6-5

  ④min(P3-4-1,P3-1,P3-2)=min(83,53,39),从32最短的路径即为P3-2

  ⑤min(P3-4-1,P3-1)=min(83,53),从31最短的路径即为P3-1


  迪杰斯特拉算法每一步都是在备选路径列表中选择最短路径

 

 

猜你喜欢

转载自www.cnblogs.com/liuliang1999/p/10978421.html