वैक्टर की एक राशि के अधिकतम घटक को कम करें


11

मैं इस अनुकूलन समस्या के बारे में कुछ सीखना चाहता हूँ: दिए गए गैर-ऋणात्मक पूर्ण संख्याओं के ai,j,k , अभिव्यक्ति को कम करने वाला एक कार्य ज्ञात करें।f

maxkiai,f(i),k

एक अलग सूत्रीकरण का उपयोग करके एक उदाहरण यह स्पष्ट कर सकता है: आपको वैक्टर के सेट का एक सेट दिया जाता है जैसे

{
    {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
    {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
    {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}

प्रत्येक सेट से एक वेक्टर चुनें, ताकि उनकी राशि का अधिकतम घटक न्यूनतम हो। उदाहरण के लिए, आप चुन सकते हैं

(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)

2 के बराबर अधिकतम घटक के साथ, जो यहां स्पष्ट रूप से इष्टतम है।

अगर यह एक अच्छी तरह से ज्ञात समस्या है और क्या समस्या-विशिष्ट अनुमानित समाधान विधियां उपलब्ध हैं, तो मैं उत्सुक हूं। यह तेज और प्रोग्राम के लिए आसान होना चाहिए (कोई ILP सॉल्वर, आदि)। कोई सटीक समाधान की आवश्यकता नहीं है क्योंकि यह वास्तविक समस्या का केवल एक अनुमान है।


मैं देखता हूं कि मुझे उस समस्या के उदाहरणों के बारे में कुछ विवरण जोड़ना चाहिए, जिनमें मेरी दिलचस्पी है:

  • i{0,1,,63} , यानी, वहाँ हमेशा 64 पंक्तियाँ हैं (जब उपरोक्त उदाहरण में लिखा गया है)।
  • j{0,1} , यानी, प्रति पंक्ति केवल 2 वैक्टर हैं।
  • एनk{0,1,,N1} जहां (वेक्टर लंबाई) 10 और 1000 के बीच है।N

इसके अलावा, प्रत्येक पंक्ति पर सभी वैक्टर के तत्वों का योग समान होता है, अर्थात

i,j,j:kai,j,k=kai,j,k

और सदिश राशि के तत्वों का योग इसकी लंबाई से कम है, अर्थात,

kiai,f(i),k<N

4
3-विभाजन समस्या को कम करना आपकी समस्या नहीं है। इसका मतलब है कि आपकी समस्या NP- पूर्ण है भले ही संख्याओं को एकरूपता में दिया गया हो, और यह एक सन्निकटन एल्गोरिथ्म के लिए सामान्य दृष्टिकोणों में से एक है।
त्सुयोशी इतो

सुधार के लिए धन्यवाद और अंतर्दृष्टि के लिए @Tsuyoshi Ito को धन्यवाद। अगर मैं इसे सही ढंग से समझता हूं, तो प्रति पंक्ति दो वैक्टर (जो मैं बताना भूल गया था) पर प्रतिबंध कटौती को अमान्य कर देता है और समस्या को बहुत आसान बना सकता है।
मआर्टिनस जूल

आप सही कह रहे हैं, 3-विभाजन की समस्या से मैं जो सोच रहा था, उसमें कमी तब नहीं आती जब प्रति पंक्ति दो वैक्टर होते हैं।
१२:०२ पर त्सुयोशी इतो

तो तुलना करने के लिए संयोजन हैं? ji
जेसन क्लेबन

@ uosɐs: सटीक होना, देखते हैं संभव संयोजनों, जहां के लिए संभावनाओं की संख्या है और के लिए संभावनाओं की संख्या है । J = 2 j I = 64 iJI=264J=2jI=64i
मआर्टिनस

जवाबों:


7

3SAT से दो वेक्टर संस्करण के लिए कटौती: एक सूत्र दिया, चलो सूचकांक चर, , और सूचकांक खंड। चलो बार चर की संख्या हो सकारात्मक प्रतीत होता है (यदि ) या नकारात्मक (यदि ) खंड में । ऑप्ट से कम है यदि सूत्र संतोषजनक है (आक्षेप स्पष्ट है)।जे { 0 , 1 } k एक मैं , जे , कश्मीर मैं j = 0 जे = 1 कश्मीर 3ij{0,1}kai,j,kij=0j=1k3

मैं इस समस्या पर कैसे हमला करूंगा: बड़े पड़ोस की खोज। किसी भी समाधान के साथ शुरू करो। यादृच्छिक पर पंक्तियों को चुनें । ब्रूट बल का उपयोग सबसे अच्छा समाधान खोजने के लिए करें जहाँ केवल उन पंक्तियों पर बदल सकता है - यहां तक ​​कि मध्यम लिए बहुत ही उल्लेखनीय है कि समस्या का आकार पंक्तियाँ हैं। दोहराएँ।एफ के 64rfk64


1
यह एक सुंदर कमी है। मुझे यकीन नहीं है कि इसके पास कोई वोट क्यों नहीं है? वैसे भी, यहाँ मेरा +1 है।
त्सुयोशी इतो

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

7

जब समस्या का आकार स्थिर होता है, तो हम किसी समस्या की जटिलता पर चर्चा नहीं कर सकते हैं, क्योंकि (अधिकांश भाग) जटिलता सिद्धांत समस्या की जटिलता के विषम व्यवहार से संबंधित है क्योंकि समस्या का आकार अनंत को जाता है। यहां, मैं दोनों पंक्तियों की संख्या और वैक्टर के डिमेशन को चर के रूप में मानता हूं।

तब समस्या एनपी-पूर्ण होती है, भले ही इनपुट में नंबर एकात्मक में दिए गए हों। यह आपके प्रश्न का उत्तर नहीं है क्योंकि आप सन्निकटन के बारे में पूछ रहे हैं, लेकिन यह कुछ है।

समस्या को कठोरता से परिभाषित करें:

उदाहरण : n वैक्टर के जोड़े एक मैं , मैं ∈ ℕ मीटर ( मैं ∈ {1, ..., n }), और कश्मीर ∈ ℕ, एकल में सभी।
प्रश्न : हम चुन सकते हैं या तो एक मैं या मैं प्रत्येक के लिए मैं इतना है कि इन का योग n वैक्टर ज्यादा से ज्यादा है कश्मीर में प्रत्येक समन्वय?

निम्नलिखित एक ज्ञात एनपी-पूर्ण समस्या है जिसे 3-विभाजन कहा जाता है :

3-विभाजन
उदाहरण : B ℕ :, और 3 k पूर्णांक c 1 ,…, c 3 k के बीच B / 4 और B / 2, अनन्य, जैसे कि = i = 1 3 k c i = kB , सभी एकात्मक में।
प्रश्न : क्या मल्टीसेट { c 1 ,…, c 3 k } को k multisets S 1 ,…, S k में विभाजित किया जा सकता है ताकि प्रत्येक S j का योग बराबर हो।बी ?

3-विभाजन समस्या के उदाहरण ( B ; c 1 ,…, c 3 k ) को देखते हुए , उपरोक्त समस्या का एक उदाहरण निम्नानुसार बनाएँ। प्रत्येक के लिए मैं = 1, ..., 3 कश्मीर और j = 1, ..., कश्मीर , हम 4 की एक जोड़ी का निर्माण करेगी कश्मीर आयामी वैक्टर, चाहे पर विकल्प का प्रतिनिधित्व मैं के अंतर्गत आता है एस जे या नहीं:

  • वेक्टर पसंद का प्रतिनिधित्व " मैंएस जे " केवल एक अशून्य प्रविष्टि है, जो (है कश्मीर -1) मैं पर जे वें समन्वय।
  • विकल्प " c i j S j " का प्रतिनिधित्व करने वाले वेक्टर में केवल एक नॉनज़ेरो प्रविष्टि होती है, जो कि ( k + i ) -th समन्वय पर B होती है ।

(यह उदाहरण है कि देखने के लिए मुश्किल नहीं है बी , सी 1 , ..., सी 3 कश्मीर 3-विभाजन समस्या का) एक समाधान है अगर और सिर्फ़ अगर वहाँ 3 में से प्रत्येक से एक सदिश का चयन करने के लिए एक रास्ता है कश्मीर 2 का निर्माण किया जोड़े ताकि इन वैक्टर के योग के सभी निर्देशांक अधिकतम ( k B1) B पर हों । (वास्तव में, जब ऐसा होता है, तो योग के सभी निर्देशांक ( k , 1) B के बराबर होते हैं ।) इसलिए यह 3-विभाजन समस्या से उपरोक्त समस्या में कमी है।

अब तक, मैंने प्रश्न के अंत में बताई गई दो अतिरिक्त बाधाओं को नजरअंदाज कर दिया, लेकिन दोनों को इस कमी को थोड़ा संशोधित करके लागू करना आसान है। प्रत्येक वेक्टर के तत्वों का योग समान है, डमी निर्देशांक जोड़कर लागू किया जा सकता है जिसमें केवल 0 या 1 होते हैं। यह शर्त कि आयाम से कम है, डमी निर्देशांक जोड़कर लागू किया जा सकता है जिसमें केवल 0 होते हैं।


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