एक निश्चित संख्या में चर के साथ पूर्णांक प्रोग्रामिंग


12

एच। लेनस्ट्रा इंटेगर प्रोग्रामिंग विद ए फिक्स्ड नंबर के प्रसिद्ध पत्र में कहा गया है कि निश्चित संख्या में चर के साथ पूर्णांक कार्यक्रम डेटा की लंबाई में समय के बहुपद में हल कर सकते हैं।

मैं इसकी व्याख्या इस प्रकार करता हूं।

  1. सामान्य रूप से पूर्णांक प्रोग्रामिंग अभी भी एनपी-पूर्ण है, लेकिन अगर मेरे हाथ में विशिष्ट समस्या का आकार (10.000 चर के बारे में, बाधाओं की एक मनमानी संख्या) व्यवहार में संभव है, तो मैं एक एल्गोरिथ्म का निर्माण कर सकता हूं जो कि बहुपदों की संख्या में कमी के कारण होता है लेकिन नहीं चर और बाधाओं की संख्या।
  2. परिणाम बाइनरी प्रोग्रामिंग के लिए भी लागू होता है क्योंकि मैं किसी भी पूर्णांक को एक उपयुक्त बाधा जोड़कर 0-1 करने के लिए बाध्य कर सकता हूं।

क्या मेरी व्याख्या सही है?

क्या इस परिणाम का कोई व्यावहारिक प्रभाव है? यही है, वहाँ एक कार्यान्वयन उपलब्ध है या यह CPLEX, Gurobi, या Mosek जैसे लोकप्रिय सॉल्वरों में उपयोग किया जाता है?

कागज के कुछ उद्धरण:

यह लंबाई, हमारे उद्देश्यों के लिए, n · m · log (a + 2) के रूप में परिभाषित की जा सकती है, जहाँ A और b के गुणांकों के निरपेक्ष मानों का अधिकतम मान होता है। वास्तव में, इस तरह की कोई बहुपद एल्गोरिथ्म मौजूद नहीं है, क्योंकि प्रश्न में समस्या एनपी-पूर्ण है

[...]

यह अनुमान लगाया गया था [५], [१०] कि एन के किसी निश्चित मूल्य के लिए पूर्णांक रैखिक प्रोग्रामिंग समस्या के समाधान के लिए एक बहुपद एल्गोरिथ्म मौजूद है। वर्तमान पेपर में हम इस तरह के एक एल्गोरिथ्म का प्रदर्शन करके इस अनुमान को साबित करते हैं। बहुपद की डिग्री जिसके द्वारा हमारे एल्गोरिथ्म के चल रहे समय को बांधा जा सकता है n का एक घातीय कार्य है।


2
"मैं एक एल्गोरिथ्म का निर्माण कर सकता हूं जो बहुत अधिक बाधाओं या चर की संख्या में बहुपत्नी होता है, लेकिन चर और बाधाओं की संख्या में नहीं।" दिलचस्प बिंदु / सवाल - अब तक हमने बाधाओं के लिए इसे सही माना है (निश्चित संख्या में चर को पकड़ते हुए), लेकिन शायद यह पूछना दिलचस्प होगा कि क्या यह चर के लिए सही हो सकता है (बाधाओं की संख्या निर्धारित करने के साथ) ? सहज रूप से ऐसा लगता है कि यह सच नहीं होना चाहिए, अन्यथा आईपी सामान्य रूप से बहुपत्नी होगा, लेकिन मुझे यकीन नहीं है।
usul

पेपर के खंड 4 में लेनस्ट्रा ने कहा है कि "मी के निश्चित मूल्य के साथ पूर्णांक रैखिक प्रोग्रामिंग समस्या बहुपद रूप से हल है।" (मी विरोधाभासों की संख्या है) यह मुख्य परिणाम के कोरोलरी के रूप में है। यह खंड मेरे लिए स्पष्ट नहीं है। एक दूसरे विचार पर शायद वह निश्चित एन एंड एम मान लेता है; इसका अर्थ "ए" और (ए और बी के गुणांक के पूर्ण मूल्यों का अधिकतम) में बहुपद है। (मैंने परिणाम के रूप में अपने प्रश्न से "या चर" भाग को हटा दिया)।
बर्नहार्ड कौसलर

6
@सुल: यह सच है और इसका मतलब यह नहीं है कि आईपी बहुपत्नी है। यह सिर्फ मतलब है कि एक एल्गोरिथ्म है कि में घातीय समय लगता है और बहुपद में मीटर और एक अन्य है कि में घातीय समय लगता है मीटर में और बहुपद nnn
Sasho निकोलोव

जवाबों:


19

वर्तमान सबसे तेज एल्गोरिथ्म वास्तव में हर निश्चित मूल्य के लिए पूर्णांक रैखिक कार्यक्रम की लंबाई में रैखिक है । अपनी पीएचडी थीसिस में, लोकश्टनोव (2009) ने निम्न प्रमेय द्वारा लेनस्ट्रा (1983), कन्नन (1987), और फ्रैंक एंड टार्डोस (1987) के परिणामों को संक्षेप में प्रस्तुत किया है।n

