C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Prim Algoritması

  • Konuyu başlatan Konuyu başlatan DeepSubjecT
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 1
  • Görüntüleme Görüntüleme 460

DeepSubjecT

Level 8
Fahri Üye
TM Üye
Katılım
4 Nis 2013
Konular
1,555
Mesajlar
2,936
Online süresi
15h 13m
Reaksiyon Skoru
156
Altın Konu
0
TM Yaşı
13 Yıl 2 Ay 5 Gün
Başarım Puanı
221
MmoLira
71
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Prim Algoritması ağırlıklandırılmış ve bağlı bir çizge üzerinde minimum örten ağaçminimum spanning tree) bulan algoritmalardan birisidir. Ayrıtların bir alt kümesini, tüm düğümleri kapsayacak ve ayrıtların toplam ağırlığını (minimum yapacak şekilde bulur. Bağlı olmayan bie çizgeye uygulandığında sonucu bağlı bileşenlerden yalnız birisi için bulur. Bu algoritma 1930 yılında matematikçi Vojtech Jarnik tarafından bulunmuştur. Daha sonra bağımsız olarak 1957'de bilgisayar bilimcisi Robert C. Prim ve 1959'da Dijkstra tarafından tekrar bulunmuştur. Bu nedenle bu algoritmaya DJP veya Jarnik algoritması da denir.

Sözdekod'u aşağıdaki gibi verilebilir:

function Prim(çizge N)
T : kapsayan ağaç
B : eklenmiş düğümler
B <- rastgele bir düğüm
while B<>N do
e = (u,v) şeklinde en hafif ayrıtı bul oyle ki u B'nin elemanı olsun ve v N\B 'nin elemanı olsun
T <- T U {e}
B <- B U {v}
endwhile
return T


Örnek

200pxprimalgorithm0svgwg3.png


Bu çizgenin orijinal hali. Ayrıtların üzerindeki sayılar ağırlıkları. Ayrıtlardan hiç biri henüz seçili değil ve D düğümü başlangıç düğümü olarak rastgele seçildi.

200pxprimalgorithm1svghr5.png


İkinci olarak seçilecek düğüm D'ye en yakın olanı. A 5 , B 9, E 15, ve F 6 uzaklıkta. Bunlardan en küçüğü 5 dolayısıyla A düğümünü ve DA ayrıtını işaretliyoruz.

200pxprimalgorithm2svguk4.png


Seçilecek bir sonraki düğüm D veya A'ya en yakın olanı. B 9 uzakta (D den), E 15, ve FF düğümünü ve DF ayrıtını işaretliyoruz.
6. En yakın 6 o yüzden

200pxprimalgorithm3svgre0.png


Algoritma aynı şekilde devam ediyor. B düğümü A'dan 7 uzakta ve işaretli. Burada DB ayrıtı kırmızı olarak işaretlendi çünkü daha önce hem B hem de D düğümleri işaretlenmişti. Bu yüzden bu ayrıt kullanılamaz.

200pxprimalgorithm4svgnb8.png


Bu durumda C, E ve G'den birini seçebiliriz. C, B'den 8 uzakta, E, B'den 7 uzakta ve G, F'den 11 uzakta. En yakın E olduğu için onu ve EB ayrıtını işaretliyoruz. Diğer iki ayrıt kırmızı çünkü onları bağlayan düğümler kullanıldı.

200pxprimalgorithm5svgtv0.png


Burada sadece C ve G düğümlerini inceleyebiliriz. C, E'den 5 uzakta ve G ise 9 uzakta. C'yi ve EC ayrıtını seçiyoruz. Ayrıca BC'yi de kırmızı olarak işaretliyoruz.

200pxprimalgorithm6svgoc5.png


G düğümü kalan son düğüm. F'den 11 uzakta ve E'den 9 uzakta. Bu nedenle E'yi ve EG'yi işaretliyoruz. Tüm düğümleri eklediğimize göre en hafif kapsayan ağaç yeşil olarak gözüküyor. Toplan ağırlığı ise burada 39 oldu.
 
Paylaşımınız için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst