İçeriğe geç
parazade
Yapay Zeka

Arama Algoritması Nedir?

İngilizce: Search Algorithm

Yayın: · Son güncelleme:

Arama Algoritması Nedir? Kısaca

Arama algoritması, bir problemin olası durumları arasında sistematik biçimde gezinerek başlangıç durumundan hedef duruma ulaşan bir çözüm ya da yol bulan yöntemdir. Yapay zekâda planlama ve problem çözmenin temel araçlarındandır.

Arama Algoritması nedir?
İçindekiler
  1. Arama algoritması nedir?
  2. Başlıca türleri
  3. Nelere dikkat etmeli?

Arama algoritması (search algorithm), bir problemi "durumlar" ve bu durumlar arasındaki "hamleler" olarak modelleyip hedefe ulaştıran hamle dizisini bulan yöntemdir. Bir labirentten çıkış yolu, bir bulmacanın çözümü ya da iki şehir arasındaki rota, arama problemi olarak ifade edilebilir.

Arama algoritması nedir?

Bir arama probleminin dört temel parçası vardır: başlangıç durumu, yapılabilecek hamleler, hamlelerin maliyeti ve hedef testi. Algoritma bu yapı üzerinde bir arama ağacı kurar ve düğümleri belirli bir sıraya göre genişletir. Hangi sırayı izlediği, algoritmanın türünü belirler. (Bu anlamdaki arama, web arama motorlarındaki "aramadan" farklıdır.)

Başlıca türleri

Tür Örnek Özellik
Bilgisiz arama Genişlik öncelikli, derinlik öncelikli Hedef hakkında ek bilgi kullanmaz
Bilgili arama A* algoritması, açgözlü arama Hedefe uzaklığı sezgisel olarak tahmin eder
Yerel arama Tepe tırmanma, benzetimli tavlama Tek bir çözümü adım adım iyileştirir
Rakipli arama Minimax, Monte Carlo ağaç araması Rakibin hamlelerini de hesaba katar

Nelere dikkat etmeli?

Arama algoritmaları değerlendirilirken dört soruya bakılır: Çözüm varsa bulur mu (tamlık)? En iyi çözümü bulur mu (optimallik)? Ne kadar sürer (zaman karmaşıklığı)? Ne kadar bellek ister (alan karmaşıklığı)? Örneğin genişlik öncelikli arama en kısa adım sayılı çözümü bulur ama çok bellek tüketir; derinlik öncelikli arama az bellek kullanır ama sonsuz dallarda kaybolabilir. Gerçek problemlerde durum sayısı çok hızlı büyüdüğü için iyi bir sezgisel tahmin, aramanın pratikte uygulanabilir olup olmamasını belirler.

Sıkça Sorulan Sorular

Bilgisiz ve bilgili arama arasındaki fark nedir?

Bilgisiz arama, hedefe ne kadar yaklaşıldığını bilmeden düğümleri sabit bir sırayla inceler. Bilgili arama ise hedefe kalan mesafeyi tahmin eden bir sezgisel fonksiyon kullanarak daha umut verici yollara öncelik verir.

Arama algoritmaları nerelerde kullanılır?

Navigasyon ve rota planlama, oyunlarda yapay rakipler, robot hareket planlama, bulmaca çözme ve çizelgeleme gibi birçok alanda kullanılır.

İlgili terimler

A* Algoritması(A* Search Algorithm)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.Sezgisel Yöntem(Heuristic)Sezgisel yöntem (heuristic), bir problemi kesin ve en iyi çözümü garanti etmeden, deneyime dayalı kestirme kurallar ya da tahminler kullanarak makul sürede yeterince iyi bir sonuca ulaştıran problem çözme yaklaşımıdır.Minimax Algoritması(Minimax Algorithm)Minimax algoritması, iki oyunculu sıfır toplamlı oyunlarda rakibin her zaman kendisi için en iyi hamleyi yapacağını varsayarak, olası en kötü sonucu en iyi hâle getiren hamleyi seçen bir karar ve arama yöntemidir.Algoritma(Algorithm)Algoritma, belirli bir problemi çözmek ya da bir görevi yerine getirmek için izlenen, sırası ve sonu belli, açık ve uygulanabilir adımlar dizisidir. Bilgisayar programları ve yapay zekâ sistemleri algoritmalar üzerine kuruludur.Benzetimli Tavlama(Simulated Annealing)Benzetimli tavlama (simulated annealing), metallerin ısıtılıp yavaşça soğutulmasından esinlenen ve başta daha kötü çözümleri de belirli bir olasılıkla kabul ederek yerel tuzaklardan kaçmaya çalışan olasılıksal bir optimizasyon yöntemidir.Monte Carlo Ağaç Araması(Monte Carlo Tree Search)Monte Carlo ağaç araması (MCTS), olası hamleleri tek tek hesaplamak yerine çok sayıda rastgele simülasyon yaparak hangi hamlelerin daha sık iyi sonuca götürdüğünü ölçen ve aramayı umut verici dallara yoğunlaştıran karar verme algoritmasıdır.