Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritmalar En kısa yollar I En kısa yolların özellikleri

Benzer bir sunumlar


... konulu sunumlar: "Algoritmalar En kısa yollar I En kısa yolların özellikleri"— Sunum transkripti:

1 Algoritmalar En kısa yollar I En kısa yolların özellikleri
Ders 12 En kısa yollar I En kısa yolların özellikleri Dijkstra algoritması Doğruluk Analiz November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

2 Graflarda yollar p = v1 → v2 → ..... → vk yolunun ağırlığı
w : E → R ayrıt-ağırlık fonksiyonu olan bir G = (V, E) yönlü grafı olduğunu düşünün. p = v1 → v2 → → vk yolunun ağırlığı k −1 w( p) = ∑ w(vi , vi+1) olarak tanımlanır. i=1 November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

3 Graflarda yollar p = v1 → v2 → ..... → vk yolunun ağırlığı
w : E → R ayrıt-ağırlık fonksiyonu olan bir G = (V, E) yönlü grafı olduğunu düşünün. p = v1 → v2 → → vk yolunun ağırlığı k −1 w( p) = ∑ w(vi , vi+1) olarak tanımlanır. i=1 Örnek: v1 v V 5 4 –2 –5 1 V v w(p) = –2 November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

4 En kısa yollar Not:u ' dan v ' bir yol yoksa δ(u, v) = ∞
u' dan v ' ye en kısa yol, u ' dan v ' ye en az ağırlıklı yoldur. u ' dan v ' ye en kısa yolun ağırlığı δ(u, v) = min{w(p) olarak tanımlanır: p, u dan v ye bir yoldur}. Not:u ' dan v ' bir yol yoksa δ(u, v) = ∞ November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

5 En uygun altyapı Teorem.En kısa yolun alt yolu, bir en kısa yoldur.
November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

6 En uygun altyapı Teorem.En kısa yolun alt yolu, bir en kısa yoldur.
Kanıt.Kes ve yapıştır: November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

7 En uygun altyapı Teorem.En kısa yolun alt yolu, bir en kısa yoldur.
Kanıt.Kes ve yapıştır: November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

8 Üçgen eşitsizliği Teorem.Tüm u, v, x ∈ V' ler için,
δ(u, v) ≤ δ(u, x) + δ(x, v). November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

9 Üçgen eşitsizliği Teorem.Tüm u, v, x ∈ V' ler için,
δ(u, v) ≤ δ(u, x) + δ(x, v). Kanıt. δ(u, v) uu vv δ(u, x) δ(x, v) xx November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

10 En kısa yolların iyi tanımlanırlığı
Bir G grafı negatif ağırlık döngüsü içeriyorsa, bazı en kısa yollar var olmayabilir. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

11 En kısa yolların iyi tanımlanırlığı
Bir G grafı negatif ağırlık döngüsü içeriyorsa, bazı en kısa yollar var olmayabilir. Örnek: < 0 uu vv November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

12 Tek-kaynaklı en kısa yollar
Problem. s ∈ V ' deki verilen bir kaynak tepeden, tüm v ∈ V' ler için, δ(s, v) en kısa yol ağırlıklarını bulun. Tüm w(u, v) ayrıt ağırlıkları eksi değilse bütün en kısa yol ağırlıklarının olması gerekir. Fikir:Açgözlü. 1. s ' den başlayan ve S içindeki tüm tepelere olan en kısa yol uzunlukları bilinen tepelerin kümesini koru. Her adımda S' ye, s' ye olan uzaklık tahmini en az olan v ∈ V – S tepesine ekle. v' ye bitişik tepelerin uzaklık tahminlerini güncelle. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

13 Dijkstra algoritması d[s] ← 0 do d[v] ← ∞ S ← ∅
for each v ∈ V – {s} do d[v] ← ∞ S ← ∅ Q ← V ⊳ Q, V – S'yi koruyan bir öncelikli sıradır. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

14 Dijkstra algoritması d[s] ← 0 do d[v] ← ∞ S ← ∅
for each v ∈ V – {s} do d[v] ← ∞ S ← ∅ Q ← V ⊳ Q, V – S'yi koruyan bir öncelikli sıradır. while Q ≠ ∅ u ← EXTRACT-MIN(Q) S ← S ∪ {u} for each v ∈ Adj[u] do if d[v] > d[u] + w(u, v) then d[v] ← d[u] + w(u, v) November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

15 Dijkstra algoritması Implicit DECREASE-KEY d[s] ← 0 do d[v] ← ∞ S ← ∅
for each v ∈ V – {s} do d[v] ← ∞ S ← ∅ Q ← V ⊳ Q, V – S'yi koruyan bir öncelikli sıradır. while Q ≠ ∅ u ← EXTRACT-MIN(Q) S ← S ∪ {u} for each v ∈ Adj[u] do if d[v] > d[u] + w(u, v) then d[v] ← d[u] + w(u, v) Implicit DECREASE-KEY November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

