Greedy, A* ve Temel Fikirler
2026-02-16
Bu yapı üzerinde bilgisiz arama algoritmalarını gördük:
* BFS
* DFS
* UCS
* IDS
* Böylece çözümü sistematik olarak aramayı mümkün hale getirdik
1
İst→Ank için \(1000\,km\) yol yapılması makul mü?Tek→İps→Blk→Krm→Krs→Erz→Ank rotası makul müdür?
h(n)h(n): n düğümünden hedefe olan tahmini maliyeth(goal) = 0Bir sezgisel fonksiyon h(n) verildiğinde, arama algoritmaları düğümleri bir değerlendirme fonksiyonu f(n) ile sıralar.
Açgözlü en iyi ilk arama (Greedy best-first)
f(n) = h(n)
→ Hedefe en yakın görünen düğüm seçilir.
A*
f(n) = g(n) + h(n)
→ Gerçek maliyet (g) ve tahmini kalan maliyet (h) birlikte kullanılır.
Her iki algoritmada da frontier bir öncelik kuyruğu olarak tutulur ve en küçük f(n) değerine sahip düğüm genişletilir.
f(n) = h(n)h(n) değerine sahip düğüm genişletilirÖrnek akış (Greedy):
İstanbul → Bolu → Ankara
Toplam maliyet: 650 km
Daha kısa rota:
İstanbul → Bursa → Eskişehir → Ankara
Toplam maliyet: 550 km
Tam mı? Hayır — döngülere takılabilir
Düzce düğümüne ulaşırsak Düzce-Adap döngüsüne sıkışırdık.Optimal mi? Hayır — ilk bulduğu çözüm en kısa olmayabilir
Zaman: O(b^m) (kötü durumda)
Yer: O(b^m) — tüm sınırı bellekte tutar
Avantaj: İyi sezgiyle hızlı sonuç verebilir
Geçmiş maliyeti (g(n)) dikkate almaz
Kısa vadeli avantaja odaklanır, uzun vadede kötü olabilir
Değerlendirme fonksiyonu: f(n) = g(n) + h(n)
g(n): başlangıçtan n’ye gerçek maliyeth(n): n’den hedefe tahmini maliyetf(n): n üzerinden giden yolun tahmini toplam maliyetiFrontier’dan en küçük f(n) değerine sahip düğüm seçilir
Animasyon: A*’ın UCS’den farkı — Bursa (f=470) Tekirdağ’dan (f=550) önce açılır.
Örnek: İstanbul → Ankara * İst → Bol → Ank (650 km) önce üretilir * İst → Bur → Kut → Esk → Ank (550 km) sonra üretilir
Eğer üretme anında test etseydik, 650 km’lik çözümü döndürür, optimali kaçırırdık.