अल्फ़ाज़ेरो बनाम स्टॉकफ़िश मैच के बारे में, यह सवाल स्मॉलचेज़ द्वारा पहले ही यहाँ कवर किया जा चुका है ।
अल्फ़ाज़ेरो एक तरफ (जो कि एक विशेष मोंटे कार्लो 1 रूटीन को खेल की रेखाओं के अन्वेषण में नियोजित करता है ), जो निर्माण द्वारा गैर-नियतात्मक बनाया जाता है , सामान्य हेराटिक्स आधारित शतरंज इंजनों के लिए, जैसे स्टॉकफिश और अन्य (हालांकि अन्य हैं) जिन इंजनों में MC- आधारित रूटीन होते हैं, AFAIK Rybka में ऐसी सुविधा होती थी), यादृच्छिकता का स्रोत आमतौर पर कार्यान्वयन में तकनीकी पहलुओं का एक परिणाम है, बजाय जानबूझकर यादृच्छिकता इंजन के निर्णय लेने में एल्गोरिदम पेश किया जा रहा है। संक्षेप में, इसका एक कारण यह तथ्य है कि इंजन विशुद्ध रूप से अनुक्रमिक तरीके से नहीं चल रहे हैं (एक कार्य को दूसरे के बाद निष्पादित करना)। इसके बजाय, इंजनों को अधिक कुशल बनाने के लिए, वे संभावित चालों के पेड़ की विभिन्न शाखाओं में समानांतर खोज करते हैं। वे मल्टी-थ्रेडिंग (या -प्रोसेसिंग लेकिन इसे थोड़ा अलग कहते हैं) के माध्यम से ऐसा करते हैं । सीपीयू के कई सूत्र समवर्ती हैंपेड़ को खोजने के लिए ऑपरेशन निष्पादित करना (और विज़िट किए गए पदों के मूल्यांकन को कैश करना), इसलिए कल्पना करें कि प्रत्येक धागे को एक सबट्री सौंपी जा रही है। इस तरह के कार्यान्वयन के साथ समस्या यह है कि थ्रेड्स का समग्र निष्पादन सभी प्रकार की स्थितियों (प्रतीक्षा समय, रैम स्वैप, ...) पर अत्यधिक निर्भर हो जाता है, इसलिए अंत में अन्य सभी की अनुमति के बिना एक प्रमुख भिन्नता को चुना जा सकता है। अपनी खोज समाप्त करने के लिए थ्रेड।
यह वास्तव में अक्सर होता है क्योंकि इंजन एक निश्चित समय के तहत निर्णय लेने के लिए निर्धारित होता है, इसलिए समय प्रबंधन व्यवहार को बदल देता है। आप इस कथन को यह कहकर भी वापस कर सकते हैं: एल्गोरिथ्म को जानना और नियतकालिक थ्रेडिंग दिनचर्या को लागू करना किसी भी समय टी के बाद कार्यक्रम की स्थिति का विश्वसनीय रूप से अनुमान लगाने के लिए पर्याप्त नहीं है। बेशक, यदि कोई हमेशा सभी थ्रेड्स को अपनी खोज को समाप्त करने की अनुमति देता है, और उस निष्पादन के दौरान निर्णायक मुद्दे नहीं हैं (उदाहरण के लिए एक थ्रेड एक निश्चित कैश तक पहुंचने की कोशिश कर रहा है जो सुलभ नहीं है), तो व्यवहार वास्तव में पूरी तरह से प्रतिलिपि प्रस्तुत करने योग्य होगा बाकी सब कुछ दिया ही है 2 ।
1 : इस तथ्य के साथ कि अतिरिक्त प्रशिक्षण (उदाहरण के लिए सेल्फ-प्ले) के माध्यम से इसका तंत्रिका नेटवर्क विकसित हो रहा है (पुन: समायोजित पैरामीटर), या यदि आप इसका मूल्यांकन कार्य करेंगे तो स्थिर, निश्चित परिभाषा नहीं होगी (ह्यूरिस्टिक्स आधारित इंजन के विपरीत) )।
2 : फिर भी, जैसा कि आपने कहा, शुरुआती स्तर पर, एक शुरुआती किताब के साथ, कभी-कभी जानबूझकर यादृच्छिक निर्णय होते हैं जो इंजन द्वारा किए जाते हैं, जिसमें भिन्नता को चुनना है। इसी तरह, उद्घाटन के चरण के बाहर, ऐसे क्षण हो सकते हैं जहां कई भिन्नताएं समान मूल्यांकन के करीब होती हैं (ईवैल के लिए चुने गए संकल्प के भीतर), फिर डिजाइन के आधार पर, यह एक यादृच्छिक रूप से चुनने का अंत हो सकता है। अंत में, इंजन सेटिंग्स के स्तर पर आपको सावधान रहना होगा, उदाहरण के लिए प्रत्येक इंजन के लिए चुनी गई खोज और विचारशील समय की गहराई (और क्या वे एक दूसरे के समय के दौरान गणना कर सकते हैं)।