16 Dijkstra algoritmasına örnek
2 Eksi olmayan ayrıt ağırlıklarıyla grafik: B D 10 8 A 1 4 7 9 3 C E 2 November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

17 Dijkstra algoritmasına örnek
D İlklendirme: Initialization: 2 B 10 8 A 1 4 7 9 3 Q: A B C D E 0 ∞ ∞ ∞ ∞ C E 2 S: {} November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

18 Dijkstra algoritmasına örnek
B D “A” ← EXTRACT-MIN(Q): 10 2 8 A 1 4 7 9 3 Q: A B C D E 0 ∞ ∞ ∞ ∞ C E 2 S: { A } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

19 Dijkstra algoritmasına örnek
10 B D A'dan ayrılan tüm ayrıtları gevşetin: 10 2 8 A 1 4 7 9 3 Q: A B C D E C 3 E 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ S: { A } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

20 Dijkstra algoritmasına örnek
10 B D “C” ← EXTRACT-MIN(Q): 10 2 8 A 1 4 7 9 3 Q: A B C D E C 3 E 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ S: { A, C } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

21 Dijkstra algoritmasına örnek
7 BB 11 DD C'den ayrılan tüm ayrıtları gevşetin: 2 10 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ 7 11 5 S: { A, C } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

22 Dijkstra algoritmasına örnek
7 BB 11 DD “E” ← EXTRACT-MIN(Q): 10 2 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ 7 11 5 S: { A, C, E } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

23 Dijkstra algoritmasına örnek
7 BB 11 DD E'den ayrılan tüm ayrıtları gevşetin: 2 10 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ 7 11 5 11 S: { A, C, E } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

24 Dijkstra algoritmasına örnek
7 BB 11 DD “B” ← EXTRACT-MIN(Q): 10 2 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 10 3 7 11 5 S: { A, C, E, B } November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

25 Dijkstra algoritmasına örnek
7 BB 9 DD B'den ayrılan tüm ayrıtları gevşetin: 10 2 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ 7 11 5 11 9 S: { A, C, E, B } 7 November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

26 Dijkstra algoritmasına örnek
7 BB 9 DD “D” ← EXTRACT-MIN(Q): 10 2 8 A 1 4 7 9 3 Q: A B C D E CC 3 EE 5 2 0 ∞ ∞ ∞ ∞ 10 3 ∞ ∞ 7 11 5 11 S: { A, C, E, B, D } 7 9 November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

27 Doğruluk —Bölüm I Ön kuram. d[s] ← 0 ve d[v] ← ∞ ' yi tüm
v ∈ V – {s}' ler için ilklendirme, d[v] ≥ δ(s, v)'yi sağlar- tüm v ∈ V ' ler için: Ve bu değişmez dizideki tüm gevşetme adımlarında korunur. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

28 d[v] = d[u] + w(u, v). O zaman,
Doğruluk —Bölüm II Önkuram. d[s] ← 0 ve d[v] ← ∞ ' yi tüm v ∈ V – {s}' ler için ilklendirme d[v] ≥ δ(s, v)' yi sağlar- tüm v ∈ V ' ler için: Ve bu değişmez dizideki tüm gevşetme adımlarımda korunur. Kanıt.Şunun olmadığını düşünün. v, d[v] < δ(s, v)' deki ilk köşe olsun ve u' da d[v]' yi değiştiren ilk tepe olsun: d[v] = d[u] + w(u, v). O zaman, d[v] < δ(s, v) ≤ δ(s, u) + δ(u, v) ≤ δ(s,u) + w(u, v) ≤ d[u] + w(u, v) kabul üçgen eşitsizliği kısa yol ≤ özel yol v ilk ihlal Çelişki. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

29 Doğruluk —Bölüm II Ön kuram. u, s' den v' ye en kısa yolda v'nin
atası olsun. O durumda, eğer d[u] = δ(s, u) ve ayrıt (u, v)gevşetilmişse, gevşemeden sonra elimizde d[v] = δ(s, v) olur. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

30 Doğruluk —Bölüm II Ön kuram. u, s' den v' ye en kısa yolda v' nin
atası olsun. O durumda, eğer d[u] = δ(s, u)ve ayrıt (u, v) gevşetilmişse, gevşemeden sonra elimizde d[v] = δ(s, v) olur. Kanıt. δ(s, v) = δ(s, u) + w(u, v) olduğuna dikkat edin. Gevşetmeden önce d[v] > δ(s, v) olduğunu farzedin. (Diğer türlü, bitirmiştik.) Sonra, d[v] > d[u] + w(u, v) testi başarılı, çünkü d[v] > δ(s, v) = δ(s, u) + w(u, v) = d[u] + w(u, v) ve algoritma d[v] = d[u] + w(u, v) = δ(s, v)' yi ayarlar. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

