आप Genetic Algorithms या Hill Climbing जैसे अनुकूलन के लिए मौजूदा एआई उपकरण का उपयोग करके एक मानवीय दृष्टिकोण का प्रयास कर सकते हैं।
मैं हिल चढ़ाई पर अधिक जानकारी दूंगा, क्योंकि यह मेरा पसंदीदा है।
आपकी समस्या का प्रतिनिधित्व करते हैं के रूप में राज्यों का ग्राफ़ बनानेG = (V,E)
ऐसी है कि V = {all possible states }
और E = {(u,v) | swapping one player you can move from u to v }
।
इसके अलावा, u:V->R
एक गठन के लिए उपयोगिता फ़ंक्शन बनें।
जब से हम ग्राफ उत्पन्न करने के लिए नहीं करना चाहते, next:V->2^V
एक समारोह हो ऐसी है कि next(v) = {all possible formation that you can get by changing one player }
पहाड़ी चढ़ाई के विचार एक यादृच्छिक गठन से शुरू करने के लिए है, और लालच से सबसे अच्छा परिवर्तन संभव बनाने के लिए, जब आप कर रहे हैं अटक गया - एक नए यादृच्छिक गठन से एल्गोरिदम को पुनरारंभ करें।
1. best<- -INFINITY
2. while there is more time
3. choose a random matching
4. NEXT <- next(s)
5. if max{ u(v) | for each v in NEXT} < u(s): //s is a local maximum
5.1. if u(s) > best: best <- u(s) //if s is better then the previous result - store it.
5.2. go to 2. //restart the hill climbing from a different random point.
6. else:
6.1. s <- max { NEXT }
6.2. goto 4.
7. return best //when out of time, return the best solution found so far.
ध्यान दें कि पहाड़ी चढ़ाई (पहाड़ी यादृच्छिक पुनरारंभ साथ चढ़ाई) की इस बदलाव एक any time algorithm है - जिसका अर्थ है जब अधिक समय दिया जाता है यह बेहतर हो जाएगा, और जब अनंत समय दिया जाता है - यह वैश्विक अधिकतम founds ।
यह एनपी-हार्ड की गंध करता है (हालांकि मुझे दिमाग में कमी नहीं है) क्या आप चिकित्सकीय दृष्टिकोण चाहते हैं? – amit
हाँ कृपया, जो भी काम जल्दी हो जाता है! –
यदि यह गठन की प्रत्येक स्थिति में उच्चतम रेटेड खिलाड़ियों को डालने के रूप में "सरल" है, तो एक लालची एल्गोरिदम को काफी अच्छा प्रदर्शन करना चाहिए। मैं हेरिस्टिक दृष्टिकोण लेने के साथ सहमत हूं क्योंकि * हर * अलग संयोजन को देखने की आवश्यकता नहीं है। – Zairja