Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
0 beğenilme 0 beğenilmeme
1.9k kez görüntülendi

Bir algoritmanın "açgözlü" (greedy) olması ne demek? 

Teorik Bilgisayar Bilimi kategorisinde (1.8k puan) tarafından  | 1.9k kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Tarihin geç olmasına karşın yeni görenler için hızlı bir cevap

Açgözlü algoritma 

iteratif bir algoritmanın her iterasyonda en iyi sonucu seçerek devam etmesidir.

örnek bir ağaç üzerindeki en büyük elemanı BFS ile aradığınızı düşünün

- 45
- -├13
- -│ ├28
- -│ `34
- -`25
- - ├1
- - `2

Eğer bu ağacı greedy yaklaşımı ile ararsanız sonuç 2 çıkacaktır.

çünkü greedy önce roottan başlayacak
45
sonra rootun çocukları arasından en büyüğü seçecek
25
en sonunda da onun çocukları arasından en büyüğünü seçecektir
2

ve sonuç bariz şekilde hatalı çıkacaktır.
ki buna da greedy algoritmaların lokal maximuma/minimuma takılması denir.
greedy sezgisel bir yaklaşımdır ve ancak veri setiniz tamamını arayamayacağınız büyüklükteyse hızlı sonuç almak için kullanılabilecek diğer sezgisellerden biridir. Ancak oldukça ilkeldir bilinmelidir mecbur değilseniz veya gerçekten faydalı olduğu bir nokta göremezseniz uygulanması iyi sonuç vermez 

birde eğer veri setiniz sıralıysa tabiki uygulamanız çok iyi sonuç verecektir.


(25 puan) tarafından 
20,284 soru
21,823 cevap
73,508 yorum
2,570,009 kullanıcı