Bilgisiz Arama

BİM444 — Hafta 3

Öğr. Gör. Oktay Cesur

2026-02-16

Bilgisiz Arama Algoritmaları

BFS — Breadth-First Search (Enine Arama)

  • Fikir: Katman katman genişle — bir derinlikteki tüm düğümler bitmeden sonraki derinliğe geçme
  • Veri yapısı: FIFO kuyruğu — en eski (en sığ) düğüm önce çıkar
  • Tam: Evet (b sonluysa) · Optimal: Evet (adım maliyetleri eşitse)
  • Zaman: \(O(b^d)\) · Yer: \(O(b^d)\)— tüm sınırı bellekte tutar

BFS — Bellek Tablosu

Derinlik Düğüm Süre Bellek
\(2\) \(110\) \(0.11\,\text{ms}\) \(107\,\text{KB}\)
\(6\) \(10^6\) \(1.1\,\text{s}\) \(1\,\text{GB}\)
\(8\) \(10^8\) \(2\,\text{dk}\) \(103\,\text{GB}\)
\(10\) \(10^{10}\) \(3\,\text{saat}\) \(10\,\text{TB}\)
\(12\) \(10^{12}\) \(13\,\text{gün}\) \(1\,\text{PB}\)

UCS — Uniform-Cost Search (En Düşük Maliyetli Arama)

  • Fikir: En düşük toplam yol maliyetine sahip düğümü önce genişlet
  • Değerlendirme: \(g(n)\) — başlangıçtan n düğümüne kadar biriken gerçek maliyet
  • Veri yapısı: Öncelik kuyruğu
  • Tam: Evet (adım maliyetleri pozitifse) · Optimal: Evet
  • Zaman / Yer: \(O\!\left(b^{1+\lfloor C^*/\varepsilon \rfloor}\right)\)

Derinlik Sınırlı Arama

  • DFS’nin sonsuz yol sorununa basit çözüm: ℓ derinlik sınırı koy
  • ℓ < d ise hedefi kaçırırsınız
  • Tam değil, optimal değil (ℓ doğru seçilmezse)

Çift Yönlü Arama

  • Fikir: İki arama eş zamanlı — başlangıçtan ileri, hedeften geri
  • Sınırlar kesişince çözüm bulundu
  • \(b^d\) yerine \(2 \times b^{d/2}\) — zaman ve yer: \(O(b^{d/2})\)
  • \(d=6\), \(b=10\): BFS=\(1{,}111{,}110\) düğüm · Çift yönlü=\(2{,}220\) düğüm

Karşılaştırma Tablosu

Yöntem Tam? Optimal? Zaman Yer
BFS Evet Evet† \(O(b^d)\) \(O(b^d)\)
Uniform-Cost Evet Evet \(O(b^{C^*/\varepsilon})\) \(O(b^{C^*/\varepsilon})\)
DFS Hayır Hayır \(O(b^m)\) \(O(bm)\)
Derinlik Sınırlı Hayır Hayır \(O(b^\ell)\) \(O(b\ell)\)
IDS Evet Evet† \(O(b^d)\) \(O(bd)\)
Çift Yönlü Evet Evet† \(O(b^{d/2})\) \(O(b^{d/2})\)