क्या यह एनपी-पूर्ण समस्या हो सकती है?


10

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

एक प्रारंभिक संख्या को देखते हुए, आप और आपका मित्र इससे एक आदर्श वर्ग को घटाना चाहते हैं। शून्य जीत हासिल करने वाला पहला। उदाहरण के लिए:

प्रारंभिक अवस्था: 37

खिलाड़ी 1 घटाव 16. राज्य: 21

प्लेयर 2 घटाव 8. राज्य: 13

खिलाड़ी 1 घटाव 4. राज्य: 9

Player2 घटाव 9. राज्य: 0

खिलाड़ी 2 जीत!

एक प्रोग्राम लिखें, जो एक प्रारंभिक अवस्था देता है, एक इष्टतम कदम लौटाता है, यानी एक जो गेम जीतने के लिए नेतृत्व करने की गारंटी है। यदि कोई संभावित कदम आपको एक जीतने की स्थिति में नहीं ले जा सकता है, तो -1 लौटें।

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

किसी को भी इस समस्या को हल करने के लिए एक बहुपद एल्गोरिथ्म के बारे में सोच सकते हैं? यदि नहीं, तो क्या यह एनपी-पूर्ण हो सकता है? क्यों?


1
जिज्ञासा से बाहर, आप विशेष रूप से यह क्यों पूछ रहे हैं कि क्या यह एनपी-पूर्ण है? (व्यक्तिगत रूप से, मैंने अनुमान लगाया होगा कि यह एनपी में भी नहीं है, हालांकि मैं वास्तव में नहीं जानता हूं।)
2042 को बर्बाद करें

@ruakh ने हाल ही में एक कोडिंग इंटरव्यू के दौरान इस समस्या का सामना किया और मेरे द्वारा वर्णित गतिशील प्रोग्रामिंग का उपयोग करके छद्म-बहुपद समाधान का प्रस्ताव किया। हालाँकि, समस्या के बारे में ध्यान से सोचने के बाद मैं एक बहुपद समय एल्गोरिथ्म के साथ नहीं आ सका। मैंने जल्द ही खुद से सवाल करना शुरू कर दिया कि क्या यह वास्तव में एनपी (-Complete) समस्या नहीं थी।
मार्टिन कोप्स

क्या आपने गणना करने की कोशिश की है कि कौन से पद जीत रहे हैं और कौन से पद खो रहे हैं? शायद एक पैटर्न पैदा होगा।
युवल फिल्मस

@YuvalFilmus विकिपीडिया के अनुसार इस पैटर्न का कोई ज्ञात सूत्र नहीं है ( OEIS में अनुक्रम A030193 )
मार्टिन

ठीक है, मैं बस इस जानकारी के साथ एक उत्तर पोस्ट करने जा रहा था। A224839 भी देखें।
युवल फिल्मस

जवाबों:


6

खोने के पदों का अनुक्रम OEIS, A030193 में पाया जा सकता है , जैसा कि Grundy value 1, A224839 वाले पदों का अनुक्रम है । विश्वकोश कई प्रासंगिक लेखों का हवाला देता है। शायद उनमें से कुछ अनुक्रम की गणना के लिए गैर-तुच्छ एल्गोरिदम पर चर्चा करते हैं।


जैसा कि आपने उल्लेख किया है, यह क्रम खोने वाले पदों का प्रतिनिधित्व करता है। यहां तक ​​कि अगर आप निरंतर समय में जांच करने में सक्षम थे कि क्या कोई स्थिति खो जाती है या नहीं (जो कठिन लगता है!) समस्या अभी भी आपको इष्टतम चाल वापस करने के लिए कहती है, अर्थात आपको वर्तमान स्थिति में लाने के लिए किस वर्ग को घटाना होगा। एक खोने की स्थिति। समस्या वर्तमान स्थिति से वर्गों को घटाकर एक खोने की स्थिति खोजने के लिए उबाल देगी। तो आपको अभी भी राज्य की तुलना में छोटे सभी वर्गों के माध्यम से पुनरावृति करने की आवश्यकता है, भले ही आप यह जांच कर सकें कि क्या स्थिति लगातार समय में खो रही है।
मार्टिन कॉप्स

3
ठीक है, यह पर्याप्त नहीं होगा, लेकिन यह एक अच्छी शुरुआत होगी। शायद आप किसी स्थान की जीतने की स्थिति की गणना करने में सक्षम होने से कुछ अंतर्दृष्टि प्राप्त करेंगे। साथ ही, यह दर्शाता है कि यह तय करना कठिन है कि कौन सी स्थिति खो रही है, यह दिखाने के लिए पर्याप्त होगा कि जैसा कि कहा गया है कि आपकी समस्या एनपी-हार्ड है, किसी भी उचित संस्करण संस्करण में।
युवल फिल्मस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.