2012-09-21 11 views
5

पर लागू किया गया है। मैं समझने की कोशिश कर रहा हूं कि एमसीटीएस एल्गोरिदम कैसे काम करता है और मैं इसे एआई इंजन में सुधार के लिए कार्ड गेम में कैसे कार्यान्वित करता हूं।यूसीबी के साथ मोंटे कार्लो जटिल कार्ड गेम

मैंने mcts.ai/ वेबसाइट और इसके बारे में कई कागजात पढ़े हैं, जिनमें से एक मैजिक कार्लो सर्च को एआईसी में मैजिक कार्ड्स गेम के लिए लागू करने की सफलता के बारे में कुछ परिणाम दिखाता है, जो कम या ज्यादा है मुझे करने की ज़रूरत है, हालांकि मुझे कुछ बिंदुओं को समझने की कोशिश करने में कुछ परेशानी हो रही है और इसे कैसे लागू किया जाए, इसलिए मुझे जो चाहिए उसे हल करें। मैं भी गणित में इतना अनुभवी नहीं हूं इसलिए जब मैं जटिल सूत्रों के साथ उन सभी चीजों को समझाता हूं तो मैं खो जाता हूं।

यह वही है मैं अब तक के साथ आया है:

  1. एक खेल राज्य (खेल में उपयोगकर्ता हाथ) को देखते हुए, जो निर्धारित सभी संभव कानूनी नाटकों है कि तब मैं होता बनाया जा सकता है कर रहे हैं नोड्स की एक सूची बना हर एक के परिणाम के साथ MCTSTree के रूट नोड में एक संपत्ति के रूप में (हर नाटक का प्रतिनिधित्व एक) (स्कोर मूल्य?)

  2. साथ उन लोगों के कानूनी नाटकों में से हर एक के लिए एक पूर्ण (अंत तक) गेमप्ले अनुकरण एक यादृच्छिक खिलाड़ी और प्रत्येक नोड में परिणाम रिकॉर्ड करें, भले ही खिलाड़ी पूरी तस्वीर प्राप्त करने के लिए जीता या खो गया हो।

वह स्थान है जहां "मुझे लगता है" मोंटे कार्लो + यूसीबी लागू किया जाना चाहिए:

  1. अधिक आशाजनक खेलने (नोड) यूसीबी रिकर्सिवली का उपयोग कर का चयन करें और मामले में अपने पत्ते, साथ उस नोड का विस्तार अपने गेमस्टेट से सभी संभावित नाटकों।

  2. चयनित नोड से एन प्लेआउट अनुकरण करें, जब तक कि निश्चित समय तक पहुंच न जाए।

    • इस चरण में मुझे कुछ संदेह हैं ... कहें कि मैं संभावित प्लेआउट की एक सूची दी गई यादृच्छिक प्लेआउट का प्रयास करता हूं ... मुझे सिमुलेटिंग जारी रखने के लिए पहले परिणाम के साथ क्या करना है? क्या मुझे पेड़ उगाना चाहिए?
  3. मैं परिणामों को बैकप्रोपेट कैसे करूं?

फिर

,

  • मन में होने कि मैं इतने सारे संभव चाल है क्योंकि यह एक जटिल कार्ड खेल है और ... होगा यह इतने सारे बच्चे के लिए एक अच्छा पर्याप्त प्रदर्शन किसी भी नोड में?

  • यदि प्रत्येक सिमुलेशन एक गैमेस्टेट पर आधारित होता है और जब भी कोई खिलाड़ी एक आंदोलन लागू करता है तो गेम राज्य को बदल रहा है तो मुझे कैसे पता चलेगा कि पेड़ वास्तव में उपयोगी है या नहीं?

मैं इस पर किसी भी मदद की सराहना करता हूं।

बहुत बहुत धन्यवाद!

+0

यह सर्वेक्षण पत्र (मार्च 2012 से) कोर एमसीटीएस ढांचे को बताता है और फिर कई प्रकारों पर चर्चा करता है: http://www.doc.ic.ac.uk/~sgc/papers/browne_ieee12.pdf इसमें गणना करने के विवरण शामिल हैं यूसीबी। – jspcal

+0

धन्यवाद @ jspcal! – magnoz

उत्तर

6

MCTS बस पीछा कर रहा है:

enter image description here

मैं यह थोड़ा क्या छवि से पता चलता है की तुलना में अलग है, जो कार्यान्वयन के लिए अधिक तैयार हो सकता है का वर्णन। अपने रूट नोड से

  1. वंश (खेल की वर्तमान स्थिति), हर कदम पर यूसीबी का उपयोग कर जब तक आप तय करते हैं पर एक uninstantiated नोड l। (चुनें)
  2. अपने पेड़ में l जोड़ें। (विस्तृत करें)
  3. l से, एक यादृच्छिक गेम खेलें। (अनुकरण)
  4. l से रूट पर सभी नोड्स को प्लेआउट के परिणाम के साथ रूट नोड पर अपडेट करें।
  5. समय समाप्त होने तक दोहराएं।

यदि आपका ब्रांचिंग कारक बड़ा है, जैसा कि आपने बताया है, तो आपको पेड़ से उतरने के दौरान उत्तराधिकारी चुनने के लिए अन्य रणनीतियों पर विचार करना पड़ सकता है, जैसे राव।

+0

बिंदु 2 के बारे में: पत्ते के गैमेस्टेट से मैं सभी संभावित नाटकों प्राप्त करता हूं और उनमें से प्रत्येक के लिए एक यादृच्छिक गेम खेलता हूं, क्या मैं सही हूँ? और यही वह है जो परिभाषित करेगा कि मेरा ब्रांचिंग कारक कितना बड़ा है। यदि मैं गलत हूं तो मुझे सही करों। धन्यवाद! – magnoz

+0

@magnoz * ए) * नहीं, आप केवल * एक * यादृच्छिक गेम खेलते हैं, जो 'एल' के संभावित उत्तराधिकारी में से एक के माध्यम से जाता है। इस यादृच्छिक खेल का पहला कदम 'एल' के नीचे एक नए पत्ते के रूप में जोड़ा जाता है (क्षमा करें, उस भाग को भूल गए)। फिर आप फिर से शुरू करें 1. * बी) * शाखाकरण कारक प्रत्येक राज्य में संभावित चालों की संख्या है (आमतौर पर यह भिन्न होता है, इसलिए आप औसत ब्रांचिंग कारक के बारे में सोचते हैं)। – ziggystar

+0

ठीक है, मुझे लगता है कि मुझे यह मिल गया है, अब .. जैसा कि आपने प्रक्रिया का वर्णन किया है, आप पहले सिमुलेशन और फिर विस्तार निष्पादित करते हैं, क्या मैं सही हूँ? – magnoz

संबंधित मुद्दे