Ayrık Matematik - Ağaçları Kapsayan

Bağlı bir yönsüz grafiğin ($ G $) yayılan ağacı, $ G $ 'ın tüm köşelerini minimum düzeyde içeren bir ağaçtır. Bir grafiğin birçok yayılan ağacı olabilir.

Misal

Az yer kaplayan ağaç

Ağırlıklı, bağlantılı ve yönlendirilmemiş bir grafiğin ($ G $) olası her kapsama ağacının ağırlığından daha az veya buna eşit ağırlık atanmış bir kapsayan ağaç, buna minimum kapsayan ağaç (MST) denir. Kapsayan bir ağacın ağırlığı, kapsayan ağacın her bir kenarına atanan tüm ağırlıkların toplamıdır.

Misal

Kruskal Algoritması

Kruskal'ın algoritması, bağlantılı bir ağırlıklı grafik için minimum bir yayılma ağacı bulan açgözlü bir algoritmadır. Bu grafiğin her tepe noktasını içeren bir ağacı bulur ve ağaçtaki tüm kenarların toplam ağırlığı, olası her yayılma ağacından daha az veya ona eşittir.

Algoritma

Step 1 - Verilen grafiğin tüm kenarlarını $ G (V, E) $ kenar ağırlıklarına göre artan sırada düzenleyin.

Step 2 - Grafikten en küçük ağırlıklı kenarı seçin ve şimdiye kadar oluşturulan kapsayan ağaçla bir döngü oluşturup oluşturmadığını kontrol edin.

Step 3 - Döngü yoksa, bu kenarı kapsayan ağaca dahil edin, yoksa atın.

Step 4 - Kapsayan ağaçta $ (V-1) $ sayıda kenar kalana kadar Adım 2 ve Adım 3'ü tekrarlayın.

Problem

Kruskal algoritmasını kullanarak aşağıdaki G grafiği için minimum yayılma ağacını bulmak istediğimizi varsayalım.

Solution

Yukarıdaki grafikten aşağıdaki tabloyu oluşturuyoruz -

Kenar No. Köşe Çifti Kenar Ağırlığı
E1 (a, b) 20
E2 (AC) 9
E3 (a, d) 13
E 4 (M.Ö) 1
E5 (b, e) 4
E6 (b, f) 5
E7 (c, d) 2
E8 (d, e) 3
E9 (d, f) 14

Şimdi tabloyu Kenar ağırlığına göre artan sırada yeniden düzenleyeceğiz -

Kenar No. Köşe Çifti Kenar Ağırlığı
E 4 (M.Ö) 1
E7 (c, d) 2
E8 (d, e) 3
E5 (b, e) 4
E6 (b, f) 5
E2 (AC) 9
E3 (a, d) 13
E9 (d, f) 14
E1 (a, b) 20

Son şekildeki 5 kenarın hepsini aldığımız için algoritmayı durdururuz ve bu minimum uzanan ağaç ve toplam ağırlığı $ (1 + 2 + 3 + 5 + 9) = 20 $.

Prim Algoritması

Prim'in matematikçiler, Vojtech Jarnik ve Robert C. Prim tarafından 1930'da keşfedilen algoritması, bağlantılı bir ağırlıklı grafik için minimum bir yayılma ağacı bulan açgözlü bir algoritmadır. Bu grafiğin her tepe noktasını içeren bir ağacı bulur ve ağaçtaki tüm kenarların toplam ağırlığı, olası her yayılma ağacından daha az veya ona eşittir. Prim'in algoritması yoğun grafiklerde daha hızlıdır.

Algoritma

  • Grafikten rastgele seçilen tek bir tepe noktasıyla minimal yayılma ağacını başlatın.

  • Tüm köşeler ağaca eklenene kadar 3. ve 4. adımları tekrarlayın.

  • Ağacı henüz ağaçta olmayan bir tepe noktasına bağlayan bir kenar seçin, böylece kenarın ağırlığı minimum olur ve kenarın dahil edilmesi bir döngü oluşturmaz.

  • Ağaca bağlandığı seçili kenarı ve tepe noktasını ekleyin.

Problem

Prim algoritmasını kullanarak aşağıdaki G grafiği için minimum yayılma ağacını bulmak istediğimizi varsayalım.

Solution

Burada 'a' tepe noktasıyla başlayıp ilerliyoruz.

Bu minimum uzanan ağaçtır ve toplam ağırlığı $ (1 + 2 + 3 + 5 + 9) = 20 $ 'dır.