क्या शतरंज जैसी एआई वास्तव में टर्न-आधारित रणनीति के खेल में अनुपयुक्त है?


13

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

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

मुझे आश्चर्य होगा अगर यह पहले नहीं सोचा गया और कोशिश की गई। पास है? यह कैसे काम करता है?


1
आप सहयोगात्मक प्रसार के साथ प्रयोग कर सकते हैं । यह ग्रिड में डिफ्यूजन वैल्यू द्वारा काम करता है, दुश्मन फिर ग्रिड पर चढ़ते हैं। यह कम से कम पैथफाइंडिंग के लिए काम करता है। यदि आपने फैलाने के लिए और अधिक मान (अलग-अलग?) बनाए और अधिक परिष्कृत पहाड़ी-चढ़ाई (कई मूल्यों के आधार पर अगले जाने के लिए चयन करें) ...
user712092

अल्फा-बीटा के बारे में क्या ? यह मिन-मैक्स का बेहतर संस्करण है।
1371

मैं अल्फा-बीटा प्राइमरी को एक प्रकार की न्यूनतम-अधिकतम के रूप में देखता हूं।
जो

हाँ यही है। लेकिन यह तेज होना चाहिए। पता नहीं अगर यह आपकी मदद करता है ...
user712092

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

जवाबों:


5

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


9

यह एक मिनैक्सैक्स एल्गोरिथ्म नहीं है, हालांकि किल्ज़ोन एआई के लिए जिम्मेदार लोगों ने स्थिति मूल्यांकन कार्यों के आधार पर एक पेपर जारी किया जो कुछ शतरंज एआई भी उपयोग करता है।

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

पेपर AI गेम प्रोग्रामिंग विजडम 3 में पाया जा सकता है और इसका शीर्षक डायनेमिक टैक्टिकल पोजिशन इवैल्यूएशन है।

कागज का एक मसौदा यहां ऑनलाइन पाया जा सकता है:
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

उम्मीद है की वो मदद करदे।


2

मुझे नहीं लगता कि यह पर्याप्त होगा। विशिष्ट एन कॉन्फ़िगरेशन चुनना, कितने और कौन से, वास्तव में उस परिसर में कुछ असंभव होगा। याद रखें कि यदि आपके खेल में अनंत संसाधन या कुछ समान हैं, तो ऐसे सर्कल हो सकते हैं कि इसे कैसे खेला जा सकता है, जिससे इस तरह के AI का उपयोग करना आसान हो जाता है।


2

मेरा सुझाव है कि कम से कम अल्फा-बीटा प्रूनिंग के साथ न्यूनतम अधिकतम लागू किया जाए।

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

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

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

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


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

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

1

2011 की Google AI चुनौती के विजेता ने न्यूनतम-अधिकतम (गहराई 1) का उपयोग किया। एक अन्य शीर्ष प्रतियोगी ने यादृच्छिक नमूने का इस्तेमाल किया । इस प्रतियोगी ने उल्लेख किया कि न्यूनतम-अधिकतम और यादृच्छिक नमूने का मिश्रण, जो मूल रूप से मेरे प्रश्न में वर्णित है, खराब प्रदर्शन किया। यह मुझे सुलझाता है, मुझे लगता है।

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


1

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

मूल विचार के लिए आपको सभी संभावित चालों की एक सूची बनाने की आवश्यकता होती है, और उन सभी चालों के लिए उस प्रक्रिया को दोहराने के लिए आदि। यह शतरंज में संभव है (जहां संभावित अगली चालों की सूची प्रभावी रूप से गणना योग्य है; एक शतरंज बोर्ड में 20 संभावित चालें हैं। ) और बैकगैमौन, चेकर्स और रूबिक क्यूब को हल करने जैसी अन्य चीजों के लिए एक बिंदु तक।

यदि मैं उदाहरण के रूप में एक साधारण टर्न-आधारित गेम (सभ्यता 2) लेता हूं, तो आपके प्रत्येक व्यक्ति एक ही बारी में कुल 8 वर्ग (या 24) में जा सकते हैं। यदि आपके पास 10 लोग हैं (जो कि बहुत अधिक नहीं है, तो आमतौर पर आपके पास अधिक समय होता है जब यह कुछ दिलचस्प होने लगता है) वर्तमान स्थिति से संभावित "चाल" की कुल संख्या (एक एकल स्तर) पहले से ही 8 ^ 10 है या लगभग 4 बिलियन। यहां तक ​​कि अगर आप 99.99% के बारे में बताते हैं, तो आप अभी भी पेड़ पर नहीं जा सकते हैं क्योंकि संभव चालों की संख्या वास्तव में जल्दी से फट जाती है।

