A* Algoritması Nedir?
İngilizce: A* Search Algorithm
Yayın: · Son güncelleme:
A* Algoritması Nedir? Kısaca
A* algoritması, bir başlangıç noktasından hedefe giden en düşük maliyetli yolu bulmak için şimdiye kadarki gerçek maliyeti ve hedefe kalan mesafenin sezgisel tahminini birleştiren, yaygın kullanılan bir arama algoritmasıdır.

A* algoritması (A-star), bir haritada ya da grafikte iki nokta arasındaki en kısa ya da en ucuz yolu bulmak için kullanılan bilgili bir arama algoritmasıdır. 1968'de Peter Hart, Nils Nilsson ve Bertram Raphael tarafından yayımlandı ve bugün oyunlardan robotik yol planlamaya kadar çok yaygın kullanılır.
A* algoritması nedir?
A*, aramayı rastgele genişletmek yerine hedefe en umut verici görünen noktalardan devam eder. Bunun için her nokta (düğüm) için bir puan hesaplar:
f(n) = g(n) + h(n)
- g(n): Başlangıçtan bu düğüme kadar gerçekten harcanan maliyet.
- h(n): Bu düğümden hedefe kalan maliyetin sezgisel tahmini, örneğin kuş uçuşu mesafe.
- f(n): Bu düğümden geçen bir yolun toplam tahmini maliyeti.
Nasıl çalışır?
- Başlangıç düğümü "açık listeye" eklenir.
- Açık listeden f değeri en düşük düğüm seçilir; hedefse arama biter.
- Seçilen düğümün komşuları için g, h ve f hesaplanır; daha iyi bir yol bulunduysa kayıt güncellenir.
- İncelenen düğüm "kapalı listeye" alınır ve döngü sürer.
Varsayımsal bir örnek: Bir oyunda karakterin duvarlarla dolu bir labirentte hedefe ulaşması gerekiyorsa A*, kuş uçuşu mesafeyi tahmin olarak kullanıp gereksiz yönleri büyük ölçüde atlayarak yolu bulur.
Nelere dikkat etmeli?
A*'ın en kısa yolu bulmayı garanti etmesi için sezgisel tahminin gerçek maliyeti asla abartmaması (kabul edilebilir olması) gerekir. Tahmin ne kadar isabetliyse arama o kadar hızlanır. Çok büyük haritalarda açık liste büyüyerek fazla bellek tüketebilir; bu yüzden pratikte bellek dostu türevleri de kullanılır.
Sıkça Sorulan Sorular
A* algoritması ile Dijkstra algoritması arasındaki fark nedir?
Dijkstra yalnızca gerçek maliyete (g) bakar ve her yöne eşit genişler. A* buna hedefe kalan mesafenin tahminini (h) ekleyerek aramayı hedefe yönlendirir ve genellikle daha az düğüm inceler.
A* her zaman en kısa yolu bulur mu?
Sezgisel tahmin gerçek kalan maliyeti hiçbir zaman abartmıyorsa evet. Tahmin abartılıysa daha hızlı çalışabilir ama en kısa yolu bulamayabilir.