1 Ocak 2011 Cumartesi

Kruskal Algoritması

Kruskal algoritması, bir grafın tüm düğümlerinin en kısa şekilde dolaşılmasını amaçlar.

Her seferinde en iyi kenarın seçilmesi esasına dayalıdır. n kenarlı bir graf için herhangi bir düğümle başlanır ve en kısa yol buna eklenir. Döngü oluşturmayacak şekilde (n-1) kenar eklenene kadar devam edilir. Aynı değerli kenarlarda seçim keyfi yapılabilir. Düğümlerin birleştirilme işlemine en az maliyetli kenardan başlanır, kalan kenarlar arasından en az maliyetlisi seçilerek devam edilir.

Bir örnek üzerinde bu algoritmayı uygulayalım:

__________________________________________________________________________
  * Orijinal graf aşağıdaki gibi olsun:

Prim Algorithm 0.svg 

__________________________________________________________________________ 
  * Algoritmada önce en kısa kenarlar belirlenir. Ve uygun olan seçilir. Aynı uzunlukta kenarlar varsa rasgele seçim yapılır. Yukarıdaki şekilde de görüldüğü gibi AD ve CE kenarları eşit uzunluklara sahip en kısa kenarlardır. Bunlardan AD gelişigüzel seçilebilir. Seçim aşağıda yeşil renk ile belirtilmiştir:

Kruskal Algorithm 1.svg 

__________________________________________________________________________
  * AD seçildikten sonra kalan kenarlar arasında, bir döngü oluşturmayacak şekilde seçilebilecek en kısa kenar CE kenarıdır. Bu nedenle bir sonraki seçim bu kenar olacaktır:

Kruskal Algorithm 2.svg 

__________________________________________________________________________
  * Kalan kenarlar incelendiğinde, en kısa olan kenarın, 6 birim uzunluğu ile DF olduğu görülmektedir. Ayrıca herhangi bir çevrim de oluşturmamaktadır. Bu nedenle yeni seçim bu kenar olacaktır:

Kruskal Algorithm 3.svg 

__________________________________________________________________________
  * Geriye kalan kenarlar tekrar incelendiğinde, kalan en kısa kenarların 7 birim uzunluğu ile AB ve BE olduğu görülmektedir. Bunlardan AB kenarı seçilebilir:

Kruskal Algorithm 4.svg

    AB kenarı seçildikten sonra, şekil incelendiğinde artık BD kenarının kullanılamayacağı görülür. Çünkü sonraki adımlarda BD kenarı seçilirse ABD bir çevrim oluşturmaktadır. Kruskal algoritmasının şartlarından biri de seçimlerin bir çevrim, döngü oluşturmamasını gerektirmektedir. Bu nedenle bu kenar kırmızı ile belirtilmiştir.
__________________________________________________________________________
  * Şekil incelendiğinde, en kısa kenarın BE kenarı olduğu görülmektedir:

Kruskal Algorithm 5.svg

    BE kenarı seçildikten sonra, BC, DE, ve FE kenarlarının da, birer çevrim oluşturabileceği görülmektedir. Bu nedenle bu kenarlar da ilerleyen adımlarda kullanılamayacaktır.
__________________________________________________________________________
  * Geriye sadece EG ve FG kenarları kalmaktadır. Bu kenarlardan en kısa olan, 9 birim uzunluğundaki EG seçilir.

Kruskal Algorithm 6.svg 

__________________________________________________________________________

  * Seçilebilecek kenar kalmamıştır. İşlem sona erer.

__________________________________________________________________________
Kaynaklar:
__________________________________________________________________________

Hiç yorum yok :

Yorum Gönder