Prim Algoritması ağırlıklandırılmış ve bağlı bir çizge üzerinde (minimum spanning tree) problemine çözüm bulma algoritmalardan birisidir.
Çözüm ve sözdekod
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 bir çizgeye uygulandığında sonucu bağlı bileşenlerden yalnız birisi için bulur. Bu algoritma 1930 yılında matematikçi tarafından bulunmuştur. Daha sonra bağımsız olarak 1957'de bilgisayar bilimcisi ve 1959'da 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
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. | |
İ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. | |
Seçilecek bir sonraki düğüm D veya A'ya en yakın olanı. B 7 uzakta (A dan), E 15 ve F 6. En yakın 6 o yüzden F düğümünü ve DF ayrıtını işaretliyoruz. | |
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. | |
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ı. | |
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. | |
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. Toplam ağırlığı ise burada 39 oldu. |
Kaynakça
- Ingilizce Wikepedia "Prim's algorithm" maddesi 24 Ekim 2021 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
Ayrıca bakınız
- problemi
Dış bağlantılar
Wikimedia Commons'ta Prim algoritması ile ilgili ortam dosyaları bulunmaktadır. |
- Prim algoritması için animasyonlu çözüm 6 Eylül 2011 tarihinde Wayback Machine sitesinde .
- Pythom programi kullanarak "Minimum örten ağaç" problemi gosterimi, Ronald L. Rivest 9 Ağustos 2011 tarihinde Wayback Machine sitesinde .
- Prim Algoritmasi uygulanmasi icin Open Source Java Grafik paketi 31 Temmuz 2011 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Prim Algoritmasi agirliklandirilmis ve bagli bir cizge uzerinde minimum spanning tree problemine cozum bulma algoritmalardan birisidir Cozum ve sozdekodAyritlarin bir alt kumesini tum dugumleri kapsayacak ve ayritlarin toplam agirligini minimum yapacak sekilde bulur Bagli olmayan bir cizgeye uygulandiginda sonucu bagli bilesenlerden yalniz birisi icin bulur Bu algoritma 1930 yilinda matematikci tarafindan bulunmustur Daha sonra bagimsiz olarak 1957 de bilgisayar bilimcisi ve 1959 da tarafindan tekrar bulunmustur Bu nedenle bu algoritmaya DJP veya Jarnik algoritmasi da denir Sozdekod u asagidaki gibi verilebilir function Prim cizge N T kapsayan agac B eklenmis dugumler B lt rastgele bir dugum while B lt gt N do e u v seklinde en hafif ayriti bul oyle ki u B nin elemani olsun ve v N B nin elemani olsun T lt T U e B lt B U v endwhile return TOrnekBu cizgenin orijinal hali Ayritlarin uzerindeki sayilar agirliklari Ayritlardan hicbiri henuz secili degil ve D dugumu baslangic dugumu olarak rastgele secildi Ikinci olarak secilecek dugum D ye en yakin olani A 5 B 9 E 15 ve F 6 uzaklikta Bunlardan en kucugu 5 dolayisiyla A dugumunu ve DA ayritini isaretliyoruz Secilecek bir sonraki dugum D veya A ya en yakin olani B 7 uzakta A dan E 15 ve F 6 En yakin 6 o yuzden F dugumunu ve DF ayritini isaretliyoruz Algoritma ayni sekilde devam ediyor B dugumu A dan 7 uzakta ve isaretli Burada DB ayriti kirmizi olarak isaretlendi cunku daha once hem B hem de D dugumleri isaretlenmisti Bu yuzden bu ayrit kullanilamaz Bu durumda C E ve G den birini secebiliriz C B den 8 uzakta E B den 7 uzakta ve G F den 11 uzakta En yakin E oldugu icin onu ve EB ayritini isaretliyoruz Diger iki ayrit kirmizi cunku onlari baglayan dugumler kullanildi Burada sadece C ve G dugumlerini inceleyebiliriz C E den 5 uzakta ve G ise 9 uzakta C yi ve EC ayritini seciyoruz Ayrica BC yi de kirmizi olarak isaretliyoruz G dugumu kalan son dugum F den 11 uzakta ve E den 9 uzakta Bu nedenle E yi ve EG yi isaretliyoruz Tum dugumleri ekledigimize gore en hafif kapsayan agac yesil olarak gozukuyor Toplam agirligi ise burada 39 oldu KaynakcaIngilizce Wikepedia Prim s algorithm maddesi 24 Ekim 2021 tarihinde Wayback Machine sitesinde arsivlendi Ingilizce Ayrica bakinizproblemiDis baglantilarWikimedia Commons ta Prim algoritmasi ile ilgili ortam dosyalari bulunmaktadir Prim algoritmasi icin animasyonlu cozum 6 Eylul 2011 tarihinde Wayback Machine sitesinde Pythom programi kullanarak Minimum orten agac problemi gosterimi Ronald L Rivest 9 Agustos 2011 tarihinde Wayback Machine sitesinde Prim Algoritmasi uygulanmasi icin Open Source Java Grafik paketi 31 Temmuz 2011 tarihinde Wayback Machine sitesinde