Mengenai pertandingan AlphaZero vs Stockfish, pertanyaan ini sudah dibahas di sini oleh SmallChess .
Selain AlphaZero (yang menggunakan rutinitas Monte Carlo 1 khusus dalam eksplorasi garis permainan), yang dibuat menjadi non-deterministik oleh konstruksi, untuk mesin catur berbasis heuristik biasa, seperti Stockfish dan lainnya (meskipun ada yang lain mesin yang memiliki rutinitas berbasis MC, AFAIK Rybka digunakan untuk memiliki fitur tersebut), sumber keacakan umumnya hanya konsekuensi dari aspek teknis dalam implementasi, dan bukan keacakan yang disengaja secara algoritmik dalam pengambilan keputusan mesin. Secara abstrak, satu alasan untuk itu adalah kenyataan bahwa mesin tidak berjalan secara murni berurutan (menjalankan satu tugas demi satu). Sebagai gantinya, untuk membuat mesin lebih efisien, mereka melakukan pencarian paralel di berbagai cabang pohon gerakan yang mungkin. Mereka melakukannya melalui apa yang disebut multi-threading (atau -proses tetapi itu agak berbeda). Jadi banyak utas CPU secara bersamaanmenjalankan operasi untuk mencari pohon (dan menyimpan evaluasi posisi yang dikunjungi), jadi bayangkan setiap utas diberi subtree. Masalah dengan implementasi semacam ini adalah bahwa keseluruhan pelaksanaan utas menjadi sangat tergantung pada semua jenis kondisi (waktu tunggu, RAM swap, ...), jadi pada akhirnya variasi utama dapat dipilih tanpa mengizinkan semua lainnya. utas untuk menyelesaikan pencarian mereka.
Ini memang sering terjadi karena mesin diatur untuk membuat keputusan di bawah jumlah waktu tertentu, sehingga manajemen waktu mengubah perilaku. Anda juga dapat mengembalikan pernyataan ini dengan mengatakan: mengetahui algoritme dan menerapkan rutinitas threading deterministik tidak cukup untuk memprediksi keadaan program dengan andal setelah waktu t. Tentu saja jika seseorang selalu mengizinkan semua utas untuk menyelesaikan pencarian mereka, dan belum ada masalah konkurensi selama eksekusi tersebut (misalnya utas yang mencoba mengakses cache tertentu yang tidak dapat diakses), maka perilaku tersebut akan sepenuhnya dapat direproduksi mengingat yang lainnya sama 2 .
1 : Bersamaan dengan kenyataan bahwa melalui pelatihan tambahan (misalnya bermain sendiri) jaringan sarafnya terus berkembang (parameter yang disesuaikan kembali), atau jika Anda mau fungsi evaluasinya tidak memiliki definisi yang konstan dan tetap (tidak seperti mesin berbasis heuristik) ).
2 : Bahkan saat itu, seperti yang Anda katakan, pada tingkat pembukaan, dengan buku pembuka, kadang-kadang ada keputusan acak yang disengaja yang dibuat oleh mesin untuk memilih variasi mana. Demikian pula, di luar fase pembukaan, mungkin ada saat-saat di mana beberapa variasi mendekati evaluasi yang sama (dalam resolusi yang dipilih untuk Eval), kemudian berdasarkan pada desain, mungkin akhirnya memilih satu secara acak. Terakhir, pada level pengaturan mesin Anda harus berhati-hati juga, misalnya kedalaman pencarian dan waktu perenungan yang dipilih untuk setiap mesin (dan apakah mereka dapat menghitung lebih lanjut selama waktu perenungan satu sama lain).