यह प्रश्न कंप्यूटर विरोधियों के एक दृष्टिकोण के बारे में है जो मैंने बनाया है और वर्तमान में उपयोग किया जा रहा है, या कई कंप्यूटर गेम में उपयोग किए जाने की योजना है।
पृष्ठभूमि
पिछले साल, जब "माइनस्वीपर फ्लैग्स" नामक एक गेम के लिए कंप्यूटर प्रतिद्वंद्वी को बेहतर बनाने की कोशिश की गई थी (संक्षिप्त विवरण: माइनस्वीपर का एक मोड़-आधारित मल्टीप्लेयर संस्करण जहां आपको अपने प्रतिद्वंद्वी से अधिक खानों को लेना होगा ) , मैंने अपने एल्गोरिदम के काम करने के तरीके को दृढ़ता से बदल दिया। । इफ़-इफ़-इफ़-जैसे-जैसे किसी दृष्टिकोण का उपयोग करने के बजाय, मैं यह निर्धारित करने के लिए "वज़न" के सेट का उपयोग कर रहा हूं कि यह निर्धारित करने के लिए कि सबसे अच्छा कदम क्या है।
आप सोच सकते हैं कि माइनस्वीपर फ्लैग्स जैसे गेम के लिए, यह केवल चालें बनाने के बारे में है जो आपको एक खदान लेने की उच्चतम संभावना देता है, लेकिन यह इतना आसान नहीं है। कंप्यूटर जो चाल चलता है वह आमतौर पर वर्तमान गेम स्थिति में उस विशिष्ट चाल के लिए कई विशेषताओं पर निर्भर करता है। सुविधाओं के उदाहरण:
- इस कदम की संभावना एक खदान से क्या है?
- यहां मेरे विरोधी को कुछ भी बताने की संभावना क्या है?
सिस्टम का विवरण
सिस्टम मूल रूप से इस तरह काम करता है:
- "प्री-स्कोरर": कुछ पूर्व-विश्लेषण वर्तमान गेम स्थिति के लिए किया जाता है (माइनस्वीपर फ्लैग्स के संदर्भ में, यह आमतौर पर है: सभी संभावनाओं की गणना)
- "स्कोरर": सामान्य स्कोरर का एक सेट प्रत्येक संभावित चाल के लिए स्कोर निर्धारित करने के लिए कहा जाता है, प्रत्येक स्कोरर अपने स्वयं के मानदंडों के अनुसार स्कोर लागू करता है। स्कोरर पूर्व विश्लेषण के परिणामों की जांच कर सकता है जो बनाया गया था।
- उपरोक्त चरण में गणना किए गए अंकों को एक साथ समेटा गया है और एक कदम के लिए स्कोर निर्धारित किया गया है।
- चालों को उनके स्कोर के अनुसार क्रमबद्ध किया जाता है और क्रमबद्ध किया जाता है ताकि समान स्कोर वाले सभी चालों को समान रैंक मिले।
- "पोस्ट-स्कोरर": उपरोक्त का परिणाम "पोस्ट-स्कोरर" को भेजा जा सकता है, जो किसी भी क्षेत्र के स्कोर को किसी भी तरह से संशोधित करने की संभावना रखते हैं, जो पोस्ट-स्कोरर के अपने नियमों के अनुसार हैं।
जब पूर्व-स्कोरर, स्कोरर (उनके वजन के साथ) और पोस्ट-स्कोरर का एक गुच्छा संयोजन करते हैं, तो यह वह बन जाता है जिसे मैं स्कोर कॉन्फ़िगरेशन कहता हूं ।
उदाहरण परिणाम
यह माइनस्वीपर फ्लैग पर लागू किए गए अंकों का एक उदाहरण है। यह वह मानचित्र है जो स्कोर किया गया था:
और यह एक वास्तविक स्कोर कॉन्फ़िगरेशन का आउटपुट है। यह संभावित चालों की रैंक दिखा रहा है, जहां 1 सर्वश्रेष्ठ रैंक है और इसे सफेद में हाइलाइट किया गया है:
अत्यधिक लचीला कोड लिखे जाने के लिए धन्यवाद, एआई के इस दृष्टिकोण को अन्य खेलों में भी डाला जा सकता है।
फायदे और नुकसान
नीचे इस प्रणाली के कुछ फायदे और नुकसान हैं जो मैं खुद सोच सकता हूं
लाभ
- AI के लिए बहुत सारे अलग-अलग कॉन्फ़िगरेशन बनाना बहुत आसान है।
- जेनेटिक एल्गोरिदम के साथ उपयोग करना संभव है: प्रत्येक स्कोरर के पास एक संबद्ध वजन होता है, वजन जीन बन सकता है।
- कुछ उपकरणों का उपयोग करके, यह जांचना संभव है कि एक विशिष्ट चाल क्यों बनाई गई थी और उस चाल के लिए मुख्य रूप से कौन से स्कोरर जिम्मेदार थे
- औजारों का उपयोग करते हुए, संभव चालों के समग्र स्कोर / रैंक का नक्शा बनाना संभव है (ऊपर स्क्रीनशॉट की तरह)
- मानव के खेलने के तरीके के लिए स्कोर को लागू करने से, "#AI_Mirror" बनाना संभव है जो चालें बनाने की कोशिश करता है कि यह सोचता है कि मानव बनायेगा
नुकसान
- एआई प्ले को यथासंभव बेहतर बनाने के लिए, "कॉन्फ़िगरेशन" को सही ढंग से समायोजित करना बेहद मुश्किल हो सकता है।
प्रशन
क्या मैंने यहाँ जो सिस्टम बनाया है वह व्यापक रूप से AI दुनिया में जाना जाता है? इसे वास्तविक एआई शब्दों में क्या कहा जाएगा?
क्या यह दृष्टिकोण समझ में आता है या क्या एक अलग दृष्टिकोण है जिसे आप सुझाएंगे?
ऐसे कौन से तरीके हैं जो स्कोर कॉन्फ़िगरेशन को आसान बनाने की प्रक्रिया को आसान बना सकते हैं?
आखिरी सवाल के बारे में, मुझे आनुवंशिक एल्गोरिदम का उपयोग करने की संभावना के बारे में पता है, मैं भी SARSA के बारे में हल्के से अवगत हूं (और मुझे लगता है कि मेरे स्कोरर वजन के साथ सुविधाओं के उस साइट के विवरण से मिलते जुलते हैं, लेकिन मेरी समझ से यह बिल्कुल नहीं है कि मैंने बनाया है। यहाँ)। मुझे लगता है कि SARSA के साथ एक समस्या यह है कि आप खेल खत्म होने तक इनाम नहीं जानते हैं, सबसे अच्छा कदम अक्सर एक ऐसा कदम होता है जो इनाम (मेरा) बिल्कुल नहीं देता है। जीतने की आपकी वर्तमान संभावना दोनों वर्तमान स्कोर (आप और आपके प्रतिद्वंद्वी ने कितनी खदानें ली हैं) पर निर्भर करता है और वर्तमान मानचित्र कैसा दिखता है।
यह प्रश्न मूल रूप से एक अब दोषपूर्ण आर्टिफिशियल इंटेलिजेंस साइट पर पोस्ट किया गया था ।
इस दृष्टिकोण के लिए उपयोग किए जाने वाले (जावा) कोड को अब कोड रिव्यू में पोस्ट किया गया है ।