Ana Sayfa

Sığ Ağaçlar ve Yoğun Yapraklar: Arama Algoritmalarında Yeni Bir Yaklaşım

1 dk okuma

Satranç motorları Stockfish ve Leela Chess Zero, arama algoritmalarına iki farklı yaklaşım sunar. Stockfish, saniyede yüz milyonlarca pozisyonu ucuz sezgisel yöntemlerle değerlendirerek geniş bir arama yaparken, Leela Chess Zero (AlphaZero'dan türemiştir) çok daha az pozisyon (saniyede 40.000) arar. Ancak Leela, her pozisyonu milyonlarca kendi kendine oynanmış oyunla eğitilmiş derin bir evrişimsel sinir ağı kullanarak daha derinlemesine değerlendirir. Leela'nın sinir ağı, pozisyonu değerlendirmek ve bir sonraki hamleyi belirlemek için SE-ResNet benzeri bir mimariye sahiptir.

Makale, "sığ ağaçlar ve yoğun yapraklar" olarak adlandırılan bu genel stratejiye odaklanıyor: yani daha az pozisyon arayıp her pozisyonda daha fazla hesaplama yapmak. Bu yaklaşım, Conway'in Hayat Oyunu'nda uzay gemileri bulmak için kullanılan programlarda da görülür. ntzfind, derinlik öncelikli arama ve büyük bir bellek içi arama tablosu kullanırken, ikpx2 adlı yeni program Leela Chess Zero'ya benzer bir strateji izler. ikpx2'nin arama ağacı çok daha küçüktür, ancak her düğümde yapılan iş miktarı çok daha fazladır.

ikpx2, mevcut kısmi uzay gemisinin birkaç satır daha uzatılıp uzatılamayacağını belirlemek için bir SAT çözücü (kissat ve CaDiCaL) kullanarak derinlemesine bir ileriye dönük arama yapar ve "çıkmaz sokakları" erkenden tespit eder. Program, belirli bir görev için hangi SAT çözücünün daha uygun olduğunu öğrenmek için temel takviyeli öğrenme kullanır. Bu "sığ ağaçlar ve yoğun yapraklar" stratejisi, arama ilerlemesinin belleğe kolayca sığmasını ve görevlerin bir öncelik kuyruğunda tutulup birden fazla CPU iş parçacığı tarafından paralel olarak çözülmesiyle paralelleştirmeyi kolaylaştırır.

İçgörü

Arama algoritmalarında, az sayıda derinlemesine incelenen durumun, çok sayıda yüzeysel incelenen duruma kıyasla daha verimli ve güçlü sonuçlar verebileceği gösterilmiştir.

Kaynak