Bölüm 4.2 · Simülasyon

A* ile Yol Bulma

← Bölüm 4.2

Hazır.

İncelenen0
Açık0
Yol–
Başlangıç Hedef Açık küme İncelenen Yol Duvar

A* ile Yol Bulma

Hücrelere tıklanarak duvar eklenir ya da kaldırılır; ardından A* çalıştırılınca incelenen hücreler ve sonuçta bulunan en kısa yol görünür.

Kullanım

  • Başlangıç sol üst hücre, hedef sağ alt hücredir. Bir hücreye tıklamak duvarı açar ya da kapatır; sürükleyerek birden çok duvar birlikte çizilebilir ya da silinebilir.
  • Yol Bul aramayı canlandırır. Turuncu hücreler genişletilmiş (kapalı küme), açık renkli hücreler açık kümede bekleyen, mavi hücreler ise bulunan yoldur.
  • İptal animasyonu durdurur, Yolu Temizle arama izini siler ama duvarları korur, Rastgele Duvar ızgaranın yaklaşık %20'sini duvarla doldurur, Boş Izgara tüm duvarları kaldırır.

A* nasıl çalışır

A*, o ana kadar katedilen maliyeti g(n) ile hedefe kalan yolun sezgisel tahminini h(n) birleştirir. Burada sezgisel olarak Manhattan uzaklığı kullanılır; hareket yalnızca yukarı, aşağı, sola ve sağa olduğu için bu uygundur.

Her adımda f(n) = g(n) + h(n) değeri en küçük olan düğüm açık kümeden çıkarılıp genişletilir. Manhattan uzaklığı bu ızgarada kalan gerçek maliyeti hiçbir zaman fazla tahmin etmediğinden (kabul edilebilir ve tutarlı bir sezgiseldir), hedef açık kümeden ilk çıkarıldığında yolu en kısa yoldur.

Karmaşıklık

İkili heap ile çalışma süresi O(E log V)'dir; bu gösterim açık kümede basit doğrusal taramayla gezinir, bu da V hücreli bir ızgarada O(V²) eder. h(n) = 0 alınırsa A*, Dijkstra algoritmasına dönüşür ve çok daha fazla hücre inceler.