मैं एक समय के लिए निम्नलिखित समस्या के बारे में सोच रहा हूं, और मुझे इसके लिए एक बहुपद समाधान नहीं मिला है। केवल क्रूर-स्रोत। मैं एक NP- कम्पलीट प्रॉब्लम को कम करने की कोशिश कर रहा हूँ, वो भी बिना किसी सक्सेज के।
यहाँ समस्या है :
आपके पास सॉर्ट किए गए सेट सकारात्मक पूर्णांक जोड़े हैं।
निम्नलिखित ऑपरेशन एक जोड़ी के लिए लागू किया जा सकता है Swap(pair)
:। यह जोड़ी के तत्वों को स्वैप करता है, इसलिए बन जाएगा
जब सेट में एक जोड़ी बदली जाती है, तो सेट स्वचालित रूप से फिर से सॉर्ट हो जाता है (स्वैप की गई जोड़ी जगह से बाहर हो जाती है और यह सेट में अपने स्थान पर चली जाएगी)।
समस्या यह देखने पर होती है कि क्या कोई अनुक्रम है, जो किसी जोड़ी पर शुरू होता है, पूरे सेट को स्वैप करता है, निम्न स्थिति के साथ:
एक जोड़ी की अदला-बदली होने के बाद, अगले जोड़े की अदला-बदली या तो उत्तराधिकारी या सेट में पूर्ववर्ती जोड़ी से की जानी चाहिए।
इस समस्या का बहुपद समय समाधान या एनपी-पूर्ण समस्या को कम करना बहुत अच्छा होगा।
नोट:
यह पहले से ही एक निर्णय समस्या है। मैं जानना नहीं चाहता कि कौन सा अनुक्रम है: केवल यदि कोई अनुक्रम मौजूद है।
एक जोड़ी की अदला-बदली के बाद सेट को कैसे क्रमबद्ध किया जाता है, इसका उदाहरण
अगर मैं पहली जोड़ी को स्वैप करता हूं, तो यह हो जाता है: , और सेट को छाँटने के बाद (सॉर्ट की गई जोड़ी को अपनी नई स्थिति में रखते हुए), हमारे पास है:
फिर मुझे या तो (पूर्ववर्ती) जोड़ी या (सक्सेसर) स्वैप करना होगा, और प्रक्रिया को तब तक दोहराना होगा जब तक कि सभी जोड़े स्वैप न हो जाएं (यदि संभव हो)।( 7 , 8 )
महत्वपूर्ण:
आप पहले से स्वैप की गई जोड़ी को स्वैप नहीं कर सकते।
यदि 'स्वैप' ऑपरेशन का क्रम है, तो सभी जोड़े को एक बार और केवल एक बार नाम बदलना होगा।
उदाहरण जहां सभी जोड़े को स्वैप करना संभव नहीं है
( 1 , 4 ) ( 3 , 2 ) ( 5 , 5 )