मैं चेकर्स जैसे बोर्ड गेम के लिए सबसे अच्छा एल्गोरिथ्म कैसे चुन सकता हूं?


15

मैं चेकर्स जैसे बोर्ड गेम के लिए सबसे अच्छा एल्गोरिथ्म कैसे चुन सकता हूं?

अब तक, मैंने केवल तीन एल्गोरिदम पर विचार किया है, अर्थात्, मिनिमैक्स, अल्फा-बीटा प्रूनिंग, और मोंटे कार्लो ट्री सर्च (MCTS)। जाहिरा तौर पर, अल्फा-बीटा प्रुनिंग और एमसीटीएस दोनों मूल न्यूनतम एल्गोरिथ्म के विस्तार हैं।

जवाबों:


18

tl; डॉ:

  • इनमें से कोई भी एल्गोरिदम आधुनिक कार्य के लिए व्यावहारिक नहीं है, लेकिन वे शैक्षणिक रूप से शुरू करने के लिए अच्छे स्थान हैं।

  • आपको हमेशा नंगे न्यूनतम खोज पर अल्फा-बीटा प्रूनिंग का उपयोग करना पसंद करना चाहिए।

  • यदि आप उपयोगी हेयुरिस्टिक के साथ आ सकते हैं तो आपको हेयुरिस्टिक गाइडेड खोज के कुछ रूप का उपयोग करना पसंद करना चाहिए। एक उपयोगी हेयुरिस्टिक के साथ आने से आमतौर पर बहुत सारे डोमेन ज्ञान की आवश्यकता होती है।

  • जब आप कम्प्यूटेशनल संसाधनों को सीमित कर रहे हों, और जब गलतियाँ वास्तविक दुनिया के परिणामों को समाप्त नहीं करेंगी, तो आपको एक अच्छे उत्तराधिकारी की कमी होने पर मोंटे कार्लो ट्री खोज का उपयोग करना चाहिए।

अधिक जानकारी:

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

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

इस तरह के खेल को वास्तव में हल करने की अत्यधिक कम्प्यूटेशनल लागत के आसपास आप दो सामान्य तरीके प्राप्त कर सकते हैं:

  1. एक हेयुरिस्टिक का उपयोग करें (ए * खोज शैक्षणिक उद्देश्यों के लिए सामान्य एल्गोरिथ्म है, लेकिन क्लेश्योरेंस खोज 2 खिलाड़ी खेलों में एक समान विचार है)। यह केवल एक फ़ंक्शन है जो खेल की स्थिति के मूल्य का अनुमान देता है । एक गेम में सभी चालों पर विचार करने के बजाय, आप बस कुछ परिमित दूरी से आगे बढ़ने पर विचार कर सकते हैं, और फिर उन राज्यों के मूल्य का न्याय करने के लिए अनुमानी के मूल्य का उपयोग कर सकते हैं जो आप तक पहुंचे। अपने अनुमानी संगत (अनिवार्य रूप से: अगर यह हमेशा है overestimates राज्यों की गुणवत्ता), तो यह अभी भी सही जवाब उपज, लेकिन व्यवहार में भारी speedups के साथ होगा।

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


ए * वास्तव में दो खिलाड़ियों के खेल के संदर्भ में फिट नहीं लगता है जैसे अन्य एल्गोरिदम करते हैं? MCTS पर ध्यान दें: विशिष्ट कार्यान्वयन "सभी चालों को कुछ निश्चित गहराई तक नहीं मानते हैं" और फिर रोलआउट शुरू करें; इसके बजाय, विशिष्ट कार्यान्वयन गतिशील रूप से, धीरे-धीरे पेड़ खोज पेड़ को बढ़ाते हैं, इसे अधिक होनहार भागों (भागों में जहां कई रोलआउट्स चयन रणनीति द्वारा नग्न किया जाता है) में बढ़ते हैं, इसे कम आशाजनक भागों में कम बढ़ते हैं।
डेनिस सोमरस