31 Doğruluk —Bölüm III Teorem. Dijkstra algoritması tüm v ∈ V için
d[v] = δ(s, v) ile sonlanır. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

32 Doğruluk —Bölüm III Teorem. Dijkstra algoritması tüm v ∈ V için
d[v] = δ(s, v) ile sonlanır. Kanıt.v, S' ye eklenirken, her v ∈ V için d[v] = δ(s, v) olduğunu göstermek yeterlidir. Her d[u] > δ(s, u) için u' nun S' ye eklenen ilk tepe olduğunu düşünün.y, s' den u' ya en kısa yol boyunca V – S de ilk tepe olsun, x de onun atası olsun: uu ss xx u' yu eklemeden önceki S. y y November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

33 Doğruluk —Bölüm III(devamı)
S uu ss xx y y Eğer u, belirlenen değişmezi ihlal eden ilk tepe ise d[x] = δ(s, x) elde ederiz . x, S' ye eklendiğinde ayrıt (x, y) gevşetildi ki bu d[y] = δ(s, y) ≤ δ(s, u) < d[u] anlamına gelir. Fakat, bizim u seçimimizle d[u] ≤ d[y] olur. Çelişki. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

34 Dijkstra' nın Analizi while Q ≠ ∅ S ← S ∪ {u} for each v ∈ Adj[u]
do u ← EXTRACT-MIN(Q) S ← S ∪ {u} for each v ∈ Adj[u] if d[v] > d[u] + w(u, v) then d[v] ← d[u] + w(u, v) November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

35 Dijkstra' nın Analizi while Q ≠ ∅ S ← S ∪ {u} for each v ∈ Adj[u] |V |
do u ← EXTRACT-MIN(Q) S ← S ∪ {u} for each v ∈ Adj[u] if d[v] > d[u] + w(u, v) then d[v] ← d[u] + w(u, v) |V | kere November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

36 Dijkstra' nın Analizi while Q ≠ ∅ S ← S ∪ {u} for each v ∈ Adj[u]
do u ← EXTRACT-MIN(Q) S ← S ∪ {u} for each v ∈ Adj[u] if d[v] > d[u] + w(u, v) then d[v] ← d[u] + w(u, v) |V | kere (u)derecesi kere November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

37 Dijkstra' nın Analizi while Q ≠ ∅ do u ← EXTRACT-MIN(Q) (en azı çıkar)
S ← S ∪ {u} |V | kere for each v ∈ Adj[u] if d[v] > d[u] + w(u, v) (u)derecesi kere then d[v] ← d[u] + w(u, v) Tokalaşma önkuramı ⇒ Θ(E) implicit DECREASE-KEY’s. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

38 Dijkstra' nın Analizi while Q ≠ ∅ do u ← EXTRACT-MIN(Q) (en azı çıkar)
S ← S ∪ {u} |V | kere for each v ∈ Adj[u] if d[v] > d[u] + w(u, v) (u)derecesi kere then d[v] ← d[u] + w(u, v) Tokalaşma önkuramı ⇒ Θ(E) implicit DECREASE-KEY’s. Time(süre) = Θ(V·TEXTRACT-MIN + E·TDECREASE-KEY) Not: Prim’in en az kapsayan ağaç algoritmasının çözümlemesinde de aynı formül. November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

39 TEXTRACT-MIN TDECREASE-KEY
Dijkstra' nın Analizi (devamı) Time (süre) = Θ(V)·TEXTRACT-MIN + Θ(E)·TDECREASE-KEY Q TEXTRACT-MIN TDECREASE-KEY November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

40 TEXTRACT-MIN TDECREASE-KEY
Dijkstra' nın Analizi (devamı) Time (süre) = Θ(V)·TEXTRACT-MIN + Θ(E)·TDECREASE-KEY Q TEXTRACT-MIN TDECREASE-KEY dizilim O(V) O(1) O(V2) November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

41 TEXTRACT-MIN TDECREASE-KEY
Dijkstra' nın Analizi (devamı) Time (süre) = Θ(V)·TEXTRACT-MIN + Θ(E)·TDECREASE-KEY Q O(V) O(1) O(lg V) O(lg V) TEXTRACT-MIN TDECREASE-KEY dizilim ikili yığın O(V2) O(E lg V) November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson

42 TEXTRACT-MIN TDECREASE-KEY
Dijkstra' nın Analizi (devamı) Time (süre) = Θ(V)·TEXTRACT-MIN + Θ(E)·TDECREASE-KEY Q TEXTRACT-MIN TDECREASE-KEY dizilim ikili yığın Fibonacci yığını O(V) O(1) O(lg V) O(lg V) O(V2) O(E lg V) O(lg V) O(1) O(E + V lg V) November 14, 2005 Copyright © by Erik D. Demaine and Charles E. Leiserson


"Algoritmalar En kısa yollar I En kısa yolların özellikleri" indir ppt

Benzer bir sunumlar


Google Reklamları