Yanıtlar:
tl; dr:
Bu algoritmaların hiçbiri modern çalışma için pratik değildir, ancak pedagojik olarak başlamak için iyi yerlerdir.
Her zaman çıplak minimax aramasında Alpha-Beta budama kullanmayı tercih etmelisiniz.
Yararlı bir sezgisel bulursanız, bir tür sezgisel rehberli arama kullanmayı tercih etmelisiniz. Yararlı bir sezgisel tarama yapmak genellikle çok fazla alan bilgisi gerektirir.
Monte Carlo Ağacı aramasını iyi bir buluşsal yöntemden yoksun olduğunuzda, hesaplama kaynaklarının sınırlı olduğu ve hataların gerçek dünyadan daha büyük sonuçları olmayacağı durumlarda kullanmayı tercih etmelisiniz.
Daha fazla detay:
Minimax araştırmasında çok zeki olmaya çalışmayız. Sadece standart bir dinamik programlama yaklaşımı kullanıyoruz. Eğer oyunun sonuna yaklaşırsak, fark hamlelerinin değerini anlamak kolaydır (oyun bir sonraki hamlede sona ereceğinden, çok ileriye bakmak zorunda değiliz). Benzer şekilde, rakibimizin oyunun son hamlesinde ne yapacağını bilersek, ikinci hamlede ne yapmamız gerektiğini anlamak kolaydır. Etkili bir şekilde ikinci son hamleyi daha kısa bir oyunun son hamlesi olarak değerlendirebiliriz. Daha sonra bu işlemi tekrarlayabiliriz. Bu yaklaşımı kullanmak, standart geniş biçimli bir oyunda en iyi stratejileri ortaya çıkarmak için kesindir, ancak en basit oyunlar dışındaki herkes için mümkün olmayan her hareketi dikkate almamızı gerektirecektir.
Alfa-Beta budaması Minimax aramasında sıkı bir gelişmedir. Bazı hareketlerin diğerlerinden daha kötü olduğu gerçeğinden faydalanır. Örneğin, satrançta, o pozisyondan başka şeyler yapabilseniz bile, beni mat arkadaşa koyma fırsatı verecek herhangi bir hareketi düşünmem gerekmiyor . Bir hamlenin kayba yol açabileceğini gördüğümde, o noktadan sonra başka neler olabileceğini düşünmeye zahmet etmeyeceğim. Gidip başka şeylere bakacağım. Bu algoritma da doğru sonucu vereceğinden emindir ve daha hızlıdır, ancak yine de uygulamadaki hareketlerin çoğunu dikkate almalıdır.
Bu tür oyunları tam olarak çözmenin aşırı hesaplama maliyetini aşmanın iki yaygın yolu vardır:
Sezgisel kullanım (A * araması pedagojik amaçlar için alışılmış bir algoritmadır, ancak Quiescence araması 2 oyunculu oyunda benzer bir fikirdir). Bu sadece oyunun durumunun değerini tahmin eden bir fonksiyondur . Bir oyundaki tüm hareketleri göz önünde bulundurmak yerine, ilerideki sonlu mesafeye doğru hareket etmeyi düşünebilir ve daha sonra sezginin değerini, ulaştığınız durumların değerini değerlendirmek için kullanabilirsiniz. Buluşsal yöntem tutarlıysa (esas olarak: her zaman devletlerin kalitesini abartırsa ), bu hala doğru cevabı verecektir, ancak pratikte muazzam hızlanmalarla.
Rollouts'u kullanın (Monte Carlo Ağacı Arama gibi). Temel olarak, her hamleyi düşünmek yerine, rastgele hareket eden oyuncular arasında birkaç bin simüle oyun oynayın (bu, tüm olası hamleleri düşünmekten daha hızlıdır). Durumlara, ondan başlayarak oyunların ortalama kazanma oranına eşit bir değer atayın. Bu doğru cevabı vermeyebilir, ancak bazı oyunlarda güvenilir bir şekilde çalışır. Genellikle tek başına kullanmak yerine daha kesin tekniklerin bir uzantısı olarak kullanılır.
Not: Sadece bu üç algoritmayı seçmemizin nedeni, onları anlamada elimdeki zamana bağlıydı. Küçük bir araştırmadan, bu algoritmaların temel olarak minimax algoritmasına girildiğini buldum. Eğer birini anlayabilirsem, diğer ikisi yerine yerleşecektir.
Bu bağlamda Minimax ile başlamayı tavsiye ederim . Üç algoritmadan Minimax en kolay anlaşılır yöntemdir.
Alpha-Beta , diğer cevaplarda da belirtildiği gibi, Minimax'ın üstünde katı bir gelişmedir. Minimax temel olarak Alpha-Beta uygulamasının bir parçasıdır ve Alpha-Beta'yı iyi anlamak için yine de Minimax'ı iyi anlamak gerekir. Minimax'ı anladıktan ve uyguladıktan sonra zamanınız varsa, daha sonra Alpha-Beta'ya geçmenizi ve Minimax'ın üzerine inşa etmenizi tavsiye ederim. Henüz anlamadıysanız Alpha-Beta ile başlamak gerçekten mantıklı değil.
Monte-Carlo Ağaç Arama , gerçekten, derinden anlamak için muhtemelen biraz daha gelişmiş ve daha karmaşıktır. Geçtiğimiz on yıl içinde, MCTS gerçekten diğer ikisinden çok daha popüler olmak için büyüyor, bu nedenle MCTS'yi anlamak daha "yararlı" olabilir.
Minimax ve MCTS arasındaki bağlantı, Minimax ve Alpha-Beta arasındaki bağlantıdan daha az doğrudan / açıktır, ancak yine de en azından kavramsal düzeyde bir bağlantı vardır. Minimax hakkında iyi bir anlayışa sahip olmanın MCTS'ye dalmadan önce hala faydalı olduğunu iddia ediyorum ; özellikle, Minimax'ı ve kusurlarını / zayıf noktalarını anlamak, MCTS'nin neden "gerekli" / popüler hale geldiğini anlamanıza yardımcı olabilir.
Sonuç olarak, bence:
Alfa-beta'yı seçmeniz gereken Minimax ve Alpha-Beta budaması arasında seçim yapmak zorundayım. Daha verimli ve hızlıdır, çünkü keşif ağacınızın önemli bir kısmını budanabilir. Ancak, max veya min bakış açısına bağlı olarak eylemleri en iyiden en kötüye doğru sıralamanız gerekir, böylece algoritma keşif gerektiğinde hızlı bir şekilde fark edebilir.