1
@JohnDoucette आप क्यों कहेंगे "इनमें से कोई भी एल्गोरिदम आधुनिक काम के लिए व्यावहारिक नहीं है, लेकिन वे शैक्षणिक रूप से शुरू करने के लिए अच्छी जगह हैं।" MCTS के मामले में, यह एकल-खिलाड़ी खोज के लिए भी आधुनिक काम के लिए बहुत उपयुक्त लगता है, जब अगले राज्य को एक राज्य दिया जाता है और एक कार्रवाई अच्छी तरह से परिभाषित होती है। क्या आप सहमत हैं?
मिगुएल सरायवा

1
@MiguelSaraiva अपने दम पर, MCTS कुछ ऐसा नहीं है जिसे आप आमतौर पर एक आधुनिक एप्लिकेशन के लिए उपयोग करते हैं। एक DNN की तरह कुछ के साथ संयुक्त एक सीखा heuristic प्रदान करने के लिए हालांकि बहुत अच्छा होगा।
जॉन डोसेटे

1
@JohnDoucette "MCTS एक ऐसी चीज़ नहीं है जिसे आप आमतौर पर एक आधुनिक अनुप्रयोग के लिए उपयोग करेंगे"। सबसे पहले, आप जिस "आधुनिकता" का उल्लेख करते हैं, 2016 में इसकी बड़ी सफलता थी (MCTS + DNN) और ऐसा लगता है कि आप इसका मतलब यह मान रहे हैं कि इससे पहले की सब कुछ मान लिया गया है (स्पष्ट रूप से गलत)। वास्तव में, यह कहना और भी अधिक प्रशंसनीय हो सकता है कि MCTS आमतौर पर विपरीत के कारण उपयोग नहीं किया जाता है: यह TOO उन्नत है: उद्योग में अनुप्रयोगों के ढेर हैं जो वास्तव में अप्रचलित हैं और MCTS के लिए UPGRADED हो सकते हैं। इन MCTS + DNN में से कई के लिए सिर्फ एक दूर का सपना है क्योंकि पूर्व प्रशिक्षण बहुत ज्यादा समझ से बाहर है।
जोहान

1
@ जोहान मुझे औद्योगिक अनुप्रयोगों के लिए सही लगता है , लेकिन सवाल "चेकर्स जैसे बोर्ड गेम" के बारे में पूछ रहा है। उन प्रकार की खिलौना समस्याओं के लिए, मुझे लगता है कि एमसीटीएस सही आधुनिक दृष्टिकोण नहीं है। हालांकि निश्चित रूप से वास्तविक विश्व की बहुत सारी समस्याएं हैं जहां यह मौजूदा तैनात प्रणालियों पर भारी सुधार होगा।
जॉन डोसेटे

7

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

इस संदर्भ को देखते हुए, मैं मिनिमैक्स के साथ शुरुआत करने की सलाह दूंगा । तीन एल्गोरिदम में से, मिनीमैक्स समझने में सबसे आसान है।

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

मोंटे-कार्लो ट्री सर्च शायद थोड़ा और अधिक उन्नत और वास्तव में गहराई से समझने के लिए अधिक जटिल है। पिछले एक दशक में, MCTS वास्तव में अन्य दो की तुलना में बहुत अधिक लोकप्रिय हो रहा है, इसलिए इस दृष्टि से MCTS अधिक "उपयोगी" हो सकता है।

मिनिमैक्स और एमसीटीएस के बीच कनेक्शन मिनिमैक्स और अल्फा-बीटा के बीच के कनेक्शन की तुलना में कम प्रत्यक्ष / स्पष्ट है, लेकिन अभी भी कम से कम एक वैचारिक स्तर पर एक कनेक्शन है। मेरा तर्क है कि पहले MCim में गोता लगाने से पहले मिनीमैक्स की अच्छी समझ होना अभी भी फायदेमंद है ; विशेष रूप से, मिनीमैक्स और उसके दोष / कमजोर बिंदुओं को समझना उपयोगी संदर्भ प्रदान कर सकता है / आपको यह समझने में मदद करता है कि एमसीटीएस "आवश्यक" / लोकप्रिय क्यों हो गया।