इसमें जोड़ें कि खेल रूबिक क्यूब समस्या की तरह है, जहां आप केवल 10 या 12 चालों के बाद प्रगति देखते हैं, समस्या एक ऐसे बिंदु पर फैल जाती है जहां मानक मिनट / अधिकतम के फायदे केवल स्मृति क्षमता पर प्रचलित हैं आपके सामान्य कंप्यूटर से अधिक होगा।

दूसरे शब्दों में, यह जो रणनीतियाँ पाएगा, वे प्रतिलिपि प्रस्तुत करने योग्य लेकिन खराब होंगी।

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


0

बारी आधारित रणनीति गेम में न्यूनतम रूप से न्यूनतम / अधिकतम लागू करने के लिए, आपको सभी उपलब्ध शतरंज-तकनीकों को सही ढंग से लागू करने की आवश्यकता है ...

मूल्यांकन समारोह

यहां तक ​​कि शतरंज के इंजनों में बहुत बुरी ताकत होती है, अगर आपके मूल्यांकन कार्य खराब हैं। एक मूल्यांकन समारोह का सबसे सरल संस्करण है: 1 = खेल सफेद द्वारा जीता, -1 = खेल काला द्वारा जीता, 0 = अन्य सभी मामले; लेकिन, इससे आपको बहुत खराब प्रदर्शन मिलेगा। आपकी बारी आधारित गेम के लिए भी ऐसा ही होता है! यदि आप शतरंज में मिनट / अधिकतम (अल्फा / बीटा प्रूनिंग और सामान के साथ) का उपयोग करना चाहते हैं, तो आपको एक उचित मूल्यांकन फ़ंक्शन भी लागू करना चाहिए! इसके अलावा, आप उन एल्गोरिदम के प्रदर्शन की तुलना तब नहीं कर सकते हैं जब आपके रणनीति गेम पर उस मामले में लागू किया जाता है, जो शतरंज पर लागू होता है।

शतरंज इंजनों के मूल्यांकन कार्य क्या हैं, जैसे सामान का मूल्यांकन कर रहे हैं:

  • बोर्ड पर एक टुकड़े की स्थिति कितनी अच्छी है?
  • एक टुकड़े पर कितनी बार हमला किया जाता है?
  • टुकड़ा कितनी बार संरक्षित है?
  • बोर्ड पर प्रत्येक टुकड़ा स्वतंत्र रूप से "चाल" कितना अच्छा हो सकता है? (या: कितने टाइल यह "नियंत्रण" करता है)

मूल्यांकन समारोह के उन हिस्सों को पहले आपके खेल के लिए "अनुवादित" होना चाहिए:

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

सभी यूनिटों के लिए अलग-अलग रेटिंग को वेटिंग फंक्शन (factor_a * Rating_a + factor_b * ranting_b + ...) द्वारा संक्षेपित किया जाना चाहिए ...

रणनीति के खेल में भी संसाधनों (सोना, लकड़ी, ...) को ध्यान में रखा जाना चाहिए।

यदि आपका मूल्यांकन फ़ंक्शन पर्याप्त रूप से पर्याप्त है, तो आपको अधिकांश मामलों के लिए वास्तव में "गहरे" पेड़ में खोज करने की आवश्यकता नहीं है। तो आप शायद केवल 3 या 10 सबसे आशाजनक विकल्पों पर करीब से नज़र डालें। अगला अध्याय देखें ...

प्रत्येक स्थिति में संभव चालें

