想要知道在Graph中,從vertex i能不能抵達vertex j。
給一個Graph G=(V,E),
定義G的transitive closure為G*=(V,E*),
其中E*={(i,j):在G中存在一條路徑使得i可以抵達j}
若在G中,
從vertex i經過一些中介點後可以找到一條路徑抵達vertex j,
而那些中介點都在set {1,2,...,k}之中,則定義tij(k)為1,反之定義為0,
其中i,j,k的值為1,2,...,n。
接下來要計算一連串的矩陣T(k) = (tij(k))。
Introduction to Algorithms Fig. 25.5 |
T(k)(i,j) = T(k-1)(i,j) ∨ [T(k-1)(i,k) ∧ T(k-1)(k,j)]
可以直接到 可以先經過k再到j
例:
T(2)(3,4)
= T(1)(3,4) ∨ [T(1)(3,2) ∧ T(1)(2,4)]
= 0 ∨ (1 ∧ 1) = 1
最後T(4)代表最後結果,
0代表無法抵達,1代表可以抵達。
沒有留言:
張貼留言