在图形应用中,常常需要求从图中某个结点至其余各结点的最短路径,如对于一个物流配送系统计算从配送中心到各订货点的最短路径。
Dijkstra's Algorithm 基本思想:
若给定带权有向图G=(V,E)和源顶点v0,构筑一个源集合S,将v0加入其中。
③ 重复 步骤①②。直至所有的顶点都加到集合S 中为止。
算法求解过程图式:
步骤:
小结:
Dijkstra's 算法与最小生成树的区别在于:
① 最小生成树是对全图而言的,而Dijkstra's算法是对某个结点而言的。
③ 若Dijkstra's算法依次应用于每个顶点,最后可以得到任意两个顶点之间的最短路径,这就是通常所说的任意顶点对之间的最短路径问题(all-pairs shortest paths,APAP)