Çizge Algoritmalari 10. Ders.

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Ayrık Yapılar Algoritma Analizi.
İkili Ağaçlar İkili Arama Ağaçları
Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar
Algoritmalar En kısa yollar I En kısa yolların özellikleri
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
Algoritmalar Ders 14 En Kısa Yollar II Bellman-Ford algoritması
En Küçük Yol Ağacı (Minimum Spanning Tree)
Çizge Algoritmaları.
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
GRAF TEORİSİ Ders 1 TEMEL KAVRAMLAR.
GRAPHS ÖZET.
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
ÇİZGE KURAMI Yılmaz KILIÇASLAN.
Çizge Algoritmaları Ders 2.
İşlem Yönetimi (Kilitlenme)
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Veri Yapıları ve Algoritmalar
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
Dinamik programlama ve Açgözlü algoritma
GrafTeorisine İlişkin Bazı Tanımlar
Tanım: ( Temel Çevreler Kümesi)
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
İleri Algoritmalar 1. ders.
Algoritmalar II Ders 6 Açgözlü Algoritmalar.
Ağırlıksız ikili eşleştirme
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Tüm ikililer arasında en kısa yollar
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
Çizge Algoritmalari 6. ders.
GrafTeorisine İlişkin Bazı Tanımlar
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Maksimum akış.
Çizge gösterimleri G = (V, E) çizgesinin komşuluk listesi gösterimi
MAKSİMUM AKİŞ PROBLEMİ
Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.
En Kısa Yol Problemleri (Shortest Path Problems)
Derinlik öncelikli arama (Depth-first Search(DFS))
G grafının aşağıdaki özellikleri sağlayan Ga alt grafına çevre denir:
İleri Algoritma Analizi
Ağırlıksız ikili eşleştirme
9. Ders Tüm ikililer arasında en kısa yollar
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmalari 5. ders.
NİŞANTAŞI ÜNİVERSİTESİ
Çizge Algoritmalari 4. ders.
İleri Algoritmalar Ders 3.
Algoritmalar II Ders 16 Prim algoritması.
Çizge Teorisi ve Algoritmalari
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Çizge Algoritmaları 3. ders.
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 16 Prim algoritması.
Bölüm 5 Azalt ve yönet (Decrease-and-Conquer)
10. Ders Floyd-Warshal algoritması
Çizge Algoritmalari 6. ders.
Graf Teorisi (Graph Theory)
Sunum transkripti:

Çizge Algoritmalari 10. Ders

Ön küçük örten ağaçlar

Ö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

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

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

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

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ı

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.

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.

GENERIC-MST

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.

Ö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

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

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

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 7 A ¬ A È {(u,v)} 8 Union(Set(u),Set(v)) // merge 9 return A

Kruskal Algoritmasi

Kruskal’s Algorithm

Kruskal’s Algorithm

Kruskal’s Algorithm

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 7 A ¬ A È {(u,v)} 8 Union(Set(u),Set(v)) 9 return A

Prim Algoritmasi Köşe tabanlı algoritmadır. Verilen başlangıç köşe en küçük örten ağacın kökü olur. Her adımda örten ağaca yeni bir köşe eklenir.

Prim’s Algorithm updating keys MST-Prim(G,w,r) //G: graph with weight w and a root vertex r 1 for each u Î V[G]{ 2 key[u] ¬ ¥ p[u] ¬ NULL // parent of u } 4 key[r] ¬ 0 5 Q = BuildMinHeap(V,key); // Q – vertices out of T 6 while Q ¹ Æ do 7 u ¬ ExtractMin(Q) // making u part of T 8 for each v Î Adj[u] do 9 if v Î Q and w(u,v)  key[v] then 10 p[v] ¬ u 11 key[v] ¬ w(u,v) updating keys

Örnek

Örnek

Örnek

Örnek

Örnek

Örnek

Örnek Extract_min from Q

Örnek

Örnek

Örnek

Örnek

Örnek

Örnek

PRİM ALGORİTMASI İŞLEM SÜRESİ İşlem süresi Q nün nasıl yapıldığına bağlıdır İkili heap için: O(E lg V)