AlphaZero vs Stockish maçı ile ilgili olarak, bu soru burada SmallChess tarafından ele alınmıştır .
AlphaZero kenara ( oyun hatlarını keşfinde özel bir Monte Carlo 1 rutini kullanır ), Stockish ve diğerleri gibi olağan sezgisel tabanlı satranç motorları için inşaat tarafından belirleyici olmayan hale getirilir (başkaları da vardır) MC tabanlı rutinleri olan motorlar, AFAIK Rybka böyle bir özelliğe sahipti), rasgeleliğin kaynağı, motorun karar vermede algoritmik olarak getirilmek yerine, genellikle uygulamadaki teknik yönlerin bir sonucudur. Özetle, bunun bir nedeni, motorların tamamen sıralı bir şekilde çalışmamalarıdır (bir görevi birbiri ardına yürütmek). Bunun yerine, motorları daha verimli hale getirmek için, olası hareketler ağacının çeşitli dallarında paralel aramalar yaparlar. Bunu, çoklu iş parçacığı (veya -işleme) olarak adlandırılır, ancak bu biraz farklıdır. Yani CPU'ların birden fazla iş parçacığı aynı andaağacı aramak (ve ziyaret edilen konumların değerlendirmelerini önbelleğe almak için) işlemleri yürütmek, bu nedenle her bir iş parçacığına bir alt ağaç atandığını hayal edin. Bu tür bir uygulamadaki sorun, iş parçacıklarının genel olarak yürütülmesinin her türlü koşullara (bekleme süreleri, RAM swapları, ...) büyük ölçüde bağımlı hale gelmesidir, bu nedenle sonunda diğerlerine izin verilmeden bir ana varyasyon seçilebilir Konuları aramalarını bitirmek için.
Bu gerçekten de sık sık olur, çünkü motor belirli bir süre içinde karar vermek üzere ayarlanmıştır, bu nedenle zaman yönetimi davranışı değiştirir. Ayrıca bu ifadeyi, algoritmayı bilmek ve deterministik diş açma rutinlerini uygulamak, herhangi bir zamandan sonra programın durumunu güvenilir bir şekilde tahmin etmek için yeterli değildir diyerek geri alabilirsiniz. Tabii ki, tüm iş parçacıklarının her zaman aramalarını bitirmesine izin veriyorsa ve bu yürütme sırasında eşzamanlılık sorunları yoksa (örneğin, erişilemeyen belirli bir önbelleğe erişmeye çalışan bir iş parçacığı), davranış gerçekten tamamen tekrarlanabilir olacaktır verilen her şey aynı ise 2 .
1 : Ek eğitim yoluyla (örneğin kendi kendine oynatma) sinir ağının gelişmeye devam etmesi (yeniden ayarlanan parametreler) veya değerlendirme işlevinin sabit, sabit bir tanımlamaya (sezgisel tabanlı motorların aksine) sahip olması gerçeğiyle birlikte ).
2 : O zaman bile, dediğin gibi, açılış seviyesinde, bir açılış kitabı ile, bazen hangi varyasyonun seçileceği konusunda motor tarafından kasıtlı olarak rastgele kararlar verilir. Benzer şekilde, açılış aşamasının dışında, birden fazla varyasyonun eşit değerlendirmelere yakın olduğu (Eval için seçilen çözünürlük dahilinde) anlar olabilir, daha sonra tasarıma dayanarak, rastgele birini seçebilir. Son olarak, motor ayarları düzeyinde de dikkatli olmalısınız, örneğin her bir motor için seçilen arama derinliği ve durma zamanları (ve birbirlerinin akıntı zamanlarında daha fazla hesaplayıp hesaplayamayacakları).