Bölüm 4.3 · Simülasyon

Minimum Kapsayan Ağaç

← Bölüm 4.3
MST kenarıincelenenkesimi geçen

Hazır.

 

 

Minimum Kapsayan Ağaç

Bağlantılı, ağırlıklı bir çizge oluşturulur; Prim ve Kruskal algoritmaları adım adım karşılaştırılır.

Kullanım

  • Düğüm sayısı (2–15) girilip Oluştur düğmesine basılır. Düğümler bir halka oluşturur (bu yüzden çizge her zaman bağlantılıdır) ve rastgele ek kirişler eklenir; ağırlıklar 1–20 arasındadır.
  • Düğümler sürüklenerek çizim yeniden düzenlenebilir (algoritma çalışırken değil).
  • Prim Algoritması (0 düğümünden başlar) ya da Kruskal Algoritması çalıştırılır. İptal animasyonu durdurur; hız seçici temposunu değiştirir.
  • Kalın kenarlar ağaca aittir. Prim, ağaç ile kalan düğümler arasındaki kesimi geçen kenarları gösterir; Kruskal incelediği her kenarı gösterir ve döngü kapatacağı için atlanan kenarları işaretler.

Prim algoritması

Bir düğümden başlar ve o anki ağacı yeni bir düğüme bağlayan en ucuz kenarı tekrar tekrar seçer. İkili heap ile O(E log V) sürede çalışır.

Kruskal algoritması

Kenarları en küçük ağırlıktan en büyüğe doğru işler ve bir kenarı yalnızca döngü oluşturmuyorsa ekler. Döngü denetimi union-find yapısıyla (yol sıkıştırma ve ranka göre birleştirme) yapılır; süreyi sıralama belirler: O(E log E).

İki algoritma da kesim özelliği sayesinde doğrudur: herhangi bir kesimi geçen en hafif kenar bir minimum kapsayan ağaca aittir. Birden çok kenarın ağırlığı eşitse iki algoritma farklı ağaçlar seçebilir, ama toplam ağırlık her zaman aynıdır.