0-1 प्रोग्रामिंग के लिए सटीक घातीय समय एल्गोरिदम


10

क्या निम्न समस्या के लिए ज्ञात एल्गोरिदम हैं जो भोली एल्गोरिथम को हराते हैं?

इनपुट: एक सिस्टम का मीटर असमानताओं रैखिक।Ax≤bm

आउटपुट: एक संभव समाधान यदि कोई मौजूद है।x∗∈{0,1}n

मान लें कि और b में पूर्णांक प्रविष्टियाँ हैं। मुझे सबसे बुरी स्थिति में दिलचस्पी है।Ab

जवाबों:


14

यदि superlinear है, इस तरह के एक एल्गोरिथ्म मजबूत घातीय समय परिकल्पना खंडन होता है, के बाद से संयोजक सामान्य रूप में सूत्रों 0-1 प्रोग्रामिंग का एक विशेष मामला और Sparsification लेम्मा हैं हमें कम करने के लिए अनुमति देता है कश्मीर रैखिक कई खंड पर CNF-सैट को -SAT ।mk

हालांकि, इम्पैग्लियाज़ो, पटुरी, और खुद के कारण एक एल्गोरिथ्म है जो तारों की संख्या, यानी में नॉनज़ेरो गुणांक की संख्या रैखिक होने पर इस तरह की असमानताओं को हल कर सकता है। विशेष रूप से, यदि तारों की संख्या c n है , तो एल्गोरिथ्म समय 2 ( 1 - s ) n में चलता है , जहां s = 1 हैAcn2(1−s)n ।s=1cO(c2)


1

यदि काफी छोटा है, तो आप भोले एल्गोरिदम से बेहतर कर सकते हैं, अर्थात, 2 एन समय से बेहतर । यहाँ "छोटा पर्याप्त" का मतलब है कि मी कुछ n / lg n की तरह छोटा है । चलने का समय अभी भी घातीय होगा - उदाहरण के लिए, यह 2 n / 2 समय हो सकता है - लेकिन यह भोले एल्गोरिथ्म की तुलना में तेज़ होगा।m2nmn/lg⁡n2n/2

संयोग से, यह इस तरह दिखता है हमें की तुलना में तेजी में समस्या को हल करने की अनुमति नहीं है कुछ मामलों में जहां मैट्रिक्स के लिए समय एक प्रविष्टियों की एक सुपर रेखीय संख्या है। मुझे नहीं पता कि यहाँ दिए गए अन्य उत्तर के साथ इसे कैसे स्क्वायर किया जाए। नतीजतन, आपको मेरे जवाब को ध्यान से जांचना चाहिए: यह संकेत दे सकता है कि मैंने कहीं एक गंभीर गलती की है।2nA


बुनियादी दृष्टिकोण: लिखने है, जहां एक्स 0 पहले रखती n / 2 के घटकों एक्स और एक्स 1 रखती पिछले n / 2 घटकों; और इसी तरह ए = ( ए 0 , ए 1 ) , जहां ए 0 में ए और ए 1 के बाएं एन / 2 कॉलम हैं दाईं ओर एनx=(x0,x1)x0n/2xx1n/2A=(A0,A1)A0n/2AA1 कॉलम। अब एक एक्स ≤ ख के रूप में फिर से लिखा जा सकता हैn/2Ax≤b

A0x0+A1x1≤b,

या समकक्ष,

A0x0≤b−A1x1.

A 0 x 0 के लिए सभी संभावनाओं की गणना करें , और S को संभावित मानों के सेट को निरूपित करें, अर्थात,2n/2A0x0S

S={A0x0:x0∈{0,1}n/2}.

T2n/2b−A1x1

T={b−A1x1:x1∈{0,1}n/2}.

अब समस्या बन जाती है

S,T⊆Zm2n/2s∈St∈Ts≤t

≤si≤tii

O(2n/2(n/2)m−1)mn/lg⁡n2n


m=1m=1xi=1A1,i≤0xi=0x


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

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