रणनीति के खेल के लिए न्यूनतम / अधिकतम का उपयोग करने के बारे में सबसे अधिक समस्या यह है कि आप एक बारी में कई इकाइयों को कमांड कर सकते हैं, जबकि शतरंज में आपको केवल एक इकाई को कमांड करने की अनुमति दी जाती है (कास्टलिंग के अलावा, लेकिन यह स्पष्ट रूप से परिभाषित चाल संयोजन है)। यह प्रत्येक "स्थिति" (शतरंज की अवधि) के लिए एन इकाइयों के लिए 5 ^ एन संभव चाल का कारण बनता है, यदि आप केवल प्रत्येक इकाई के लिए "उत्तर, दक्षिण, पश्चिम, पूर्व या बंद करो" के बीच तय करेंगे। आप इसे निम्न स्तर के कमांड में जटिल कमांड को तोड़कर हल कर सकते हैं: जैसे कि यूनिट ए के लिए कार्रवाई चुनें, गहराई में जाएं और यूनिट बी के लिए निर्णय लें .... यूनिट एन के लिए निर्णय लें ... और फिर इस मोड़ को समाप्त करें। लेकिन, यह अकेले जटिलता को नहीं बदलता है! आपको उस आदेश का अनुकूलन करना चाहिए जिसमें क्रियाएं इकाइयों (जैसे पहली इकाई बी, सी, डी और फिर इकाई ए) को सौंपी जाती हैं। आप अंतिम गणना के दौरान प्रत्येक इकाई के लिए निर्णय के प्रभाव को रिकॉर्ड कर सकते हैं और फिर महत्व के आधार पर छांट सकते हैं। इस तरह से अल्फा-बीटा प्रूनिंग का उपयोग खोज पेड़ से किसी भी खराब संयोजन को बहुत पहले से काटने के लिए किया जा सकता है। सर्वोच्च प्राथमिकता हमेशा प्रत्येक पुनरावृत्ति में "अधिक कुछ नहीं और अपनी बारी को समाप्त करें" (शून्य चाल छंटाई) होनी चाहिए। इस तरह से आप अधिकांश इकाइयों को अधिकांश कार्य सौंप सकते हैं और छोड़ सकते हैं और उन्हें वही जारी रख सकते हैं जो उन्होंने पहले किया था। इस तरह से खोज "महत्वपूर्ण" इकाइयों (उदाहरण के लिए वास्तव में अभी का मुकाबला करने वाले) पर एक नज़र डालकर जल्दी से गहराई में जाएगी। सुनिश्चित करें कि केवल प्रत्येक इकाई को एक बार कमांड करें ... आप यह सुनिश्चित करने के लिए कुछ यादृच्छिकता का भी उपयोग कर सकते हैं कि "महत्वपूर्ण" इकाइयों को समय-समय पर एक कमांड मिल रही है। विशेष रूप से, कुछ काम पूरा करने वाली इकाइयाँ (उदा

Iterative दीपनिंग + कैशिंग / हैश टेबल

फिर, आप कुछ समय सीमा तक पहुंचने पर अधिक से अधिक गहराई में जाने के लिए "इंटरप्टिव डीपिंग" कर सकते हैं। यदि आप कम इकाइयाँ हैं, तो आप गहराई से खोज करेंगे, और यदि आपके पास हमेशा बेहतर समाधान खोजने के लिए रुकें तो आपके पास कुछ "परिणाम" होंगे। खोज के पूर्व परिणामों को कैश करने के लिए Iterative deepening को हैश टेबल का उपयोग करना होगा। यह अंतिम परिणाम खोज से कुछ परिणामों का पुन: उपयोग करने में सक्षम बनाता है (खोज ट्री की शाखा जो उन कमांडों को कवर करती है जिन्हें वास्तव में अंतिम मोड़ में निष्पादित किया गया था)। इसे लागू करने के लिए, आपको एक बहुत अच्छे हैशिंग फ़ंक्शन ("ज़ॉब्रिस्ट की" पर एक नज़र डालनी होगी), जो कि इसे अद्यतन करने में सक्षम है। हैश कुंजी को अपडेट करने का मतलब है, कि आप पुरानी "स्थिति" की हैश कुंजी ले सकते हैं और स्थिति में परिवर्तन में किक कर सकते हैं (जैसे स्थिति x पर इकाई को हटा दें और इसे स्थिति y पर रख दें)। इस तरह से हैश कुंजी की गणना करना त्वरित है और आपको इसकी गणना करने के लिए पूरे बोर्ड की स्थिति को संसाधित करने की आवश्यकता नहीं है, बस यह जांचने के लिए कि क्या हैश में इस स्थिति के लिए पूर्व प्रविष्टि है। एक तरह से आपको यह सुनिश्चित करना चाहिए कि कोई हैश टकराव न हो।

गैर-निर्धारक व्यवहार

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

सारांश

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

उन तकनीकों की व्याख्या के लिए एक अच्छा संसाधन है (शतरंज के लिए) http://chessprogramming.wikispaces.com/

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

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