शतरंज में अस्थायी अंतर को लागू करना


10

मैं एक शतरंज कार्यक्रम विकसित कर रहा हूं जो अल्फा-बीटा प्रूनिंग एल्गोरिदम और एक मूल्यांकन फ़ंक्शन का उपयोग करता है जो निम्न विशेषताओं का उपयोग करके पदों का मूल्यांकन करता है, जैसे कि सामग्री, किंग्सफेटी, गतिशीलता, मोहरा-संरचना और फंसे हुए टुकड़े आदि ..... मेरा मूल्यांकन कार्य है से व्युत्पन्न

(पी)=w1सामग्री+w2kingsafety+w3चलना फिरना+w4प्यादा-संरचना+w5फँसे हुए टुकड़े

जहां प्रत्येक सुविधा को सौंपा गया वजन है। इस बिंदु पर मैं लौकिक अंतर का उपयोग करके अपने मूल्यांकन समारोह के वजन को ट्यून करना चाहता हूं, जहां एजेंट खुद के खिलाफ खेलता है और इस प्रक्रिया में अपने पर्यावरण से प्रशिक्षण डेटा इकट्ठा करता है (जो सुदृढीकरण सीखने का एक रूप है)। मैंने जावा में इसे कैसे लागू किया जाए, इस बारे में अंतर्दृष्टि रखने के लिए कुछ किताबें और लेख पढ़े हैं, लेकिन वे व्यावहारिक होने के बजाय सैद्धांतिक प्रतीत होते हैं। मुझे एक विस्तृत विवरण और छद्म कोड की आवश्यकता है कि पिछले गेम के आधार पर अपने मूल्यांकन फ़ंक्शन के वजन को स्वचालित रूप से कैसे कम किया जाए।w

जवाबों:


4

मैं सुझाव देता हूं कि विषय में रुचि रखने वाले किसी भी व्यक्ति को पेपर पर एक नज़र डालें जो टीडीएल और डीप-लर्निंग को जोड़ती है।

मोटे तौर पर, आपको इंजन को एक दूसरे के खिलाफ खेल खेलने की आवश्यकता होगी। प्रत्येक स्थिति के लिए मिनी-अधिकतम मूल्यांकन रिकॉर्ड करें। खेल के अंत में, आपको एक इनाम मिलेगा, जो शतरंज के लिए {0,1, -1} है। फिर आपको अपने मापदंडों को इसके साथ समायोजित करना होगा:

यहाँ छवि विवरण दर्ज करें

यह समीकरण बताता है कि हमें अस्थायी अंतरों द्वारा भारों को समायोजित करना चाहिए, जो आपको इसे कितनी दूर करना चाहिए। यदि आपके पास एक पूर्ण मूल्यांकन है, तो आपका लौकिक अंतर हमेशा शून्य होगा, इस प्रकार आपको कोई समायोजन करने की आवश्यकता नहीं होगी।

अगला, आपको नया गेम खेलने के लिए नए मापदंडों का उपयोग करने की आवश्यकता होगी। जब तक आप यह कर सकते हैं या जब आपको लगता है कि यह रूपांतरित हो जाता है, तब तक कई गेम दोहराता है।

कुछ टिप्पणी:

  1. मेरे द्वारा उद्धृत कागज एक छूट कारक लागू होता है। यह तंत्रिका नेटवर्क के लिए बैकप्रपोर्टेशन एल्गोरिदम के लिए किया जाता है। आपको इसकी आवश्यकता नहीं है।
  2. आपको इष्टतम सीखने की दर (समीकरण में अल्फा) के साथ प्रयोग करने की आवश्यकता होगी। बहुत बड़ा आपके सीखने को अस्थिर कर देगा, बहुत कम को अभिसरण में अधिक समय लगेगा। मैंने लोगों को 0.70 का उपयोग करते देखा है। मैंने जिस कागज़ का इस्तेमाल किया, वह 1.0 था।

नमस्ते, मुझे आपका उत्तर पसंद है लेकिन क्या आप कृपया पेपर के लिंक को ठीक कर सकते हैं?
पादुरा

@पादुरा निश्चित। कृपया एक पढ़ें। यह डेटा विज्ञान के लिए एक अच्छा पढ़ा गया था।
हेलोवर्ल्ड

(+1) शानदार जवाब। कागज भी :) प्यार
Dawny33

यह एक महान लेख है, शर्म की बात है कि मैं यह नहीं जानता था कि मैं अपने शतरंज इंजन पर काम कर रहा था;) मुझे आश्चर्य है कि अगर हम इस तकनीक के साथ संयोजन करके सुधार कर सकते हैं: bjmc.lu.lv/fileadmin/user-upload/lu_portal/ प्रोजेकटी / बीजेएमसी /…
पाडूरा

2

एक पहली टिप्पणी, आपको यह जानने के लिए 'वॉरगेम्स' देखना चाहिए कि आप खुद में क्या कर रहे हैं।

आप जो चाहते हैं वह f (p) है जैसे कि f (p) स्थिति की मजबूती के जितना करीब हो।

आनुवांशिक एलो का उपयोग करके एक बहुत ही सरल उपाय होगा कि 10000 खिलाड़ियों को अलग-अलग वजन के साथ सेट किया जाए और देखें कि कौन सी जीत होती है। फिर शीर्ष 1000 विजेताओं का वजन रखें, उन्हें 10 बार कॉपी करें, उन्हें वजन स्थान का पता लगाने के लिए थोड़ा बदल दें, और फिर से सिमुलेशन चलाएं। यह मानक GA है, एक कार्यात्मक रूप दिया गया है, इसके लिए सबसे अच्छा गुणांक क्या हैं।

एक अन्य उपाय यह है कि पदों को निकाला जाए, इसलिए आपके पास एक तालिका है (सामग्री, किंग्सफिटी, गतिशीलता, प्यादा-संरचना, ट्रैप्डपीस) -> स्थिति की अच्छाई 'जहां स्थिति की अच्छाई कुछ उद्देश्य कारक है (परिणाम जीत / हार उपर्युक्त सिमुलेशन का उपयोग करके। या ज्ञात मैच, उपलब्ध पेड़ की गहराई, पेड़ के नीचे चालों की संख्या जहां 5 कारकों में से एक बेहतर हो जाता है। आप तब अपने च (पी), प्रतिगमन, एसवीएम के लिए विभिन्न कार्यात्मक रूपों की कोशिश कर सकते हैं।


इसका कोई मतलब नहीं है।
हैलो वर्ल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.