1. 程式人生 > >演算法導論之每對頂點間的最短路徑

演算法導論之每對頂點間的最短路徑

從單源頂點最短路徑到每對頂點間最短路徑,求解的問題從一個點擴充套件到所有點,描述如下:給定一個加權有向圖G=(V,E),其加權函式w:E->R為邊到實數權值的對映,對於每對頂點u,v∈V,找出從u到v的一條最短路徑,其中路徑的權值是指其組成邊的權值之和。可以把單源最短路徑演算法執行|V|次來解決每對頂點間最短路徑問題,每一次執行時,每個頂點輪流作為源頂點。用鄰接表表示的話,輸出第u行第v列的元素就是從u到v的最短路徑的權值。

從點計算衍生到多點計算,矩陣無疑是最好的形式化工具。假設頂點編號從1,2,…,|V|,輸入一個nXn的矩陣W,矩陣中點就是邊,一般演算法允許存在負權的邊,但不能存在負權迴路;輸出一個nXn的矩陣D=(dij

),dij是從i到j的最短路徑的權值。如果用表示從頂點i到頂點j的最短路徑的權值,在算