A*’ın Garantileri ve Sınırları

Admissible, Consistent, Bellek Sorunu ve Heuristic Tasarımı

Öğr. Gör. Oktay Cesur

2026-02-23

A* ile Nerede Kalmıştık?

  • A* düğümleri \(f(n)=g(n)+h(n)\) ile sıralıyordu
  • \(g(n)\) geçmişte kat edilen gerçek maliyetti
  • \(h(n)\) ise hedefe kalan tahmini maliyetti
  • Bu sayede Greedy’den daha dengeli seçim yapabiliyordu

Peki A* Neden Güvenilir?

  • A* yalnızca hızlı olmak için tasarlanmamıştır
  • Uygun koşullar altında optimal çözüm de bulabilir
  • Bunun anahtarı, kullanılan sezgisel fonksiyonun özellikleridir

Soru:
Her \(h(n)\) tahmini A* için güvenli midir?

Kabul Edilebilir Sezgisel (Admissible)

Bir sezgisel fonksiyon aşağıdaki koşulu sağlıyorsa kabul edilebilir denir:

\[ h(n) \leq h^*(n) \]

  • \(h(n)\) : tahmini kalan maliyet
  • \(h^*(n)\) : gerçek en düşük kalan maliyet

Yani sezgisel fonksiyon asla fazla tahmin yapmaz.

Neden Önemli?

  • Eğer \(h(n)\) fazla tahmin yaparsa,
    • bazı düğümler olduğundan daha kötü görünebilir
    • algoritma optimal çözümü kaçırabilir
  • Eğer \(h(n)\) admissible ise,
    • A* çözüm yolunu gereksiz yere dışlamaz

Tree-Search A* ve Optimalite

  • Eğer \(h(n)\) admissible ise
  • tree-search A* optimal çözüm bulur

Yani:

  • A* ilk bulduğu çözümü değil,
  • gerçekten en düşük maliyetli çözümü döndürür

Tutarlılık (Consistency)

Bir sezgisel fonksiyon aşağıdaki koşulu sağlıyorsa tutarlı denir:

\[h(n) \leq c(n,a,n') + h(n')\]

  • Bu, bir tür üçgen eşitsizliğidir
  • Tahmini mesafe, bir adım gidip devam etme maliyetinden daha büyük olmamalıdır

Sezgisel Fonksiyon Düzenli Davranmalı

Tutarlılık sayesinde:

  • \(f(n)\) değerleri yol boyunca azalmaz
  • Yani A* arama sırasında daha öngörülebilir davranır
  • Aynı düğümü daha iyi maliyetle tekrar tekrar açma ihtiyacı azalır

Graph-Search A* ve Optimalite

Arama tipi Yeterli koşul Sonuç
Tree-search A* Admissible Optimal
Graph-search A* Consistent Optimal
  • Tutarlı her sezgisel aynı zamanda admissible’dır
  • Ama her admissible sezgisel mutlaka tutarlı değildir

Kuş Uçuşu Mesafe Neden İyi Bir Örnek?

  • Bir şehirden Ankara’ya kuş uçuşu mesafe
    • gerçek yol maliyetinden küçük veya eşit olur
  • Bu yüzden genelde admissible bir sezgiseldir
  • Ayrıca çoğu durumda üçgen eşitsizliğini de sağladığı için consistent davranır

A*’ın Asıl Problemi

  • A* iyi seçim yapar
  • Ama bunun bir bedeli vardır:
    • çok sayıda düğüm üretir
    • frontier’ı bellekte tutar

Sonuç:
A* çoğu zaman zamandan önce bellek sınırına takılır.

Zaman ve Bellek Karmaşıklığı

  • Zaman: \(O(b^d)\)
  • Yer: \(O(b^d)\)

Burada:

  • \(b\) : dallanma faktörü
  • \(d\) : çözüm derinliği

Yani problem büyüdükçe hem zaman hem bellek üstel büyür.

Bellek Sorunu İçin Bir Fikir: IDA*

  • IDA* = Iterative Deepening A*
  • Derinlik sınırı yerine \(f\)-maliyeti sınırı kullanır
  • DFS benzeri çalışır
  • Bellek kullanımı yaklaşık \(O(bd)\) düzeyine iner

IDA* Ne Kazandırır, Ne Kaybettirir?

Kazandırır: * Çok daha düşük bellek kullanımı

Kaybettirir: * Aynı düğümleri tekrar tekrar üretme * Bazı durumlarda daha fazla çalışma süresi

Yani:

  • A* → güçlü ama pahalı
  • IDA* → daha hafif ama tekrar üretim maliyeti var

İyi Bir Heuristic Nereden Gelir?

  • Güçlü bir sezgisel fonksiyon aramayı ciddi biçimde hızlandırabilir
  • Ama bunu tasarlamak her zaman kolay değildir
  • Bir yöntem: gevşetilmiş problem kurmak

Gevşetilmiş Problem Fikri

  • Orijinal problemin bazı kısıtlarını kaldır
  • Daha kolay bir problem elde et
  • Bu kolay problemin çözüm maliyetini sezgisel olarak kullan

Bu fikir genelde:

  • hesaplaması daha kolay
  • ama yine de anlamlı bir alt sınır üreten bir \(h(n)\) verir

8-Puzzle Örneği

İki klasik sezgisel:

  • Yanlış yerde taş sayısı
  • Manhattan mesafesi

Manhattan mesafesi genelde daha güçlüdür; çünkü hedefe kalan hareket ihtiyacını daha ayrıntılı yansıtır.

Bu Bölümün Özeti

  • A* yalnızca hızlı değil, uygun koşullarda optimaldir
  • Bunun için sezgisel fonksiyonun özellikleri önemlidir
    • admissible
    • consistent
  • A* güçlüdür ama bellek maliyeti yüksektir
  • IDA* ve benzeri yaklaşımlar bu soruna cevap arar
  • İyi heuristic tasarımı performansı belirleyen ana unsurdur

Sonraki Adım

Şimdiye kadar gördüğümüz tüm arama yöntemlerinde amaç, tek bir ajanın hedefe ulaşmasıydı.

Sıradaki soru:

Eğer ortamda bir rakip varsa ne olur?

Bir sonraki konu: Çekişmeli Arama * minimax * oyun ağacı * alpha-beta budama