मेरी राय में, निष्कर्ष निकालने के लिए:

  • अल्फा-बीटा मिनिमैक्स की तुलना में कड़ाई से बेहतर है, लेकिन मिनिमैक्स के शीर्ष पर भी दृढ़ता से संबंधित / निर्मित है; इसलिए, मिनिमैक्स के साथ शुरू करें, यदि समय परमिट हो तो अल्फा-बीटा के लिए जाएं
  • MCTS की अलग-अलग ताकत / कमजोरियाँ हैं, अक्सर "आधुनिक" समस्याओं में अल्फा-बीटा से बेहतर होता है (लेकिन हमेशा नहीं), MCTS में गोता लगाने से पहले मिनिमैक्स की एक अच्छी समझ लाभदायक होगी।

क्या कोई अन्य एल्गोरिदम है जो आप सुझाव देंगे कि मैं भी उपयोग कर सकता हूं? यह एक अल्फा बीटा प्रूनिंग स्तर की तरह है
जॉय

@ जोय हम नहीं वास्तव में। मिनिमैक्स एक बहुत ही प्राकृतिक शुरुआती बिंदु है, मैं बहुत दृढ़ता से अनुशंसा करता हूं कि यदि आप अभी शुरू कर रहे हैं। यह मूल रूप से शतरंज / चेकर्स / टिक टैक टो / जैसे गेम के लिए विकसित किया गया पहला एल्गोरिथ्म था। बाद में, सैकड़ों अगर इसके ऊपर हजारों सुधार नहीं किए गए, जिनमें से कई आप संभवतः chessprogramming.wikispaces.com/Search पर पा सकते हैं । अल्फा-बीटा मिनिमैक्स के शीर्ष पर देखने के लिए सबसे प्राकृतिक वृद्धि है।
डेनिस सोमेर्स

@ जोए मोंटे-कार्लो ट्री सर्च थोड़ा अलग है (जरूरी नहीं कि आधार के रूप में मिनिमैक्स हो), "आधुनिक" एआई में दिलचस्प, मजेदार, लोकप्रिय और अत्यधिक प्रासंगिक है। फिर भी, नींव महत्वपूर्ण हैं, मैं आपको तुरंत एमटीटीएस के साथ शुरू करने की सलाह नहीं दूंगा यदि आप मिनिमैक्स + अल्फा-बीटा को अभी तक नहीं समझते हैं, भले ही यह तकनीकी रूप से संभव हो।
डेनिस सोमेर्स

उस साइट के लिए धन्यवाद। यह ज्ञान का खजाना है जिसे अब मैं पढ़ सकता हूं। नया सामान सीखने के बारे में सबसे कठिन काम आपको समझने में मदद करने के लिए सही सामग्री मिल रही है। तो साइट के लिए फिर से धन्यवाद
जॉय

@ जॉय मैं 100% निश्चित नहीं हूं अगर शतरंजप्रोग्रामिंग को सीखने के लिए सबसे आसान साइट है (और शीर्ष पर एक डरावना नोटिस लगता है कि साइट जुलाई के अंत में गायब हो सकती है)। यदि मुझे सही ढंग से याद है, तो कई विवरण कम हैं / शायद यह समझना आसान नहीं है कि क्या आप इस क्षेत्र में शुरुआत कर रहे हैं। यह कम से कम सभी प्रकार के एल्गोरिदम / संवर्द्धन के नामों का एक अच्छा, व्यापक संग्रह होगा, और आप मूल स्रोतों या Google को उन सभी नामों को अधिक विस्तृत जानकारी के लिए कहीं और देखने का प्रयास कर सकते हैं।
डेनिस सोमेर्स 19

1

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

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