Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

10. Ders Floyd-Warshal algoritması

Benzer bir sunumlar


... konulu sunumlar: "10. Ders Floyd-Warshal algoritması"— Sunum transkripti:

1 10. Ders Floyd-Warshal algoritması
Çizge Algoritmalari 10. Ders Floyd-Warshal algoritması

2 Tüm ikililer arasında en kısa yollar
Matris Çarpımı Algoritması Floyd-Warshall Algoritması

3 The Floyd-Warshall Algoritması
Giriş: Yönlü ağırlıklı çizge G = (V, E) Negatif ağırlıklar olabilir Negatif döngü olamaz Hesapla: Çizgenin her hangi 2 köşesi arasındaki en kısa yolun ağırlığı 1 2 3 5 4 -4 7 6 -5 8

4 En kısa yolun altyapısı
G deki köşeler V = {1, 2, …, n} p = v1, v2, …, vl bir yol olsun p yolundaki ara köşe {v2, v3, …, vl-1} kümesinin herhangi bir elemanıdır Örneğin: p = 1, 2, 4, 5: {2, 4} p = 2, 4, 5: {4} 5 1 3 4 2 6 0.5 2

5 En kısa yolun altyapısı
Her i, j  V için ara köşeleri {1, 2, …, k} kümesinden olan i den j ye giden tüm yollara bakalım p yolu bu yollar arasında ağırlığı en az olan olsun p1 pu j i pt Ara köşeler arasında k dan büyük numaralı köşe yoktur

6 Örnek dij(k) = i köşesinden j köşesine olan ve ara köşeleri {1, 2, …, k} kümesinden olan en az ağırlıklı yolun (en kısa yolun) ağırlığı d13(0) = d13(1) = d13(2) = d13(3) = d13(4) = 6 6 1 3 4 2 6 0.5 5 5 4.5

7 En kısa yolun altyapısı
k köşesi p de ara köşe değil i den j ye olan ve ara köşeleri {1, 2, …, k} kümesinden olan en kısa yol, i den j ye olan ve ara köşeleri {1, 2, …, k - 1} kümesinden olan en kısa yolun aynısıdır k köşesi p de ara köşe olsun p1 yolu i den k ya en kısa yol olsun p2 yolu k dan j ye en kısa yol olsun k köşesi p1, p2 yollarında ara köşe değil p1 ve p2 yolları sırasıyla i den k ya ve k dan j ye olan ve ara köşeler {1, 2, …, k - 1} den olan en kısa yollardır k i j i k j p1 p2

8 Özyinelemeli Çözüm dij(k) = i den j ye olan ve ara köşeleri {1, 2, …, k} kümesinden olan en kısa yolun ağırlığı k = 0 dij(k) = wij

9 Özyinelemeli çözüm dij(k) = i den j ye olan ve ara köşeleri {1, 2, …, k} kümesinden olan en kısa yolun ağırlığı k  1 Durum1: k köşesi p en kısa yolu için ara köşe değil dij(k) = k i j dij(k-1)

10 Özyinelemeli çözüm dij(k) = i den j ye olan ve ara köşeleri {1, 2, …, k} kümesinden olan en kısa yolun ağırlığı k  1 Durum2: k köşesi p en kısa yolu için ara köşedir dij(k) = k j i dik(k-1) + dkj(k-1)

11 En kısa yol ağırlığının hesaplanması
dij(k) = wij if k = 0 min {dij(k-1) , dik(k-1) + dkj(k-1) } if k  1 Çözüm: D(n) = (dij(n)): dij(n) = (i, j)  i, j  V i j j + (k, j) i (i, k) D(k-1) D(k)

12 FLOYD-WARSHALL(W) n ← rows[W] D(0) ← W for k ← 1 to n
do for i ← 1 to n do for j ← 1 to n do dij(k) ← min (dij(k-1), dik(k-1) + dkj(k-1)) return D(n) İşlem süresi: (n3)

13 Örnek dij(k) = min {dij(k-1) , dik(k-1) + dkj(k-1) } 3 8  -4 1 7 4 2
D(0) = W D(1) 1 2 3 4 5 1 2 3 4 5 1 2 3 5 4 -4 7 6 -5 8 1 3 8 -4 1 7 4 2 -5 6 1 3 8 -4 1 7 4 2 6 2 2 3 3 5 -5 -2 4 4 5 5 D(2) 1 2 3 4 5 D(3) D(4) 3 8 -4 1 7 4 2 5 -5 -2 6 4 3 8 4 -4 1 7 5 11 2 -5 -2 6 3 4 -4 1 5 2 -1 -5 -2 6 -1 3 -4 -1 5 11 7 3 -1 8 5 1


"10. Ders Floyd-Warshal algoritması" indir ppt

Benzer bir sunumlar


Google Reklamları