पी में रैखिक प्रोग्रामिंग क्यों है लेकिन पूर्णांक प्रोग्रामिंग एनपी-हार्ड?


35

रैखिक प्रोग्रामिंग (एलपी) पी में है और पूर्णांक प्रोग्रामिंग (आईपी) एनपी-हार्ड है। लेकिन चूंकि कंप्यूटर केवल परिमित परिशुद्धता के साथ संख्याओं में हेरफेर कर सकते हैं, व्यवहार में एक कंप्यूटर रैखिक प्रोग्रामिंग के लिए पूर्णांक का उपयोग कर रहा है। इस वजह से, LP और IP को एक ही जटिलता वर्ग में नहीं होना चाहिए?


7
जेमाइट के उत्तर में थोड़ा जोड़ना: ऐसे कई मामले हैं जिनमें अभिन्नता से समस्या बहुत कठिन हो जाती है। उदाहरण के लिए, आंशिक नोक-झोंक की समस्या को बहुपद समय में हल किया जा सकता है, हालांकि पूर्णांक नैकपैक समस्या एनपी-हार्ड है। तो यह केवल एलपी और आईपी के लिए सही नहीं है।
user340082710

7
यहां तक ​​कि अगर हम मानते हैं कि कंप्यूटर पूर्णांक के साथ संचालन करते हैं, तो इसका मतलब यह नहीं है कि लौटा हुआ समाधान पूर्णांक है; यह तर्कसंगत हो सकता है, अर्थात , दो पूर्णांकों का अनुपात। और यह एक बहुत अधिक लचीलापन देता है। और निश्चित रूप से, हम हमेशा आईपी ​​के लिए एक तर्कसंगत समाधान को एक संभव समाधान में नहीं बदल सकते । सामान्य तौर पर, आईपी में इंटीग्रल सॉल्यूशन के लिए पूछने की तुलना में चर पर अधिक अवरोध होंगे। एक पूर्णांक कार्यक्रम के बारे में सोचो । 0,1
megas

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

2
@ हर्किल "यदि आप चाहते हैं कि अनंत परिशुद्धता के साथ संख्याओं में हेरफेर करना मुश्किल नहीं है, खासकर जब वे तर्कसंगत हो।" कंप्युटेबल नंबर्स कहे जाने वाले वास्तविक नंबरों का एक सख्त उपसमूह है, जिसमें परिमेय + संख्याएं जैसे sqrt (2) आदि ... और इसे ट्यूरिंग मशीन द्वारा संकलित संख्याओं के सेट के रूप में परिभाषित किया गया है। जो वहाँ शामिल नहीं हैं, परिभाषा के अनुसार, कंप्यूटर द्वारा हेरफेर नहीं किए जा सकते हैं।
साशा द नोब

1
@ शाशतेनोब आप जो कह रहे हैं वह वास्तव में हर्केल के साथ की गई बाधाओं पर नहीं है। कम्प्यूटेशनल नंबरों की पूर्वनिर्धारित अधिकतम सीमा नहीं है कि वे कितने सटीक हो सकते हैं (यह मनमाने ढंग से आपके लिए किसी भी मूल्य पर सेट है, बशर्ते कि ट्यूरिंग मशीन में पर्याप्त मेमोरी हो - इसलिए अनंत परिशुद्धता)। यह कहने के लिए कि कम्प्यूटेशनल नंबरों के सबसेट में सभी तर्कसंगत संख्याएं शामिल हैं, आप स्वीकार कर रहे हैं कि कंप्यूटर अनंत परिशुद्धता के साथ संख्याओं में हेरफेर कर सकते हैं। (हर्किल का कथन बिल्कुल सत्य है। यह तथ्य कि सटीक डेटा प्रकारों के लिए सीमित है, केवल एक अनुकूलन है।)
BrainSlugs83

जवाबों:


9

मैं टिप्पणी नहीं कर सकता क्योंकि इसके लिए 50 प्रतिनिधि की आवश्यकता है, लेकिन राफेल की टिप्पणी के बारे में कुछ गलत धारणाएँ फैलाई जा रही हैं, विशेष रूप से राफेल की टिप्पणी "सामान्य रूप से, एक महाद्वीप डोमेन का मतलब है कि कोई भी क्रूर बल नहीं है (और इसे तेज करने के लिए कोई चतुर उत्तराधिकार नहीं है।")

