ders#9: aÇgÖzlÜ algorİtmalaraytugonan.cbu.edu.tr/yzm3207/lecturenotes/yzm3207_ders09.pdf · yzm...

Post on 02-Jun-2020

33 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

YZM 3207- ALGORİTMA ANALİZİ VE TASARIM

DERS#9: AÇGÖZLÜ ALGORİTMALAR

Aç Gözlü Algoritmalar (Greedy )

• Bozuk para verme problemi– Bir kasiyer 48 kuruş para üstünü nasıl verir?

• 25 kuruş, 10 kuruş, 5 kuruş, 1 kuruş

– Hırslı teknik ilk olarak 25 kuruş verir• Geri kalan miktarı en çok o azaltır

– İkinci de 25 kuruş veremez• 10 kuruş verir

– Üçüncüde kalan miktarı en aza indirmek için 10 kuruş verir

– Kalan kısım için 3 adet 1 kuruş verebilir

• Sadece optimizasyon problemlerinde kullanılabilmelerine rağmen genel bir tasarım tekniği olarak kabul edilir.

• Açgözlü algoritmalar ardışık adımlarla bir çözüm oluşturma yaklaşımı izler– O ana kadar oluşturulan kısmi çözüm problemin tam

çözümüne ulaşana kadar her adımda genişletilir

– Atılan her adımda yapılacak seçim:• Problemin kısıtlarına göre uygulanması mümkün olmalıdır

• O adım için tüm mümkün seçenekler arasında en optimal olanı olmalıdır

• Gerçekleştirildikten sonra ki adımlarda değiştirilemez olmalıdır

Aç Gözlü Algoritmalar (Greedy )

Minimum Kapsama Ağacı Problemi• Tüm network türlerinde karşılaşılan bir problem

– N adet noktayı her nokta çifti arasında bir yol olacak şekilde en ucuz maliyetle birleştirmek• Elektrik• Haberleşme• Ulaşım

– Veri setleri içerisindeki noktaları kümeleme için kullanılabilirler• Sınıflandırma problemlerinin çözümünde kullanılabilirler

– Bir graf yapısı ile gösterilebilirler• Notalar düğüm• Ayrıtlar yollar• Maliyetler ise ayrıt ağırlıkları ile ifade edilir

– Bu durumda problem «minimum kapsama ağacı»nın (Minimum Spanning Tree-MST) bulunması olarak nitelenebilir

Minimum Kapsama Ağacı Problemi

• Kapsama Ağacı (Spanning Tree)

– Yönsüz, temaslı bir grafın tüm düğümlerini kapsayan, çevrimsiz, temaslı bir alt grafıdır (Ağaç)

– Grafın ayrıtlarının ağırlıkları varsa minimum tarama ağacı en düşük ağırlıklı kapsama ağacıdır

• Ağacın ağırlığı = Tüm ayrıtlarının ağırlık toplamı

– Minimum Kapsama Ağacı (Minimum SpanningTree – MST) problemi verilen ağırlıklı bir grafınMST’sinin bulunmasıdır

Minimum Kapsama Ağacı Problemi

Prim’in MST Algoritması

• Prim’in alt ağacı ardışık adımlarla genişleterek MST oluşturur

– Başlangıç olarak herhangi bir düğüm seçilir

– Her adımda bulunulan düğüme en yakın (ağaca önceden dahil olmamış) düğüm ağaca dahil edilir

– Eşit mesafede iki düğüm varsa belirlenen kurala göre biri tercih edilir

– n düğüm için n-1 adet iterasyon gerçekleşir

Prim’in MST Algoritması

Örnek

Örnek

Kruskal’ın Algoritması• MST probleminin çözümü için geliştirilmiş açgözlü

başka bir algoritma

– Bu algoritma ağırlıklı, temaslı bir G=(V, E) grafınınMST’sine ayrıt ağırlıkları toplamı en düşük, çevrimselolmayan |V|-1 adet ayrıtı olan bir alt graf olarakoluşturur

– Bu alt graf aynı zamanda bir ağaçtır

– Algoritma ardışık adımlarla ilerler

• Her adımda altgrafı çevrimsel olmayacak şekilde genişletir

• Altgrafa eklenen yeni düğümün temaslı olması gerekmez

Dijkstra Algoritması

• DijkstraAlgoritması– En kısa yol

algoritması

– Komşu düğümlerden en yakın olan seçilerek hedefe ulaşılmaya çalışılır.

top related