Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.

Benzer bir sunumlar


... konulu sunumlar: "Algoritmalar II Ders 15 En Küçük Örten Ağaçlar."— Sunum transkripti:

1 Algoritmalar II Ders 15 En Küçük Örten Ağaçlar

2 ÖN KÜÇÜK ÖRTEN AĞAÇLAR

3 Örten ağaç A B A B C C E D E D F F
G=(V, E) bağlantılı çizgesinin örten ağacı Bir ağaçtır V kümesinin tüm elemanları bu ağacın düğümleridir G örten ağaç Örten ağaçta |V| - 1 kiriş olur. A B A B C C E D E D F F

4 Örten Ağaçlar Bir çizgenin çok sayida örten ağaci olabilir. Çizge G
G çizgesinin bazı örten ağaçları

5 Tam Çizge 16 tane örten ağaç var

6 Örten ağaçlarin toplam sayisi
n köşeli bir tam çizgenin n (n-2) sayıda örten ağaçı var (Cayley formülü) = Bir yılda *106 saniye var. Bir nanosaniye =(10-9) saniye. Bir yılda *1015 < nanosaniye var. 100 köşeli çizgenin tüm örten ağaçlarını yıldan daha uzun sürede bulabiliriz.(Bir işlemi bir nanosaniyede yapabilirsek)

7 En küçük örten ağaç Giriş:
Yönsüz bağlantılı çizge G = (V, E) and ağırlık fonksiyonu w : E→R, Çıkış: En küçük örten ağaç T : tüm köşeleri birleştiren ve değeri en küçük olan ağaç Açgözlü algoritmalar Genel en küçük ağaç algoritması Kruskal algoritması Prim algoritması

8 AÇGÖZLÜ YAKLAŞİM İÇİN TEMEL
Aşağıdaki teorem doğrudur: Teorem. T ağacı G = (V, E) çizgesinin en küçük örten ağacı, S  V olsun ve (u, v) ∈ E kirişi S kümesindeki köşeleri S – A kümesindeki köşelere birleştiren en küçük ağırlıklı kiriş olsun. Bu durumda (u, v) ∈ T.

9 BÜYÜYEN EN KÜÇÜK ÖRTEN AĞAÇ
Genel algoritma Her adımda en küçük ağaç bir kiriş büyüyerek oluşturulur A kümesi kirişler kümesi olsun ve bu küme bir en küçük örten ağacın kirişlerinin altkümesi olsun Her adımda A kümesinin yukarıdaki özelliğini bozmayacak bir (u, v) kirişi buluyoruz ve A kümesine ekliyoruz: A  {(u, v)} kümesi de bir en küçük örten ağacın kirişler kümesinin altkümesidir (u, v) kirişine güvenli kiriş denir.

10 GENERIC-MST

11 GÜVENLİ KİRİŞ NASİL BULUNUR?
A kümesi bir en küçük örten ağacın kirişler kümesi olan E nin altkümesi, (S, V-S) ise G nin A ya göre bir kesiti olsun. (Yani A daki kirişlerin her iki ucu ya S kümesindedir, ya da V-S kümesindedir.) (u, v) kirişi G nin S kümesindeki köşeleri V-S kümesindeki köşelere birleştiren en küçük ağırlıklı kirişi olsun. Bu durumda (u, v) kirişi A için güvenli kiriş olur.

12 Örnek A={(a,b}, (c, i}, (h, g}, {g, f}}
S={a, b, c, i, e}; V-S = {h, g, f, d}  A ya göre oluşturulabilecek kesitlerden biri (c, f) S den V-S e olan en az ağırlıklı kiriş, yani güvenli kirişdir

13 Kruskal Algoritmasi Kiriş tabanlı algoritmadır Açgözlü strateji:
Kalan kirişler arasında ağırlığı en az olan ve artık seçilmiş kirişlerle döngü oluşturmayacak kirişi seç |V|-1 defa tekrar et

14 Kruskal Algoritmasi Giriş: Ağırlıklı G = (V, E) çizgesi,|V| = n ÇIKIŞ:
G nin örten ağacı T Tüm köşeleri içerir, n-1 kirişi var Kirişlerinin toplam ağırlığı en azdır Algoritma: Boş T kümesinden başla, Her adımda kirişleri artan ağırlık sırasıyla ekle Yeni kirişi kabul edilme şartı: eklenen kiriş bir ağaç kirişi olmalıdır (yani bu kiriş T de döngü oluşturmamalıldır) Bu işleme T de n-1 kiriş olana kadar devam edilir

15 Kruskal Algoritmasi MST-Kruskal(G,w) 1 A ¬ Æ
2 for each vertex v Î V[G] do 3 Make-Set(v) //creates set containing v (for initialization) 4 sort the edges of E 5 for each (u,v)ÎE do 6 if Find-Set(u) ¹ Find-Set(v) then // different component A ¬ A È {(u,v)} Union(Set(u),Set(v)) // merge 9 return A

16 Kruskal Algoritmasi

17 Kruskal’s Algorithm

18 Kruskal’s Algorithm

19 Kruskal’s Algorithm

20 Kruskal's Algorithm // takes O(E) MST-Kruskal(G,w) 1 A ¬ Æ
2 for each vertex v Î V[G] do // takes O(V) 3 Make-Set(v) 4 sort the edges of E // takes O(E lg E) // takes O(E) 5 for each (u,v)ÎE, in nondecreasing of weight do 6 if Find-Set(u) ¹ Find-Set(v) then A ¬ A È {(u,v)} Union(Set(u),Set(v)) 9 return A


"Algoritmalar II Ders 15 En Küçük Örten Ağaçlar." indir ppt

Benzer bir sunumlar


Google Reklamları