पूर्णांक रैखिक प्रोग्रामिंग को अंकगणितीय संचालन और L में अंतरिक्ष बहुपद का उपयोग करके हल किया जा सकता है । यहाँ L इनपुट में बिट्स की संख्या और पूर्णांक रैखिक कार्यक्रम में चर की संख्या n है।हे(n2.5n+(n)एल)एलएलn

इस प्रकार, समस्या को चर की संख्या द्वारा निर्धारित-पैरामीटर रैखिक पैरामीटर है।

1) हां, इंटेगर रैखिक प्रोग्रामिंग "अभी भी" एनपी-पूर्ण है। ऊपर दिए गए सैद्धांतिक परिणाम का समय केवल बाधाओं की संख्या पर रैखिक रूप से निर्भर करता है, इसलिए यह बाधाओं की संख्या में अच्छी तरह से मापता है। हालाँकि मुझे इस एल्गोरिथम के वास्तविक क्रियान्वयन का कोई पता नहीं है।

2) हाँ, चर बनाने से द्विआधारी मान सीधा होता है जैसा कि आपने देखा।

अपडेट करें। पर निर्भरता वास्तव में Integer रैखिक प्रोग्रामिंग के लिए चल रहे समय में सुधार किया जा सकता है। के आधार पर क्लार्कसन (1995) और Eisenbrand (2003) (नीचे टिप्पणी देखें) एक बार चल रहा है के साथ एक एल्गोरिथ्म प्राप्त कर सकते हैं हे ( 2 n n मीटर + 8 एन एन एल जहांएमबाधाओं की संख्या है औरएसएक बाधा या उद्देश्य समारोह को एन्कोड करने के लिए आवश्यक बिट्स की अधिकतम संख्या है।

हे(2nn+8nnलॉगलॉग+n2.5n+(n)रोंलॉग)
रों

1
आह, "फिक्स्ड-पैरामीटर रैखिक" शब्द के लिए धन्यवाद। यही लेनस्ट्रा का पेपर है। इन्हें भी देखें: en.wikipedia.org/wiki/Parameterized_complexity
बर्नहार्ड कौसलर

4
nहे(n2n)

टी(n,,रों)nरोंहे(2n+(लॉग)टी(n,(n),रों)हे(रों)(n)nहे(n)

1
यह आपके उत्तर के मूल तथ्यों को नहीं बदलता है, लेकिन एक अन्य प्रासंगिक संदर्भ केएल क्लार्कसन है। आयाम छोटा होने पर रैखिक और पूर्णांक प्रोग्रामिंग के लिए लास वेगास एल्गोरिदम। जे। एसीएम ४२ (२): ४8–-४९९, १ ९९ ५, डोई: १०.११४५ / २०१ ९ २०.२०१६।
डेविड एपपस्टीन

2
nहे(n2.5n+(n)एल)टी(n,(n),रों)(n)=4nएल=4nरों(n)हे(2nn+n2.5n+(n)(लॉग)रों)

4

लेनस्ट्रा-प्रकार के परिणामों के व्यावहारिक निहितार्थ और CPLEX, गुरोबी, आदि में संभावित कार्यान्वयन के बारे में यहाँ कुछ बिंदु दिए गए हैं। IP के लिए ऐसे अधिकांश एल्गो में महत्वपूर्ण चरणों में से एक "अच्छा" या "पतला" निर्देश है। यानी, हाइपरप्लेन जिनके साथ पॉलीटोप की चौड़ाई बहुत बड़ी नहीं है (चर और डेटा के आकार में बहुपद)। लेकिन महाजन और राल्फ़्स ( यहाँ प्रिन्प्रिंट ) से पता चला कि एक इष्टतम डिस्जंक्शन के चयन की समस्या एनपी-पूर्ण है। तो, इस वर्ग के अल्गो के व्यावहारिक रूप से कुशल कार्यान्वयन बनाने के लिए यह कठिन दिखाई देगा।

CPLEX जैसे पैकेज में लागू किए गए अधिकांश एल्गो को शाखा-और-कट तरीकों के रूप में वर्गीकृत किया जा सकता है। तकनीकों का यह परिवार आमतौर पर आईपी उदाहरणों पर अच्छी तरह से काम करता है जो संभव हैं, और अक्सर निकट-इष्टतम समाधान खोजने में सक्षम होते हैं। लेकिन लेनस्ट्रा-प्रकार के अल्गोस का ध्यान सबसे खराब स्थिति पर है आईपी उदाहरण जो शुरू करने के लिए अलग-थलग हैं, और लक्ष्य उनकी पूर्णांक क्षमता साबित करने के लिए है (और वे इस कार्य की जटिलता का अध्ययन करते हैं)। AFAIK, व्यावहारिक प्रासंगिकता के साथ समस्याओं का कोई वर्ग नहीं है जो इस विवरण को फिट करते हैं। इसलिए, CPLEX / Gurobi लोग शायद जल्द ही किसी भी समय लेनस्ट्रा-प्रकार के अल्गोस को लागू नहीं करेंगे।

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