यह बिलकुल झूठ है। मुख्य बिंदु वास्तव में उत्तलता है। कुछ तकनीकी अड़चनों को छोड़कर, एक उत्तल सेट पर एक उत्तल कार्य (या एक अवतल कार्य को अधिकतम करना) को कम करना अनिवार्य रूप से तुच्छ है, बहुपद समय अभिसरण के अर्थ में।

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

गैर-उत्तल मामले में ऐसा नहीं है। यहां, एक वैश्विक न्यूनतम हो सकता है, लेकिन कई स्थानीय मिनिमा जो एक स्थानीय वंश एल्गोरिदम हमेशा एनपी-समस्याओं पर लागू होने पर लालची एल्गोरिदम करते हैं, उसी तरह आकर्षित होंगे। कभी-कभी वे वास्तविक इष्टतम पाते हैं, अधिकांश समय नहीं।


23

संक्षिप्त उत्तर: क्योंकि आप SAT के लिए बूलियंस का अनुकरण करने के लिए इंटेगर का उपयोग कर सकते हैं , लेकिन जब आप अपने आप को इस तक सीमित नहीं रखते हैं, तो आप वास्तव में SAT का अनुकरण नहीं कर सकते। आपको एक व्यवहार्य उत्तर मिलेगा, लेकिन अब आप जो भी SAT उदाहरण के लिए अनुकरण करने की कोशिश कर रहे थे, उसके संदर्भ में इसका कोई अर्थ नहीं है।

पीएनपी


21

रेखीय प्रोग्रामिंग "कुशल" है इसका कारण यह है कि समाधान स्थान को एकल उत्तल पॉलीहेड्रोन द्वारा दर्शाया जा सकता है। यदि कोई उस पॉलीहेड्रॉन पर "उच्चतम" वर्टेक्स ढूंढने की कोशिश कर रहा है (किसी को "ऊंचाई" अधिकतम करने के लिए अनुरूपता बनाने के लिए किसी भी रैखिक प्रोग्रामिंग समस्या के लिए एक रैखिक परिवर्तन लागू कर सकता है), तो किसी भी शीर्ष से कोई भी किनारों के साथ यात्रा कर सकता है "डाउनहिल" जाने के बिना उच्चतम बिंदु। क्या प्रोग्रामिंग "हार्ड" पूर्णांक बनाता है इसमें एक सतत समाधान स्थान नहीं है कि है, लेकिन इसके बजाय कई देखते हैं संबंध तोड़ना समाधान स्पेस, और इष्टतम समाधान की ओर संवर्द्धित काम करने के लिए कोई रास्ता नहीं है।


2
कीवर्ड यहाँ "उत्तलता" है
कोड़ी

1
क्या यह पहाड़ी पर चढ़ने की सरल विधि नहीं है, जिसमें से कोई भी संस्करण सबसे खराब स्थिति में बहुपद ज्ञात नहीं है?
jbapple

1
निरंतर अंतरिक्ष की तुलना में असतत स्थानों (जो असतत खोजों की अनुमति देता है) को हल करने में बहुत सारी समस्याएं हैं।
राफेल

@ राफेल: क्या आप ऐसी समस्याओं के कुछ उदाहरण दे सकते हैं? मैं इस बारे में सोच रहा हूं और बहुतों के साथ नहीं आ सकता।
कोड़ी

उदाहरण के लिए @cody ढूँढना मैक्सिमा / मिनट (एक आयामी) कार्य करता है। एक सुंदर उदाहरण के लिए यहाँ देखें जो केवल इस बात पर ध्यान देने योग्य है कि हम परिमित खोज स्थान को परिमित करने के लिए कम कर सकते हैं। ध्यान दें कि एलपी विशेष प्रकार के होते हैं: यह देखते हुए कि हमें केवल एक पॉलीहेड्रॉन के कोनों पर विचार करने की आवश्यकता है जो हमें एक परिमित खोज स्थान प्राप्त करते हैं। सामान्य तौर पर, एक महाद्वीप डोमेन का अर्थ है कि कोई भी क्रूर बल नहीं है (और इसे तेज करने के लिए कोई चतुर उत्तराधिकार नहीं है)।
राफेल

3

अन्य उत्तर सही हैं, लेकिन मैं उन्हें थोड़ा तकनीकी पाता हूं। मान लें कि आप एक मैट्रिक्स (बह) खत्म कर चुके हैं और किसी भी समाधान की तलाश कर रहे हैं और मैट्रिक्स इस तरह दिखता है:

column x1 x2 x3 x4 x5 x6 | solution
-----------------------------------
       1           1  1  | 3
          1              | 1
             1     1     | 2
                2  1  1  | 1  

क्यू

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