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

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

GRAPHS ÖZET.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Veri Yapıları ve Algoritmalar
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Metrik koşullarını sağlıyor mu?
Graf Teorisi Pregel Nehri
Greedy Algorithms.
OLASILIK TEOREMLERİ Permütasyon
Çok Katmanlı Algılayıcı-ÇKA (Multi-Layer Perceptron)
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA DERSİ
Ders notlarına nasıl ulaşabilirim
0-1 Sırt Çantası Problemi
Hİjyenİk El YIkama Normal sabunlar ve antiseptik özellikli sabunlar kullanılabilir. Bu şekilde geçici mikroorganizmalar uzaklaştırılır ya da öldürülür.
Tüm ikililer arasında en kısa yollar
1-a) Şekildeki devrede 5 Gauss yüzeyi belirleyin ve KAY yazın.
ÇEMBER VE DAİRE YUNUS AKKUŞ-2017.
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
Parametrik Olmayan (Non-parametrik) Testler
İleri Algoritma Analizi
BİRİNCİ DERECEDEN İKİ BİLİNMEYENLİ DENKLEMLER
En Kısa Yol Problemleri (Shortest Path Problems)
Derinlik öncelikli arama (Depth-first Search(DFS))
İleri Algoritmalar 2. ders.
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
KAY ve KGY toplu parametreli devrelerde geçerli
Çizge Teorisi ve Algoritmaları
Çizge Algoritmaları 3. ders.
İleri Algoritma Analizi
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Ağırlıksız ikili eşleştirme
SÜREÇ KONTROL Öğr.Grv.Canan AKAY.
İleri Algoritma Analizi
ASAL SAYILAR Nilsu Yurtseven
MİMARLIK BÖLÜMÜ STATİK DERSİ
DÖNGÜLER.
Bölüm 7 İfadeler ve atamalar.
Çizge Teorisi ve Algoritmalari
İleri Algoritma Analizi
B+-Ağaçları.
Kemal AKYOL, Şafak BAYIR, Baha ŞEN
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmaları.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Lagrange İnterpolasyonu:
Sonlu Özdevinirlere Giriş
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
NİŞANTAŞI ÜNİVERSİTESİ
Accelerated Genetics Tarımsal kooperatif Sahibi çiftçiler
S1. Aşağıda Form dizaynı Şekil 1’de verilen Visual Basic projesinde;
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 16 Prim algoritması.
Düzenli Dillerin Kapalılık Özellikleri
MTM216 GÖRSEL PROGRAMLAMA
Derse giriş için tıklayın...
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
İleri Algoritma Analizi
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 16 Prim algoritması.
8. Ders Tüm ikililer arasında en kısa yollar
Rekürensler Rekürens aranan fonksiyonun ve onun daha önceki girişlerdeki değerinin bir arada bulunduğu denklem veya eşitsizliktir. Örneğin, MERGE-SORT.
Çizge Algoritmalari 10. Ders.
Chapter 4 Divide-and-Conquer
Çizge Algoritmalari 6. ders.
Sunum transkripti:

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

Ö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