के लिए जेनेटिक एल्गोरिदम मेरे पास एक काम करने वाला एफ # प्रोग्राम है जो कार्ड गेम Dominion चलाता है। मैं खेलने के लिए इष्टतम रणनीतियों को निर्धारित करने के लिए एक अनुवांशिक एल्गोरिदम का उपयोग करना चाहता हूं। हालांकि, मैं एआई या जेनेटिक एल्गोरिदम के बारे में ज्यादा नहीं जानता। क्या आप शुरू करने के लिए मुझे कुछ अच्छे साहित्य की ओर इशारा कर सकते हैं?कार्ड गेम (डोमिनियन)
खेलने के लिए एक रणनीति किसी दिए गए हाथ पर प्रतिक्रिया होती है। प्रत्येक मोड़ में, एक बॉट कार्ड का हाथ निपटाया जाता है। यह कार्यवाही करने के लिए एक्शन कार्ड, या नए कार्ड खरीदने का विकल्प चुन सकता है। लक्ष्य जितना संभव हो उतना जीत बिंदु कार्ड के साथ खेल खत्म करना है।
def play(hand, totalDeck):
if hand contains Smithy then use Smithy
if hand contains enough coins for Province then buy Province
if more than 30% of the totalDeck is Smithy, then buy coins
मैं प्रत्येक कार्ड के लिए कुल डेक का लक्ष्य भागों का एक वेक्टर के मामले में एक रणनीति का वर्णन करने का सोच रहा था:: फिर
[Smithy, Province, Copper, ...]
[.3, .2, .1, ...]
एक हार्डकोडेड दृष्टिकोण की तरह कुछ दिखाई दे सकता है एक बॉट को बदलने के लिए, मैं बस उस वेक्टर को बदल सकता था, और देख सकता हूं कि उत्परिवर्तित संस्करण बेहतर है या नहीं। फिटनेस फ़ंक्शन डोमिनियन को अन्य बॉट्स के खिलाफ खेलने का औसत स्कोर होगा। (एक बॉट का स्कोर इस बात पर निर्भर करता है कि यह किसके खिलाफ खेल रहा है, लेकिन उम्मीद है कि कई बॉट्स के खिलाफ कई गेम खेलकर यह भी बाहर हो सकता है।)
क्या यह समझ में आता है? क्या मैं सही रास्ते पर जा रहा हूं?
क्षमा करें, लेकिन आईएमओ जो आपकी समस्या का एक बहुत बुरा वर्णन है। मुझे यह भी पता नहीं है कि आप दो बॉट्स को गठबंधन क्यों करना चाहते हैं या आप जो बॉट गठबंधन करना चाहते हैं। मुझे लगता है कि एक्शन कार्ड एक गतिशील संपत्ति है जो खेल के दौरान बदलती है। किसी उद्देश्य कार्य और आपके निर्णय चर के संदर्भ में समस्या को और स्पष्ट रूप से बताएं। मुझे लगता है कि आप एक सामान्य बॉट के कुछ मानकों को प्रशिक्षित करना चाहते हैं जिन्हें आपने लिखा था। शायद आप इसे थोड़ा और विस्तारित कर सकते हैं। आप कार्ड गेम के सिम्युलेटर को किस तरह की प्रोग्रामिंग भाषा लिखते थे? – Andreas
मैं मानता हूं कि मैं समस्या को बहुत अच्छी तरह से phrasing नहीं कर रहा था। मैंने फिर कोशिश की है; यह कैसे दिखता है? –
निश्चित रूप से थोड़ा अतिरिक्त समय बिताने के योग्य है – Andreas