एक उप योग राशि की जटिलता


9

क्या उप-सम योग समस्या का यह रूप आसान / ज्ञात है?

एक पूर्णांक दिया m, और सकारात्मक पूर्णांक का एक सेट A={x1,x2,...,xn} ऐसा हर xi सबसे ज्यादा है k=2 बिट्स के लिए सेट 1 (xi=2bi1+2bi2,bi1,bi20); वहाँ एक सबसेट हैAA ऐसा है कि इसके तत्वों का योग बराबर है m ?

उस में है P? क्या यह अभी भी हैNP-पूर्ण?

और अगर हर xi सबसे ज्यादा है k=3 बिट्स के लिए सेट 1? के लियेk=1 समस्या तुच्छ है।

जवाबों:


8

यह अभी भी है NPअपूर्ण, यहां तक ​​कि के लिए k=2। सबसे बड़ी राशि के उदाहरण को देखते हुए, हम संख्याओं को विभाजित करके और कुछ अतिरिक्त बिट्स जोड़कर इस संस्करण में बदल सकते हैं।

पहला, समस्या में सभी संख्याओं का योग इससे कम होगा 2m के कुछ मूल्य के लिए m

अब, एक नंबर लेते हैं n मूल समस्या से जो है kबिट्स सेट। हम इस संख्या को में विभाजित करेंगेk 2 बिट के साथ संख्याएँ ऐसी सेट होती हैं कि उन संख्याओं का योग होता है n+2k+m। हम इसे खोजकर, पुनरावर्ती रूप से कर सकते हैंk संख्याएँ जो पहले तक होती हैं k बिट्स प्लस 2k+m1 तथा k संख्या जो अंतिम तक योग करती है k बिट्स प्लस 2k+m1

उस नंबर के अलावा हम नंबर भी जोड़ देंगे 2k+mसमस्या के लिए। एक समाधान में या तो यह संख्या होनी चाहिए या सभीkपूर्व में निर्मित संख्याएँ। यदि मूल लक्ष्य मान थाt नया लक्ष्य मान होगा t+2k+m

यदि मूल समस्या में एक से अधिक संख्या थी, तो हम इस प्रक्रिया को दोहरा सकते हैं k+m+1 के नए मूल्य के लिए m

स्थिति में बिट के केवल दो तरीके हैं k+m सेट किया जा सकता है: उत्तर में संख्या हो सकती है 2k+m या सभी k संख्या जो कि योग है n+2k+m। इसलिए हमने आपकी सबसेट राशि को उप-योग में घटा दिया है।

एक उदाहरण के रूप में, आइए लेते हैं {2,3,5} लक्ष्य मान के साथ 7। इस समस्या को एन्कोड किया जा सकता है क्योंकि निम्नलिखित बाइनरी संख्याओं को ले कर यहाँ प्रस्तुत सबसेट संस्करण:

2 को मैप किया जाता है 0100 1 तथा 0000 1। (अतिरिक्त बिट का उपयोग करना यहां कड़ाई से आवश्यक नहीं है।)

3 से मैप किया जाता है 1000 00 1,0100 00 1 तथा 0000 00 01

5 से मैप किया जाता है 1000 00 000 1,0010 00 000 1 तथा 0000 00 000 01

नया लक्ष्य मान बन जाएगा 1110 10 010 01

यदि मूल समस्या का प्रतिनिधित्व किया जाता है n बिट्स, तब तब्दील समस्या सबसे अधिक है O(n4)बिट्स। मूल समस्या सबसे ज्यादा होगीO(n) प्रत्येक के साथ सबसे अधिक संख्या O(n)बिट्स, तो उन सभी का योग भी ओ (एन) है। रूपांतरित समस्या होगीO(n2) संख्या (प्रत्येक के बाद से n-बिट संख्या में विभाजित है n+1 2-बिट संख्या, उनकी लंबाई सबसे अधिक होने के साथ O(n2) चूंकि हम उपयोग करते हैं nप्रत्येक संख्या के लिए अतिरिक्त बिट्स। तो रूपांतरित समस्या का कुल आकार हैO(n4) बिट्स।


क्या आप सुनिश्चित हैं कि एन्कोडिंग कार्य टेप के एक घातीय आकार के लिए नेतृत्व नहीं करता है?
Vor

नहीं, मुझे लगता है कि रूपांतरित समस्या आकार में चतुर्थ है। यदि इनपुट में n बिट्स हैं, तो n बिट्स सेट के साथ प्रत्येक n नंबर पर हैं। अतः परिवर्तित समस्या में O (n ^ 2) संख्याएँ होंगी (चूँकि k-bit संख्या k + 1 संख्याओं में विभाजित होती है)। प्रत्येक संख्या (2n) बिट्स है जो मूल समस्या में प्रत्येक n संख्या के लिए अधिकतम योग प्लस n बिट्स को समायोजित करने के लिए है। तो प्रत्येक संख्या में O (n ^ 4) बिट्स के लिए O (2n + n ^ 2) बिट्स होंगे।
टॉम वैन डेर ज़ंडेन

@TomvaderZanden: मैंने प्रश्न में आपकी कमी की एक तस्वीर जोड़ी; देखें कि क्या मैंने इसकी सही व्याख्या की है
वोर

@TomvaderZanden: आज मैं आपकी कमी को फिर से देखता हूं, लेकिन यह स्पष्ट नहीं है कि एक मनमानी संख्या से कैसे n साथ में k बिट्स सेट आप इसे में विभाजित कर सकते हैं k 2-बिट संख्या जहां "उच्चतम" भाग के लिए गाया जाता है 2k। मान लीजिए आपके पास एक नंबर हैn साथ में k=13बिट्स सेट; आपको 13 2-बिट संख्या की आवश्यकता है, लेकिन 13 1101 है और आप इसे दो बिट संख्या के साथ "कवर" नहीं कर सकते (आपका उदाहरण 3 और 5 k = 2 के लिए काम करता है)। मुझे लगता है कि यह आसानी से तय किया जा सकता है यदि आप प्रत्येक के लिए एक अलग उच्च बिट का उपयोग करते हैंk2-बिट संख्या; वे 01111 ... 1 को योग करेंगे, फिर आप एक डमी 0000 जोड़ेंगे ... 1 जो योग होने की अनुमति देगा2k
Vor

यह थोड़ा अस्पष्ट है, लेकिन एक "आगमनात्मक" प्रक्रिया का उपयोग करना निश्चित रूप से संभव है। आप वास्तव में जरूरत नहीं हैk बिट्स, आप केवल जरूरत है ceil(logk)। यदि आप 13 1-बिट संख्याओं को खोजना चाहते हैं जो योग हैं24, तो आपको 6 संख्याओं को खोजने की आवश्यकता है जो योग करते हैं 23 और 7 कि भी योग है 23। हम ले सकते है1020+321 जो वास्तव में करने के लिए बोता है 24
टॉम वैन डेर ज़ंडेन

0

यह Vor द्वारा प्रश्न से निकाली गई जानकारी है।

के लिये k3समस्या एनपी-पूर्ण बनी हुई है। मुझे मोनोटोन एक्स-सैट से एक त्वरित कमी मिली ( यहां कमी का स्कीमा देखें )।

समस्या भले ही एनपी-पूर्ण हो k=2, विवरण के लिए टॉम का जवाब देखें। यहाँ SUBSET SUM से उनकी कमी का एक छोटा सा प्रतिनिधित्व है:

यहाँ छवि विवरण दर्ज करें

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