Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanPembe Kocaman Değiştirilmiş 6 yıl önce
1
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar
2
Tüm ikililer arasında en kısa yollar
Matris Çarpımı Benzeri Algoritma
3
Tüm ikililer arasında en kısa yollar
Verilen: Yönlü çizge G = (V, E) Ağırlık fonksiyonu w : E → R Hesapla: Çizgenin herhangi 2 köşesi arasındaki en kısa yolu Sonucun ifade edilmesi: en kısa yolları gösteren δ(u, v) sayılarından oluşan bir n × n matrisi 1 2 3 5 4 -4 7 6 -5 8
4
Motivasyon Bilgisayar ağları Uçak ağları (e.G. Flying time, fares)
Demiryolu ağları Her hangi 2 şehir arasındaki en kısa yol uzunluklarını gösteren tablo
5
Bilinen algoritmaların yardımıyla çözümler
BELLMAN-FORD algoritmasını her köşeyi başlangıç köşe alarak çalıştır: İşlem süresi O(V2E) olur ve eğer çizge yoğun çizge ise E = (V2) olduğundan işlem süresi O(V4) olur Negatif ağırlık yoksa her köşe için Dijkstra algoritması çalıştır: İşlem süresi O(VElgV) olur (ikili yığın veri yapısı ile) ve çizge yoğun ise bunun anlamı O(V3lgV) demek olur Biz bu derste işlem süresi O(V3) olan ve veri yapısından bağımsız algoritma göreceğiz.
6
Tüm ikililer arasında en kısa yollar
1 2 3 5 4 -4 7 6 -5 8 G çizgesi ağırlıkların komşuluk matrisi ile verilmiş olsun W = (wij), n x n matris, |V| = n Köşeler 1 den n e numaralı olsun if i = j wij = if i j , (i, j) E if i j , (i, j) E Çıkış bir n x n matrisi olacak D = (dij), burada dij = δ(i, j) Dinamik programlama kullanılacak Ağırlık (i, j) ∞
7
En kısa yolun optimal altyapısı
11 j En fazla m kiriş En kısa yolun her alt yolu en kısadır p: i ile j arasında en fazla m kiriş kullanan en kısa yol olsun If i = j w(p) = 0 ve p yolunda kiriş yok k En fazla m - 1 kiriş If i j: p = i k j p’ yolunda en fazla m-1kiriş var p’ en kıs ayoldur δ(i, j) = p’ δ(i, k) + wkj
8
Özyinelemeli çözüm min { , } lij(m-1) min {lik(m-1) + wkj}
lij(m) = i ile j arasında en fazla m kirişi olan en kısa yolun ağırlığı m = 0: lij(0) = if i = j if i j m 1: lij(m) = i ile j arasında en fazla m kirişi olan en kısa yolun ağırlığı: ya en fazla m – 1 kirişi olan en kısa yolun ağırlığına eşit olur ya da j den önce gelen tüm k lara bakılarak k dan j ye geçen m kirişli en kısa yolun ağırlığına eşit olur i 11 j En fazla m kiriş k min { , } lij(m-1) min {lik(m-1) + wkj} 1 k n = min {lik(m-1) + wkj} 1 k n
9
En kısa yolun hesaplanması
m = 1: lij(1) = İ den j ye en fazla 1 kiriş kullanarak giden en kısa yolun ağırlığı W = (wij) veriliyor, hesapla: L(1), L(2), …, L(n-1), burada L(m) = (lij(m)) L(n-1) matrisinde tüm kısa yolların ağırlıkları olur L(m-1) ve W verildiğinde hesapla L(m) En kısa yolu bir kiriş daha kullanarak genişlet Eğer çizgede negatif döngü yoksa en kısa yolda en fazla n - 1 kiriş olur δ(i, j) = lij(n-1) and lij(n), lij(n+1). . . wij L(1) = W = lij(n-1)
10
EN KISA YOLUN GENİŞLETİLMESİ
lij(m) = min {lik(m-1) + wkj} 1 k n k j k j i * i = L(m-1) n x n W L(m) Değiştir: min + + L(m) matrisinin hesaplanması Matris çarpımı hesaplanmasına benzer
11
EXTEND(L, W, n) create L’, an n × n matrix for i ← 1 to n
do for j ← 1 to n do lij’ ←∞ for k ← 1 to n do lij’ ← min(lij’, lik + wkj) return L’ Running time: (n3)
12
SLOW-ALL-PAIRS-SHORTEST-PATHS(W, n)
L(1) ← W for m ← 2 to n - 1 do L(m) ←EXTEND (L(m - 1), W, n) return L(n - 1) Running time: (n4)
13
Örnek … en son L(4) 3 8 -4 1 7 4 2 -5 6 3 8 -4 1 7 4 2 -5 6 3 8 2
L(m-1) = L(1) W 3 8 -4 1 7 4 2 -5 6 3 8 -4 1 7 4 2 -5 6 3 8 2 -4 3 -4 1 7 L(m) = L(2) … en son L(4) 4 5 11 2 -1 -5 -2 8 1 6
14
Örnek 1 6 l14(2) = (0 3 8 -4) = min (, 4, , , 2) = 2
15
Matris çarpımı ile benzerliği
C = a b cij = Σk=1n ( aik bkj ) Karşılaştır: L(m) = L(m-1) C lij(m) = min1≤k≤n {lik(m-1) + ckj}
16
İŞLEM ZAMANINI İYİLEŞTİRME
Tüm L(m) matrislerini hesaplama gereksinimi yoktur Eğer negatif döngü yoksa: L(m) = L(n - 1) tüm m n – 1 için L(n-1) matrisini aşağıdaki gibi hesaplayabiliriz: L(1) = W L(2) = W2 = W W L(4) = W4 = W2 W2 L(8) = W8 = W4 W4 …
17
FASTER-APSP(W, n) L(1) ← W m ← 1 while m < n - 1
do L(2m) ← EXTEND(L(m), L(m), n) m ← 2m return L(m) : L(n - 1) matrsisinden sonra matrisler değişmez İşlem zamanı: (n3lg n)
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.