पूर्णांक प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|A mathematical optimization problem restricted to integers}} एक पूर्णांक प्रोग्रामिंग समस्या...")
 
No edit summary
Line 7: Line 7:




== ILPs के लिए प्रामाणिक और मानक रूप ==
== आईएलपी के लिए प्रामाणिक और मानक रूप ==


पूर्णांक रैखिक प्रोग्रामिंग में, विहित रूप मानक रूप से भिन्न होता है। विहित रूप में एक पूर्णांक रैखिक कार्यक्रम इस प्रकार व्यक्त किया जाता है (ध्यान दें कि यह है <math>\mathbf{x}</math> वेक्टर जो तय किया जाना है):<ref name="optBook">{{cite book|last1=Papadimitriou|first1=C. H.|author1-link=Christos Papadimitriou|last2=Steiglitz|first2= K.|author2-link=Kenneth Steiglitz|title=Combinatorial optimization: algorithms and complexity|year=1998|publisher=Dover|location=Mineola, NY|isbn=0486402584}}</ref>
पूर्णांक रैखिक प्रोग्रामिंग में, विहित रूप मानक रूप से भिन्न होता है। विहित रूप में एक पूर्णांक रैखिक कार्यक्रम इस प्रकार व्यक्त किया जाता है (ध्यान दें कि यह है <math>\mathbf{x}</math> वेक्टर जो तय किया जाना है):<ref name="optBook">{{cite book|last1=Papadimitriou|first1=C. H.|author1-link=Christos Papadimitriou|last2=Steiglitz|first2= K.|author2-link=Kenneth Steiglitz|title=Combinatorial optimization: algorithms and complexity|year=1998|publisher=Dover|location=Mineola, NY|isbn=0486402584}}</ref>
Line 16: Line 16:
& \text{and} && \mathbf{x} \in \mathbb{Z}^n,
& \text{and} && \mathbf{x} \in \mathbb{Z}^n,
\end{align} </math>
\end{align} </math>
और ILP को मानक रूप में व्यक्त किया जाता है
और आईएलपी को मानक रूप में व्यक्त किया जाता है


:<math> \begin{align}
:<math> \begin{align}
Line 25: Line 25:
& \text{and} && \mathbf{x} \in \mathbb{Z}^n,
& \text{and} && \mathbf{x} \in \mathbb{Z}^n,
\end{align} </math>
\end{align} </math>
कहाँ <math>\mathbf{c}\in \mathbb{R}^n, \mathbf{b} \in \mathbb{R}^m</math> वेक्टर और हैं <math>A \in \mathbb{R}^{m \times n}</math> एक मैट्रिक्स है। जैसा कि रैखिक कार्यक्रमों के साथ होता है, ILPs जो मानक रूप में नहीं हैं, असमानताओं को समाप्त करके, सुस्त चरों को प्रस्तुत करके सरल एल्गोरिथम # मानक रूप हो सकते हैं (<math>\mathbf{s}</math>) और वेरिएबल्स को बदलना जो साइन-बाधित नहीं हैं, दो साइन-बाधित चर के अंतर के साथ
कहाँ <math>\mathbf{c}\in \mathbb{R}^n, \mathbf{b} \in \mathbb{R}^m</math> वेक्टर और हैं <math>A \in \mathbb{R}^{m \times n}</math> एक मैट्रिक्स है। जैसा कि रैखिक कार्यक्रमों के साथ होता है, आईएलपी जो मानक रूप में नहीं हैं, असमानताओं को समाप्त करके, सुस्त चरों को प्रस्तुत करके सरल एल्गोरिथम मानक रूप हो सकते हैं (<math>\mathbf{s}</math>) और वेरिएबल्स को बदलना जो साइन-बाधित नहीं हैं, दो साइन-बाधित चर के अंतर के साथ


== उदाहरण ==
== उदाहरण ==
Line 39: Line 39:
     \end{align}
     \end{align}
</math>
</math>
व्यवहार्य पूर्णांक बिंदुओं को लाल रंग में दिखाया गया है, और लाल धराशायी रेखाएँ उनके उत्तल पतवार को दर्शाती हैं, जो कि सबसे छोटा उत्तल पॉलीहेड्रॉन है जिसमें ये सभी बिंदु शामिल हैं। समन्वय अक्षों के साथ नीली रेखाएं एलपी छूट के पॉलीहेड्रॉन को परिभाषित करती हैं, जो असमानताओं द्वारा अभिन्नता बाधा के बिना दी जाती है। ऑप्टिमाइज़ेशन का लक्ष्य काली धराशायी रेखा को पॉलीहेड्रॉन को छूते हुए ऊपर की ओर ले जाना है। पूर्णांक समस्या का इष्टतम समाधान बिंदु हैं <math>(1,2)</math> और <math>(2,2)</math> जिसका दोनों का उद्देश्य मान 2 है। विश्राम का अद्वितीय इष्टतम है <math>(1.8,2.8)</math> 2.8 के उद्देश्य मूल्य के साथ। यदि छूट का समाधान निकटतम पूर्णांकों तक किया जाता है, तो यह ILP के लिए संभव नहीं है।
व्यवहार्य पूर्णांक बिंदुओं को लाल रंग में दिखाया गया है, और लाल धराशायी रेखाएँ उनके उत्तल पतवार को दर्शाती हैं, जो कि सबसे छोटा उत्तल पॉलीहेड्रॉन है जिसमें ये सभी बिंदु सम्मलित हैं। समन्वय अक्षों के साथ नीली रेखाएं एलपी छूट के पॉलीहेड्रॉन को परिभाषित करती हैं, जो असमानताओं द्वारा अभिन्नता बाधा के बिना दी जाती है। ऑप्टिमाइज़ेशन का लक्ष्य काली धराशायी रेखा को पॉलीहेड्रॉन को छूते हुए ऊपर की ओर ले जाना है। पूर्णांक समस्या का इष्टतम समाधान बिंदु हैं <math>(1,2)</math> और <math>(2,2)</math> जिसका दोनों का उद्देश्य मान 2 है। विश्राम का अद्वितीय इष्टतम है <math>(1.8,2.8)</math> 2.8 के उद्देश्य मूल्य के साथ। यदि छूट का समाधान निकटतम पूर्णांकों तक किया जाता है, तो यह आईएलपी के लिए संभव नहीं है।


== एनपी-कठोरता का प्रमाण ==
== एनपी-कठोरता का प्रमाण ==
Line 53: Line 53:
       y_v & \in \mathbb{Z} && \forall v \in V
       y_v & \in \mathbb{Z} && \forall v \in V
\end{align}</math>
\end{align}</math>
यह देखते हुए कि बाधाओं की सीमा <math>y_v</math> या तो 0 या 1 के लिए, पूर्णांक प्रोग्राम का कोई भी व्यवहार्य समाधान वर्टिकल का एक सबसेट है। पहली बाधा का तात्पर्य है कि इस उपसमुच्चय में प्रत्येक किनारे का कम से कम एक अंत बिंदु शामिल है। इसलिए, समाधान शीर्ष आवरण का वर्णन करता है। इसके अतिरिक्त कुछ वर्टेक्स कवर C दिया गया है, <math>y_v</math> किसी के लिए 1 पर सेट किया जा सकता है <math>v\in C</math> और किसी के लिए 0 <math>v\not\in C</math> इस प्रकार हमें पूर्णांक कार्यक्रम के लिए एक व्यवहार्य समाधान प्रदान करता है। इस प्रकार हम यह निष्कर्ष निकाल सकते हैं कि यदि हम योग को कम करते हैं <math>y_v</math> हमने न्यूनतम वर्टेक्स कवर भी पाया है।<ref>{{cite web|last1=Erickson|first1=J.|title=Integer Programming Reduction|url=https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.pdf|year=2015|archive-url=https://web.archive.org/web/20150518072946/https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.pdf|archive-date=18 May 2015|url-status=dead}}</ref>
यह देखते हुए कि बाधाओं की सीमा <math>y_v</math> या तो 0 या 1 के लिए, पूर्णांक प्रोग्राम का कोई भी व्यवहार्य समाधान वर्टिकल का एक सबसेट है। पहली बाधा का तात्पर्य है कि इस उपसमुच्चय में प्रत्येक किनारे का कम से कम एक अंत बिंदु सम्मलित है। इसलिए, समाधान शीर्ष आवरण का वर्णन करता है। इसके अतिरिक्त कुछ वर्टेक्स कवर C दिया गया है, <math>y_v</math> किसी के लिए 1 पर सेट किया जा सकता है <math>v\in C</math> और किसी के लिए 0 <math>v\not\in C</math> इस प्रकार हमें पूर्णांक कार्यक्रम के लिए एक व्यवहार्य समाधान प्रदान करता है। इस प्रकार हम यह निष्कर्ष निकाल सकते हैं कि यदि हम योग को कम करते हैं <math>y_v</math> हमने न्यूनतम वर्टेक्स कवर भी पाया है।<ref>{{cite web|last1=Erickson|first1=J.|title=Integer Programming Reduction|url=https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.pdf|year=2015|archive-url=https://web.archive.org/web/20150518072946/https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.pdf|archive-date=18 May 2015|url-status=dead}}</ref>




== वेरिएंट ==
== वेरिएंट ==
मिश्रित-पूर्णांक रैखिक प्रोग्रामिंग (MILP) में ऐसी समस्याएँ शामिल हैं जिनमें केवल कुछ चर, <math>x_i</math>, पूर्णांक होने के लिए विवश हैं, जबकि अन्य चरों को गैर-पूर्णांक होने की अनुमति है।
मिश्रित-पूर्णांक रैखिक प्रोग्रामिंग (एमआईएलपी ) में ऐसी समस्याएँ सम्मलित हैं जिनमें केवल कुछ चर, <math>x_i</math>, पूर्णांक होने के लिए विवश हैं, जबकि अन्य चरों को गैर-पूर्णांक होने की अनुमति है।


शून्य-एक रैखिक प्रोग्रामिंग (या बाइनरी पूर्णांक प्रोग्रामिंग) में ऐसी समस्याएं शामिल हैं जिनमें चर 0 या 1 तक सीमित हैं। किसी भी परिबद्ध पूर्णांक चर को [[बाइनरी डेटा]] के संयोजन के रूप में व्यक्त किया जा सकता है।<ref>{{cite book|last=Williams|first=H.P.|title=Logic and integer programming|series=International Series in Operations Research & Management Science|year=2009|volume=130|isbn= 978-0-387-92280-5}}</ref> उदाहरण के लिए, एक पूर्णांक चर दिया गया है, <math>0\le x\le U</math>, चर का उपयोग करके व्यक्त किया जा सकता है <math>\lfloor \log_2U\rfloor+1</math> द्विआधारी चर:
शून्य-एक रैखिक प्रोग्रामिंग (या बाइनरी पूर्णांक प्रोग्रामिंग) में ऐसी समस्याएं सम्मलित हैं जिनमें चर 0 या 1 तक सीमित हैं। किसी भी परिबद्ध पूर्णांक चर को [[बाइनरी डेटा]] के संयोजन के रूप में व्यक्त किया जा सकता है।<ref>{{cite book|last=Williams|first=H.P.|title=Logic and integer programming|series=International Series in Operations Research & Management Science|year=2009|volume=130|isbn= 978-0-387-92280-5}}</ref> उदाहरण के लिए, एक पूर्णांक चर दिया गया है, <math>0\le x\le U</math>, चर का उपयोग करके व्यक्त किया जा सकता है <math>\lfloor \log_2U\rfloor+1</math> द्विआधारी चर:
:<math>
:<math>
x = x_1+2x_2+4x_3+\cdots+2^{\lfloor \log_2U\rfloor}x_{\lfloor \log_2U\rfloor+1}.
x = x_1+2x_2+4x_3+\cdots+2^{\lfloor \log_2U\rfloor}x_{\lfloor \log_2U\rfloor+1}.
Line 69: Line 69:
एक रेखीय कार्यक्रम के रूप में समस्याओं को मॉडलिंग करते समय पूर्णांक चर का उपयोग करने के दो मुख्य कारण हैं:
एक रेखीय कार्यक्रम के रूप में समस्याओं को मॉडलिंग करते समय पूर्णांक चर का उपयोग करने के दो मुख्य कारण हैं:
# पूर्णांक चर उन मात्राओं का प्रतिनिधित्व करते हैं जो केवल पूर्णांक हो सकती हैं। उदाहरण के लिए, 3.7 कारों का निर्माण संभव नहीं है।
# पूर्णांक चर उन मात्राओं का प्रतिनिधित्व करते हैं जो केवल पूर्णांक हो सकती हैं। उदाहरण के लिए, 3.7 कारों का निर्माण संभव नहीं है।
# पूर्णांक चर निर्णयों का प्रतिनिधित्व करते हैं (उदाहरण के लिए एक [[ग्राफ (असतत गणित)]] में किनारे को शामिल करना है या नहीं) और इसलिए केवल 0 या 1 मान लेना चाहिए।
# पूर्णांक चर निर्णयों का प्रतिनिधित्व करते हैं (उदाहरण के लिए एक [[ग्राफ (असतत गणित)]] में किनारे को सम्मलित करना है या नहीं) और इसलिए केवल 0 या 1 मान लेना चाहिए।
ये विचार व्यवहार में अक्सर होते हैं और इसलिए कई अनुप्रयोग क्षेत्रों में पूर्णांक रैखिक प्रोग्रामिंग का उपयोग किया जा सकता है, जिनमें से कुछ का संक्षेप में नीचे वर्णन किया गया है।
ये विचार व्यवहार में अक्सर होते हैं और इसलिए कई अनुप्रयोग क्षेत्रों में पूर्णांक रैखिक प्रोग्रामिंग का उपयोग किया जा सकता है, जिनमें से कुछ का संक्षेप में नीचे वर्णन किया गया है।


=== [[उत्पादन योजना]] ===
=== [[उत्पादन योजना]] ===
मिश्रित-पूर्णांक प्रोग्रामिंग में जॉब-शॉप मॉडलिंग सहित औद्योगिक प्रस्तुतियों में कई अनुप्रयोग हैं। कृषि उत्पादन योजना में एक महत्वपूर्ण उदाहरण कई फसलों के लिए उत्पादन उपज का निर्धारण करना शामिल है जो संसाधनों (जैसे भूमि, श्रम, पूंजी, बीज, उर्वरक, आदि) को साझा कर सकते हैं। एक संभावित उद्देश्य उपलब्ध संसाधनों से अधिक के बिना, कुल उत्पादन को अधिकतम करना है। कुछ मामलों में, यह एक रेखीय कार्यक्रम के संदर्भ में व्यक्त किया जा सकता है, लेकिन चर पूर्णांक होने के लिए विवश होना चाहिए।
मिश्रित-पूर्णांक प्रोग्रामिंग में जॉब-शॉप मॉडलिंग सहित औद्योगिक प्रस्तुतियों में कई अनुप्रयोग हैं। कृषि उत्पादन योजना में एक महत्वपूर्ण उदाहरण कई फसलों के लिए उत्पादन उपज का निर्धारण करना सम्मलित है जो संसाधनों (जैसे भूमि, श्रम, पूंजी, बीज, उर्वरक, आदि) को साझा कर सकते हैं। एक संभावित उद्देश्य उपलब्ध संसाधनों से अधिक के बिना, कुल उत्पादन को अधिकतम करना है। कुछ मामलों में, यह एक रेखीय कार्यक्रम के संदर्भ में व्यक्त किया जा सकता है, लेकिन चर पूर्णांक होने के लिए विवश होना चाहिए।


=== निर्धारण ===
=== निर्धारण ===


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


=== प्रादेशिक विभाजन ===
=== प्रादेशिक विभाजन ===


विभिन्न मानदंडों या बाधाओं पर विचार करते हुए कुछ कार्यों की योजना बनाने के लिए प्रादेशिक विभाजन या जिलाकरण समस्या में एक भौगोलिक क्षेत्र को जिलों में विभाजित करना शामिल है। इस समस्या के लिए कुछ आवश्यकताएँ हैं: सामीप्य, सघनता, संतुलन या समता, प्राकृतिक सीमाओं का सम्मान, और सामाजिक-आर्थिक एकरूपता। इस प्रकार की समस्या के लिए कुछ अनुप्रयोगों में शामिल हैं: राजनीतिक डिस्ट्रिक्टिंग, स्कूल डिस्ट्रिक्टिंग, स्वास्थ्य सेवाएं डिस्ट्रिक्टिंग और अपशिष्ट प्रबंधन डिस्ट्रिक्टिंग।
विभिन्न मानदंडों या बाधाओं पर विचार करते हुए कुछ कार्यों की योजना बनाने के लिए प्रादेशिक विभाजन या जिलाकरण समस्या में एक भौगोलिक क्षेत्र को जिलों में विभाजित करना सम्मलित है। इस समस्या के लिए कुछ आवश्यकताएँ हैं: सामीप्य, सघनता, संतुलन या समता, प्राकृतिक सीमाओं का सम्मान, और सामाजिक-आर्थिक एकरूपता। इस प्रकार की समस्या के लिए कुछ अनुप्रयोगों में सम्मलित हैं: राजनीतिक डिस्ट्रिक्टिंग, स्कूल डिस्ट्रिक्टिंग, स्वास्थ्य सेवाएं डिस्ट्रिक्टिंग और अपशिष्ट प्रबंधन डिस्ट्रिक्टिंग।


=== दूरसंचार नेटवर्क ===
=== दूरसंचार नेटवर्क ===


इन समस्याओं का लक्ष्य स्थापित करने के लिए लाइनों का एक नेटवर्क डिजाइन करना है ताकि संचार आवश्यकताओं का एक पूर्वनिर्धारित सेट पूरा हो और नेटवर्क की कुल लागत न्यूनतम हो।<ref>{{cite web|last1=Borndörfer|first1=R.|last2=Grötschel|first2=M.|author2-link= Martin Grötschel |title=Designing telecommunication networks by integer programming|url=http://www.zib.de/groetschel/teaching/SS2012/120503Vorlesung-DesigningTelcomNetworks-reduced.pdf|year=2012}}</ref> इसके लिए विभिन्न लाइनों की क्षमता को सेट करने के साथ-साथ नेटवर्क की दोनों टोपोलॉजी को अनुकूलित करने की आवश्यकता होती है। कई मामलों में, क्षमताएं पूर्णांक मात्राओं के लिए विवश होती हैं। आमतौर पर उपयोग की जाने वाली तकनीक के आधार पर, अतिरिक्त प्रतिबंध होते हैं जिन्हें पूर्णांक या बाइनरी चर के साथ रैखिक असमानताओं के रूप में तैयार किया जा सकता है।
इन समस्याओं का लक्ष्य स्थापित करने के लिए लाइनों का एक नेटवर्क डिजाइन करना है ताकि संचार आवश्यकताओं का एक पूर्वनिर्धारित सेट पूरा हो और नेटवर्क की कुल लागत न्यूनतम हो।<ref>{{cite web|last1=Borndörfer|first1=R.|last2=Grötschel|first2=M.|author2-link= Martin Grötschel |title=Designing telecommunication networks by integer programming|url=http://www.zib.de/groetschel/teaching/SS2012/120503Vorlesung-DesigningTelcomNetworks-reduced.pdf|year=2012}}</ref> इसके लिए विभिन्न लाइनों की क्षमता को सेट करने के साथ-साथ नेटवर्क की दोनों टोपोलॉजी को अनुकूलित करने की आवश्यकता होती है। कई मामलों में, क्षमताएं पूर्णांक मात्राओं के लिए विवश होती हैं। सामान्यतः पर उपयोग की जाने वाली तकनीक के आधार पर, अतिरिक्त प्रतिबंध होते हैं जिन्हें पूर्णांक या बाइनरी चर के साथ रैखिक असमानताओं के रूप में तैयार किया जा सकता है।


=== सेलुलर नेटवर्क ===
=== सेलुलर नेटवर्क ===
[[GSM]] मोबाइल नेटवर्क में फ़्रीक्वेंसी प्लानिंग के कार्य में एंटेना में उपलब्ध फ़्रीक्वेंसी को वितरित करना शामिल है ताकि उपयोगकर्ताओं को सेवा दी जा सके और एंटेना के बीच हस्तक्षेप कम से कम हो।<ref>{{cite web|last=Sharma|first=Deepak|title=Frequency Planning|url=http://www.slideshare.net/deepakecrbs/gsm-frequency-planning|year= 2010}}</ref> इस समस्या को एक पूर्णांक रेखीय कार्यक्रम के रूप में तैयार किया जा सकता है जिसमें द्विआधारी चर इंगित करते हैं कि एक आवृत्ति एक ऐन्टेना को सौंपी गई है या नहीं।
[[GSM]] मोबाइल नेटवर्क में फ़्रीक्वेंसी प्लानिंग के कार्य में एंटेना में उपलब्ध फ़्रीक्वेंसी को वितरित करना सम्मलित है ताकि उपयोगकर्ताओं को सेवा दी जा सके और एंटेना के बीच हस्तक्षेप कम से कम हो।<ref>{{cite web|last=Sharma|first=Deepak|title=Frequency Planning|url=http://www.slideshare.net/deepakecrbs/gsm-frequency-planning|year= 2010}}</ref> इस समस्या को एक पूर्णांक रेखीय कार्यक्रम के रूप में तैयार किया जा सकता है जिसमें द्विआधारी चर इंगित करते हैं कि एक आवृत्ति एक ऐन्टेना को सौंपी गई है या नहीं।


=== अन्य अनुप्रयोग ===
=== अन्य अनुप्रयोग ===
Line 99: Line 99:
== एल्गोरिदम ==
== एल्गोरिदम ==


ILP को हल करने का भोला तरीका यह है कि केवल उस बाधा को हटा दिया जाए जो x पूर्णांक है, संबंधित LP को हल करें (जिसे ILP का रैखिक प्रोग्रामिंग विश्राम कहा जाता है), और फिर LP विश्राम के समाधान की प्रविष्टियों को गोल करें। लेकिन, न केवल यह समाधान इष्टतम नहीं हो सकता है, यह व्यवहार्य भी नहीं हो सकता है; यानी, यह कुछ बाधाओं का उल्लंघन कर सकता है।
आईएलपी को हल करने का भोला तरीका यह है कि केवल उस बाधा को हटा दिया जाए जो x पूर्णांक है, संबंधित LP को हल करें (जिसे आईएलपी का रैखिक प्रोग्रामिंग विश्राम कहा जाता है), और फिर LP विश्राम के समाधान की प्रविष्टियों को गोल करें। लेकिन, न केवल यह समाधान इष्टतम नहीं हो सकता है, यह व्यवहार्य भी नहीं हो सकता है; यानी, यह कुछ बाधाओं का उल्लंघन कर सकता है।


=== कुल एकरूपता का उपयोग ===
=== कुल एकरूपता का उपयोग ===


जबकि सामान्य तौर पर LP छूट का समाधान अभिन्न होने की गारंटी नहीं होगी, यदि ILP का रूप है <math>\max\mathbf{c}^\mathrm{T} \mathbf{x}</math> ऐसा है कि <math>A\mathbf{x} = \mathbf{b}</math> कहाँ <math>A</math> और <math>\mathbf{b}</math> सभी पूर्णांक प्रविष्टियाँ हैं और <math>A</math> एकरूप मैट्रिक्स # कुल एकरूपता है, तो हर बुनियादी व्यवहार्य समाधान अभिन्न है। नतीजतन, [[सिंप्लेक्स एल्गोरिदम]] द्वारा लौटाया गया समाधान अभिन्न होने की गारंटी है। यह दर्शाने के लिए कि प्रत्येक मूल साध्य हल समाकल है, मान लीजिए <math>\mathbf{x}</math> एक मनमाना बुनियादी व्यवहार्य समाधान बनें। तब से <math>\mathbf{x}</math> व्यवहार्य है,
जबकि सामान्य तौर पर LP छूट का समाधान अभिन्न होने की गारंटी नहीं होगी, यदि आईएलपी का रूप है <math>\max\mathbf{c}^\mathrm{T} \mathbf{x}</math> ऐसा है कि <math>A\mathbf{x} = \mathbf{b}</math> कहाँ <math>A</math> और <math>\mathbf{b}</math> सभी पूर्णांक प्रविष्टियाँ हैं और <math>A</math> एकरूप मैट्रिक्स # कुल एकरूपता है, तो हर बुनियादी व्यवहार्य समाधान अभिन्न है। नतीजतन, [[सिंप्लेक्स एल्गोरिदम]] द्वारा लौटाया गया समाधान अभिन्न होने की गारंटी है। यह दर्शाने के लिए कि प्रत्येक मूल साध्य हल समाकल है, मान लीजिए <math>\mathbf{x}</math> एक मनमाना बुनियादी व्यवहार्य समाधान बनें। तब से <math>\mathbf{x}</math> व्यवहार्य है,
हम वह जानते हैं <math>A\mathbf{x}=\mathbf{b}</math>. होने देना <math>\mathbf{x}_0=[x_{n_1},x_{n_2},\cdots,x_{n_j}]</math> मूल समाधान के लिए आधार स्तंभों के अनुरूप तत्व बनें <math>\mathbf{x}</math>. एक आधार की परिभाषा के अनुसार, कुछ वर्ग सबमैट्रिक्स होता है <math>B</math> का
हम वह जानते हैं <math>A\mathbf{x}=\mathbf{b}</math>. होने देना <math>\mathbf{x}_0=[x_{n_1},x_{n_2},\cdots,x_{n_j}]</math> मूल समाधान के लिए आधार स्तंभों के अनुरूप तत्व बनें <math>\mathbf{x}</math>. एक आधार की परिभाषा के अनुसार, कुछ वर्ग सबमैट्रिक्स होता है <math>B</math> का
<math>A</math> रैखिक रूप से स्वतंत्र स्तंभों के साथ <math>B\mathbf{x}_0=\mathbf{b}</math>.
<math>A</math> रैखिक रूप से स्वतंत्र स्तंभों के साथ <math>B\mathbf{x}_0=\mathbf{b}</math>.
Line 116: Line 116:
\end{align}
\end{align}
</math>
</math>
इस प्रकार, यदि मैट्रिक्स <math>A</math> एक आईएलपी पूरी तरह से एकरूप है, एक आईएलपी एल्गोरिदम का उपयोग करने के बजाय, एलपी विश्राम को हल करने के लिए सिंप्लेक्स विधि का उपयोग किया जा सकता है और समाधान पूर्णांक होगा।
इस प्रकार, यदि मैट्रिक्स <math>A</math> एक आईएलपी पूरी तरह से एकरूप है, एक आईएलपी एल्गोरिदम का उपयोग करने के अतिरिक्त, एलपी विश्राम को हल करने के लिए सिंप्लेक्स विधि का उपयोग किया जा सकता है और समाधान पूर्णांक होगा।


=== सटीक एल्गोरिदम ===
=== सटीक एल्गोरिदम ===
Line 127: Line 127:


V में गुणांकों का अधिकतम निरपेक्ष मान होने दें <math>A</math> और <math>\mathbf{b}</math>. यदि n (चरों की संख्या) एक निश्चित स्थिरांक है, तो व्यवहार्यता समस्या को m और log V में समय बहुपद में हल किया जा सकता है। यह स्थिति n=1 के लिए तुच्छ है। मामले n = 2 को 1981 में [[हर्बर्ट स्कार्फ]] द्वारा हल किया गया था।<ref>{{Cite journal|last=Scarf|first=Herbert E.|date=1981|title=Production Sets with Indivisibilities, Part I: Generalities|url=https://www.jstor.org/stable/1911124|journal=Econometrica|volume=49|issue=1|pages=1–32|doi=10.2307/1911124|jstor=1911124|issn=0012-9682}}</ref> सामान्य मामला 1983 में [[हेनरी लेनस्ट्रा]] द्वारा हल किया गया था, लेज़्लो लोवाज़ और [[पीटर वैन एम्डे बोस]] के विचारों को मिलाकर।<ref name=":0">{{Cite journal|last=Lenstra|first=H. W.|date=1983-11-01|title=Integer Programming with a Fixed Number of Variables|url=https://pubsonline.informs.org/doi/abs/10.1287/moor.8.4.538|journal=Mathematics of Operations Research|volume=8|issue=4|pages=538–548|doi=10.1287/moor.8.4.538|issn=0364-765X|citeseerx=10.1.1.431.5444}}</ref>
V में गुणांकों का अधिकतम निरपेक्ष मान होने दें <math>A</math> और <math>\mathbf{b}</math>. यदि n (चरों की संख्या) एक निश्चित स्थिरांक है, तो व्यवहार्यता समस्या को m और log V में समय बहुपद में हल किया जा सकता है। यह स्थिति n=1 के लिए तुच्छ है। मामले n = 2 को 1981 में [[हर्बर्ट स्कार्फ]] द्वारा हल किया गया था।<ref>{{Cite journal|last=Scarf|first=Herbert E.|date=1981|title=Production Sets with Indivisibilities, Part I: Generalities|url=https://www.jstor.org/stable/1911124|journal=Econometrica|volume=49|issue=1|pages=1–32|doi=10.2307/1911124|jstor=1911124|issn=0012-9682}}</ref> सामान्य मामला 1983 में [[हेनरी लेनस्ट्रा]] द्वारा हल किया गया था, लेज़्लो लोवाज़ और [[पीटर वैन एम्डे बोस]] के विचारों को मिलाकर।<ref name=":0">{{Cite journal|last=Lenstra|first=H. W.|date=1983-11-01|title=Integer Programming with a Fixed Number of Variables|url=https://pubsonline.informs.org/doi/abs/10.1287/moor.8.4.538|journal=Mathematics of Operations Research|volume=8|issue=4|pages=538–548|doi=10.1287/moor.8.4.538|issn=0364-765X|citeseerx=10.1.1.431.5444}}</ref>
0-1 ILP के विशेष मामले में, लेनस्ट्रा का एल्गोरिथ्म पूर्ण गणना के बराबर है: सभी संभावित समाधानों की संख्या निश्चित है (2<sup>n</sup>), और प्रत्येक समाधान की व्यवहार्यता की जाँच टाइम पॉली (m, log V) में की जा सकती है। सामान्य स्थिति में, जहां प्रत्येक चर एक मनमाना पूर्णांक हो सकता है, पूर्ण गणना असंभव है। यहाँ, लेनस्ट्रा का एल्गोरिथ्म [[संख्याओं की ज्यामिति]] से विचारों का उपयोग करता है। यह मूल समस्या को निम्नलिखित गुण के साथ समकक्ष समस्या में बदल देता है: या तो समाधान का अस्तित्व <math>\mathbf{x}</math> स्पष्ट है, या का मूल्य <math>x_n</math> (एन-वें चर) एक अंतराल से संबंधित है जिसकी लंबाई एन के एक समारोह से बंधी है। बाद के मामले में, समस्या कम-आयामी समस्याओं की एक सीमित संख्या में कम हो जाती है। एल्गोरिथम की रन-टाइम जटिलता को कई चरणों में सुधारा गया है:
0-1 आईएलपी के विशेष मामले में, लेनस्ट्रा का एल्गोरिथ्म पूर्ण गणना के बराबर है: सभी संभावित समाधानों की संख्या निश्चित है (2<sup>n</sup>), और प्रत्येक समाधान की व्यवहार्यता की जाँच टाइम पॉली (m, log V) में की जा सकती है। सामान्य स्थिति में, जहां प्रत्येक चर एक मनमाना पूर्णांक हो सकता है, पूर्ण गणना असंभव है। यहाँ, लेनस्ट्रा का एल्गोरिथ्म [[संख्याओं की ज्यामिति]] से विचारों का उपयोग करता है। यह मूल समस्या को निम्नलिखित गुण के साथ समकक्ष समस्या में बदल देता है: या तो समाधान का अस्तित्व <math>\mathbf{x}</math> स्पष्ट है, या का मूल्य <math>x_n</math> (एन-वें चर) एक अंतराल से संबंधित है जिसकी लंबाई एन के एक समारोह से बंधी है। बाद के मामले में, समस्या कम-आयामी समस्याओं की एक सीमित संख्या में कम हो जाती है। एल्गोरिथम की रन-टाइम जटिलता को कई चरणों में सुधारा गया है:


* लेनस्ट्रा का मूल एल्गोरिदम<ref name=":0" />रन-टाइम था <math>2^{O(n^3)}\cdot (m\cdot \log V)^{O(1)}</math>.
* लेनस्ट्रा का मूल एल्गोरिदम<ref name=":0" />रन-टाइम था <math>2^{O(n^3)}\cdot (m\cdot \log V)^{O(1)}</math>.
* कन्नन<ref>{{Cite journal|last=Kannan|first=Ravi|date=1987-08-01|title=Minkowski's Convex Body Theorem and Integer Programming|url=https://pubsonline.informs.org/doi/abs/10.1287/moor.12.3.415|journal=Mathematics of Operations Research|volume=12|issue=3|pages=415–440|doi=10.1287/moor.12.3.415|issn=0364-765X}}</ref> रन-टाइम के साथ एक बेहतर एल्गोरिथ्म प्रस्तुत किया <math>n^{O(n)}\cdot (m\cdot \log V)^{O(1)}</math>.<ref>{{Cite journal|last1=Goemans|first1=Michel X.|last2=Rothvoss|first2=Thomas|date=2020-11-07|title=Polynomiality for Bin Packing with a Constant Number of Item Types|journal=Journal of the ACM|volume=67|issue=6|pages=38:1–38:21|doi=10.1145/3421750|hdl=1721.1/92865 |s2cid=227154747 |issn=0004-5411|doi-access=free}}</ref>
* कन्नन<ref>{{Cite journal|last=Kannan|first=Ravi|date=1987-08-01|title=Minkowski's Convex Body Theorem and Integer Programming|url=https://pubsonline.informs.org/doi/abs/10.1287/moor.12.3.415|journal=Mathematics of Operations Research|volume=12|issue=3|pages=415–440|doi=10.1287/moor.12.3.415|issn=0364-765X}}</ref> रन-टाइम के साथ एक अधिक अच्छा एल्गोरिथ्म प्रस्तुत किया <math>n^{O(n)}\cdot (m\cdot \log V)^{O(1)}</math>.<ref>{{Cite journal|last1=Goemans|first1=Michel X.|last2=Rothvoss|first2=Thomas|date=2020-11-07|title=Polynomiality for Bin Packing with a Constant Number of Item Types|journal=Journal of the ACM|volume=67|issue=6|pages=38:1–38:21|doi=10.1145/3421750|hdl=1721.1/92865 |s2cid=227154747 |issn=0004-5411|doi-access=free}}</ref>
* फ्रैंक और टार्डोस<ref>{{Cite journal|last1=Frank|first1=András|last2=Tardos|first2=Éva|date=1987-03-01|title=An application of simultaneous diophantine approximation in combinatorial optimization|url=https://doi.org/10.1007/BF02579200|journal=Combinatorica|language=en|volume=7|issue=1|pages=49–65|doi=10.1007/BF02579200|s2cid=45585308|issn=1439-6912}}</ref> एक अलग बेहतर एल्गोरिदम प्रस्तुत किया। बेहतर रनटाइम है  <math>n^{2.5 n} \cdot \ell</math> ,  कहाँ <math>\ell</math> इनपुट बिट्स की संख्या है,<ref>{{Cite journal|last1=Bliem|first1=Bernhard|last2=Bredereck|first2=Robert|last3=Niedermeier|first3=Rolf|author3-link=Rolf Niedermeier|date=2016-07-09|title=Complexity of efficient and envy-free resource allocation: few agents, resources, or utility levels|url=https://dl.acm.org/doi/abs/10.5555/3060621.3060636|journal=Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence|series=IJCAI'16|location=New York, New York, USA|publisher=AAAI Press|pages=102–108|isbn=978-1-57735-770-4}}</ref> जो इसमें है <math>\text{poly}(m, \log{V})</math>.<ref>{{Cite journal|last1=Bredereck|first1=Robert|last2=Kaczmarczyk|first2=Andrzej|last3=Knop|first3=Dušan|last4=Niedermeier|first4=Rolf|date=2019-06-17|title=High-Multiplicity Fair Allocation: Lenstra Empowered by N-fold Integer Programming|url=https://doi.org/10.1145/3328526.3329649|journal=Proceedings of the 2019 ACM Conference on Economics and Computation|series=EC '19|location=Phoenix, AZ, USA|publisher=Association for Computing Machinery|pages=505–523|doi=10.1145/3328526.3329649|isbn=978-1-4503-6792-9|s2cid=195298520}}</ref>{{Rp|Prop.8}}
* फ्रैंक और टार्डोस<ref>{{Cite journal|last1=Frank|first1=András|last2=Tardos|first2=Éva|date=1987-03-01|title=An application of simultaneous diophantine approximation in combinatorial optimization|url=https://doi.org/10.1007/BF02579200|journal=Combinatorica|language=en|volume=7|issue=1|pages=49–65|doi=10.1007/BF02579200|s2cid=45585308|issn=1439-6912}}</ref> एक अलग अधिक अच्छा एल्गोरिदम प्रस्तुत किया। अधिक अच्छा रनटाइम है  <math>n^{2.5 n} \cdot \ell</math> ,  कहाँ <math>\ell</math> इनपुट बिट्स की संख्या है,<ref>{{Cite journal|last1=Bliem|first1=Bernhard|last2=Bredereck|first2=Robert|last3=Niedermeier|first3=Rolf|author3-link=Rolf Niedermeier|date=2016-07-09|title=Complexity of efficient and envy-free resource allocation: few agents, resources, or utility levels|url=https://dl.acm.org/doi/abs/10.5555/3060621.3060636|journal=Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence|series=IJCAI'16|location=New York, New York, USA|publisher=AAAI Press|pages=102–108|isbn=978-1-57735-770-4}}</ref> जो इसमें है <math>\text{poly}(m, \log{V})</math>.<ref>{{Cite journal|last1=Bredereck|first1=Robert|last2=Kaczmarczyk|first2=Andrzej|last3=Knop|first3=Dušan|last4=Niedermeier|first4=Rolf|date=2019-06-17|title=High-Multiplicity Fair Allocation: Lenstra Empowered by N-fold Integer Programming|url=https://doi.org/10.1145/3328526.3329649|journal=Proceedings of the 2019 ACM Conference on Economics and Computation|series=EC '19|location=Phoenix, AZ, USA|publisher=Association for Computing Machinery|pages=505–523|doi=10.1145/3328526.3329649|isbn=978-1-4503-6792-9|s2cid=195298520}}</ref>{{Rp|Prop.8}}




=== अनुमानी तरीके ===
=== अनुमानी तरीके ===
चूंकि पूर्णांक रैखिक प्रोग्रामिंग [[एनपी कठिन]] है, कई समस्या उदाहरण अट्रैक्टिव हैं और इसलिए इसके बजाय अनुमानी तरीकों का उपयोग किया जाना चाहिए। उदाहरण के लिए, ILPs के समाधान खोजने के लिए Tabu search का उपयोग किया जा सकता है।<ref>{{cite journal|last=Glover|first=F.|author-link=Fred W. Glover|title=Tabu search-Part II|journal=ORSA Journal on Computing|year=1989|volume=1|issue=3|pages=4–32|doi= 10.1287/ijoc.2.1.4 |s2cid=207225435|url=https://semanticscholar.org/paper/9a3203a26112ec33d34233ba8b38e5509490f2a0}}</ref> ILPs को हल करने के लिए टैबू खोज का उपयोग करने के लिए, अन्य सभी पूर्णांक-बाधित चरों को स्थिर रखते हुए चालों को व्यवहार्य समाधान के एक पूर्णांक विवश चर को बढ़ाने या घटाने के रूप में परिभाषित किया जा सकता है। अप्रतिबंधित चर तब के लिए हल किए जाते हैं। अल्पकालिक स्मृति में पहले से आजमाए गए समाधान शामिल हो सकते हैं, जबकि मध्यम अवधि की स्मृति में पूर्णांक विवश चर के मान शामिल हो सकते हैं, जिसके परिणामस्वरूप उच्च उद्देश्य मान होते हैं (ILP एक अधिकतम समस्या है)। अंत में, दीर्घकालिक स्मृति खोज को उन पूर्णांक मानों की ओर निर्देशित कर सकती है जिन्हें पहले आज़माया नहीं गया है।
चूंकि पूर्णांक रैखिक प्रोग्रामिंग [[एनपी कठिन]] है, कई समस्या उदाहरण अट्रैक्टिव हैं और इसलिए इसके अतिरिक्त अनुमानी तरीकों का उपयोग किया जाना चाहिए। उदाहरण के लिए, आईएलपी के समाधान खोजने के लिए टैबू खोज का उपयोग किया जा सकता है।<ref>{{cite journal|last=Glover|first=F.|author-link=Fred W. Glover|title=Tabu search-Part II|journal=ORSA Journal on Computing|year=1989|volume=1|issue=3|pages=4–32|doi= 10.1287/ijoc.2.1.4 |s2cid=207225435|url=https://semanticscholar.org/paper/9a3203a26112ec33d34233ba8b38e5509490f2a0}}</ref> आईएलपी को हल करने के लिए टैबू खोज का उपयोग करने के लिए, अन्य सभी पूर्णांक-बाधित चरों को स्थिर रखते हुए चालों को व्यवहार्य समाधान के एक पूर्णांक विवश चर को बढ़ाने या घटाने के रूप में परिभाषित किया जा सकता है। अप्रतिबंधित चर तब के लिए हल किए जाते हैं। अल्पकालिक स्मृति में पहले से आजमाए गए समाधान सम्मलित हो सकते हैं, जबकि मध्यम अवधि की स्मृति में पूर्णांक विवश चर के मान सम्मलित हो सकते हैं, जिसके परिणामस्वरूप उच्च उद्देश्य मान होते हैं (आईएलपी एक अधिकतम समस्या है)। अंत में, दीर्घकालिक स्मृति खोज को उन पूर्णांक मानों की ओर निर्देशित कर सकती है जिन्हें पहले आज़माया नहीं गया है।


ILPs पर लागू किए जा सकने वाले अन्य अनुमानी तरीकों में शामिल हैं
आईएलपी पर लागू किए जा सकने वाले अन्य अनुमानी तरीकों में सम्मलित हैं
*[[पहाड़ी की चढ़ाई]]
*[[पहाड़ी की चढ़ाई]]
*[[तैयार किए हुयी धातु पे पानी चढाने की कला]]
*[[तैयार किए हुयी धातु पे पानी चढाने की कला]]
Line 144: Line 144:
* [[हॉपफील्ड नेटवर्क]]
* [[हॉपफील्ड नेटवर्क]]


कई अन्य समस्या-विशिष्ट अनुमान भी हैं, जैसे कि ट्रैवलिंग सेल्समैन समस्या # इटरेटिव इम्प्रूवमेंट|के-ऑप्ट ह्यूरिस्टिक फॉर द ट्रैवलिंग सेल्समैन समस्या। हेयुरिस्टिक विधियों का एक नुकसान यह है कि यदि वे समाधान खोजने में विफल रहते हैं, तो यह निर्धारित नहीं किया जा सकता है कि क्या ऐसा इसलिए है क्योंकि कोई व्यवहार्य समाधान नहीं है या एल्गोरिथम केवल एक को खोजने में असमर्थ था। इसके अलावा, आमतौर पर यह निर्धारित करना असंभव है कि इन विधियों द्वारा दिए गए इष्टतम समाधान के कितने करीब हैं।
कई अन्य समस्या-विशिष्ट अनुमान भी हैं, जैसे कि ट्रैवलिंग सेल्समैन समस्या इटरेटिव इम्प्रूवमेंट|के-ऑप्ट ह्यूरिस्टिक फॉर द ट्रैवलिंग सेल्समैन समस्या। हेयुरिस्टिक विधियों का एक नुकसान यह है कि यदि वे समाधान खोजने में विफल रहते हैं, तो यह निर्धारित नहीं किया जा सकता है कि क्या ऐसा इसलिए है क्योंकि कोई व्यवहार्य समाधान नहीं है या एल्गोरिथम केवल एक को खोजने में असमर्थ था। इसके अलावा, सामान्यतः पर यह निर्धारित करना असंभव है कि इन विधियों द्वारा दिए गए इष्टतम समाधान के कितने करीब हैं।


== विरल पूर्णांक प्रोग्रामिंग ==
== विरल पूर्णांक प्रोग्रामिंग ==

Revision as of 23:27, 14 February 2023

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

पूर्णांक प्रोग्रामिंग एनपी-पूर्ण है। विशेष रूप से, 0-1 पूर्णांक रैखिक प्रोग्रामिंग का विशेष मामला, जिसमें अज्ञात बाइनरी हैं, और केवल प्रतिबंधों को संतुष्ट होना चाहिए, कार्प की 21 एनपी-पूर्ण समस्याओं में से एक है।

यदि कुछ निर्णय चर असतत नहीं हैं, तो समस्या को मिश्रित-पूर्णांक प्रोग्रामिंग समस्या के रूप में जाना जाता है।[1]


आईएलपी के लिए प्रामाणिक और मानक रूप

पूर्णांक रैखिक प्रोग्रामिंग में, विहित रूप मानक रूप से भिन्न होता है। विहित रूप में एक पूर्णांक रैखिक कार्यक्रम इस प्रकार व्यक्त किया जाता है (ध्यान दें कि यह है वेक्टर जो तय किया जाना है):[2]

और आईएलपी को मानक रूप में व्यक्त किया जाता है

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

उदाहरण

एलपी छूट के साथ आईपी पॉलीटॉप

दाईं ओर का प्लॉट निम्नलिखित समस्या दिखाता है।

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

एनपी-कठोरता का प्रमाण

निम्नलिखित न्यूनतम वर्टेक्स कवर से पूर्णांक प्रोग्रामिंग में कमी है जो एनपी-कठोरता के प्रमाण के रूप में काम करेगा।

होने देना एक अप्रत्यक्ष ग्राफ बनें। एक रेखीय कार्यक्रम को निम्नानुसार परिभाषित करें:

यह देखते हुए कि बाधाओं की सीमा या तो 0 या 1 के लिए, पूर्णांक प्रोग्राम का कोई भी व्यवहार्य समाधान वर्टिकल का एक सबसेट है। पहली बाधा का तात्पर्य है कि इस उपसमुच्चय में प्रत्येक किनारे का कम से कम एक अंत बिंदु सम्मलित है। इसलिए, समाधान शीर्ष आवरण का वर्णन करता है। इसके अतिरिक्त कुछ वर्टेक्स कवर C दिया गया है, किसी के लिए 1 पर सेट किया जा सकता है और किसी के लिए 0 इस प्रकार हमें पूर्णांक कार्यक्रम के लिए एक व्यवहार्य समाधान प्रदान करता है। इस प्रकार हम यह निष्कर्ष निकाल सकते हैं कि यदि हम योग को कम करते हैं हमने न्यूनतम वर्टेक्स कवर भी पाया है।[3]


वेरिएंट

मिश्रित-पूर्णांक रैखिक प्रोग्रामिंग (एमआईएलपी ) में ऐसी समस्याएँ सम्मलित हैं जिनमें केवल कुछ चर, , पूर्णांक होने के लिए विवश हैं, जबकि अन्य चरों को गैर-पूर्णांक होने की अनुमति है।

शून्य-एक रैखिक प्रोग्रामिंग (या बाइनरी पूर्णांक प्रोग्रामिंग) में ऐसी समस्याएं सम्मलित हैं जिनमें चर 0 या 1 तक सीमित हैं। किसी भी परिबद्ध पूर्णांक चर को बाइनरी डेटा के संयोजन के रूप में व्यक्त किया जा सकता है।[4] उदाहरण के लिए, एक पूर्णांक चर दिया गया है, , चर का उपयोग करके व्यक्त किया जा सकता है द्विआधारी चर:


अनुप्रयोग

एक रेखीय कार्यक्रम के रूप में समस्याओं को मॉडलिंग करते समय पूर्णांक चर का उपयोग करने के दो मुख्य कारण हैं:

  1. पूर्णांक चर उन मात्राओं का प्रतिनिधित्व करते हैं जो केवल पूर्णांक हो सकती हैं। उदाहरण के लिए, 3.7 कारों का निर्माण संभव नहीं है।
  2. पूर्णांक चर निर्णयों का प्रतिनिधित्व करते हैं (उदाहरण के लिए एक ग्राफ (असतत गणित) में किनारे को सम्मलित करना है या नहीं) और इसलिए केवल 0 या 1 मान लेना चाहिए।

ये विचार व्यवहार में अक्सर होते हैं और इसलिए कई अनुप्रयोग क्षेत्रों में पूर्णांक रैखिक प्रोग्रामिंग का उपयोग किया जा सकता है, जिनमें से कुछ का संक्षेप में नीचे वर्णन किया गया है।

उत्पादन योजना

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

निर्धारण

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

प्रादेशिक विभाजन

विभिन्न मानदंडों या बाधाओं पर विचार करते हुए कुछ कार्यों की योजना बनाने के लिए प्रादेशिक विभाजन या जिलाकरण समस्या में एक भौगोलिक क्षेत्र को जिलों में विभाजित करना सम्मलित है। इस समस्या के लिए कुछ आवश्यकताएँ हैं: सामीप्य, सघनता, संतुलन या समता, प्राकृतिक सीमाओं का सम्मान, और सामाजिक-आर्थिक एकरूपता। इस प्रकार की समस्या के लिए कुछ अनुप्रयोगों में सम्मलित हैं: राजनीतिक डिस्ट्रिक्टिंग, स्कूल डिस्ट्रिक्टिंग, स्वास्थ्य सेवाएं डिस्ट्रिक्टिंग और अपशिष्ट प्रबंधन डिस्ट्रिक्टिंग।

दूरसंचार नेटवर्क

इन समस्याओं का लक्ष्य स्थापित करने के लिए लाइनों का एक नेटवर्क डिजाइन करना है ताकि संचार आवश्यकताओं का एक पूर्वनिर्धारित सेट पूरा हो और नेटवर्क की कुल लागत न्यूनतम हो।[5] इसके लिए विभिन्न लाइनों की क्षमता को सेट करने के साथ-साथ नेटवर्क की दोनों टोपोलॉजी को अनुकूलित करने की आवश्यकता होती है। कई मामलों में, क्षमताएं पूर्णांक मात्राओं के लिए विवश होती हैं। सामान्यतः पर उपयोग की जाने वाली तकनीक के आधार पर, अतिरिक्त प्रतिबंध होते हैं जिन्हें पूर्णांक या बाइनरी चर के साथ रैखिक असमानताओं के रूप में तैयार किया जा सकता है।

सेलुलर नेटवर्क

GSM मोबाइल नेटवर्क में फ़्रीक्वेंसी प्लानिंग के कार्य में एंटेना में उपलब्ध फ़्रीक्वेंसी को वितरित करना सम्मलित है ताकि उपयोगकर्ताओं को सेवा दी जा सके और एंटेना के बीच हस्तक्षेप कम से कम हो।[6] इस समस्या को एक पूर्णांक रेखीय कार्यक्रम के रूप में तैयार किया जा सकता है जिसमें द्विआधारी चर इंगित करते हैं कि एक आवृत्ति एक ऐन्टेना को सौंपी गई है या नहीं।

अन्य अनुप्रयोग


एल्गोरिदम

आईएलपी को हल करने का भोला तरीका यह है कि केवल उस बाधा को हटा दिया जाए जो x पूर्णांक है, संबंधित LP को हल करें (जिसे आईएलपी का रैखिक प्रोग्रामिंग विश्राम कहा जाता है), और फिर LP विश्राम के समाधान की प्रविष्टियों को गोल करें। लेकिन, न केवल यह समाधान इष्टतम नहीं हो सकता है, यह व्यवहार्य भी नहीं हो सकता है; यानी, यह कुछ बाधाओं का उल्लंघन कर सकता है।

कुल एकरूपता का उपयोग

जबकि सामान्य तौर पर LP छूट का समाधान अभिन्न होने की गारंटी नहीं होगी, यदि आईएलपी का रूप है ऐसा है कि कहाँ और सभी पूर्णांक प्रविष्टियाँ हैं और एकरूप मैट्रिक्स # कुल एकरूपता है, तो हर बुनियादी व्यवहार्य समाधान अभिन्न है। नतीजतन, सिंप्लेक्स एल्गोरिदम द्वारा लौटाया गया समाधान अभिन्न होने की गारंटी है। यह दर्शाने के लिए कि प्रत्येक मूल साध्य हल समाकल है, मान लीजिए एक मनमाना बुनियादी व्यवहार्य समाधान बनें। तब से व्यवहार्य है, हम वह जानते हैं . होने देना मूल समाधान के लिए आधार स्तंभों के अनुरूप तत्व बनें . एक आधार की परिभाषा के अनुसार, कुछ वर्ग सबमैट्रिक्स होता है का रैखिक रूप से स्वतंत्र स्तंभों के साथ .

चूंकि के कॉलम रैखिक रूप से स्वतंत्र हैं और चौकोर है, विलक्षण है, और इसलिए धारणा से, यूनिमॉड्यूलर मैट्रिक्स है और इसलिए . इसके अलावा, चूंकि निरर्थक है, यह उलटा है और इसलिए . परिभाषा से, . यहाँ के Adjugate मैट्रिक्स को दर्शाता है और अभिन्न है क्योंकि अभिन्न है। इसलिए,

इस प्रकार, यदि मैट्रिक्स एक आईएलपी पूरी तरह से एकरूप है, एक आईएलपी एल्गोरिदम का उपयोग करने के अतिरिक्त, एलपी विश्राम को हल करने के लिए सिंप्लेक्स विधि का उपयोग किया जा सकता है और समाधान पूर्णांक होगा।

सटीक एल्गोरिदम

जब मैट्रिक्स पूरी तरह से एकरूप नहीं है, ऐसे कई प्रकार के एल्गोरिदम हैं जिनका उपयोग पूर्णांक रैखिक कार्यक्रमों को सटीक रूप से हल करने के लिए किया जा सकता है। एल्गोरिदम का एक वर्ग कटिंग-प्लेन विधि है जो एलपी छूट को हल करके काम करता है और फिर रैखिक बाधाओं को जोड़ता है जो किसी भी पूर्णांक व्यवहार्य बिंदुओं को छोड़कर समाधान को पूर्णांक होने की ओर ले जाता है।

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

चरों की एक छोटी संख्या के लिए सटीक एल्गोरिदम

कल्पना करना एक एम-बाय-एन पूर्णांक मैट्रिक्स है और एक m-by-1 पूर्णांक वेक्टर है। हम व्यवहार्यता समस्या पर ध्यान केंद्रित करते हैं, जो यह तय करना है कि एन-बाय-1 वेक्टर मौजूद है या नहीं संतुष्टि देने वाला .

V में गुणांकों का अधिकतम निरपेक्ष मान होने दें और . यदि n (चरों की संख्या) एक निश्चित स्थिरांक है, तो व्यवहार्यता समस्या को m और log V में समय बहुपद में हल किया जा सकता है। यह स्थिति n=1 के लिए तुच्छ है। मामले n = 2 को 1981 में हर्बर्ट स्कार्फ द्वारा हल किया गया था।[11] सामान्य मामला 1983 में हेनरी लेनस्ट्रा द्वारा हल किया गया था, लेज़्लो लोवाज़ और पीटर वैन एम्डे बोस के विचारों को मिलाकर।[12] 0-1 आईएलपी के विशेष मामले में, लेनस्ट्रा का एल्गोरिथ्म पूर्ण गणना के बराबर है: सभी संभावित समाधानों की संख्या निश्चित है (2n), और प्रत्येक समाधान की व्यवहार्यता की जाँच टाइम पॉली (m, log V) में की जा सकती है। सामान्य स्थिति में, जहां प्रत्येक चर एक मनमाना पूर्णांक हो सकता है, पूर्ण गणना असंभव है। यहाँ, लेनस्ट्रा का एल्गोरिथ्म संख्याओं की ज्यामिति से विचारों का उपयोग करता है। यह मूल समस्या को निम्नलिखित गुण के साथ समकक्ष समस्या में बदल देता है: या तो समाधान का अस्तित्व स्पष्ट है, या का मूल्य (एन-वें चर) एक अंतराल से संबंधित है जिसकी लंबाई एन के एक समारोह से बंधी है। बाद के मामले में, समस्या कम-आयामी समस्याओं की एक सीमित संख्या में कम हो जाती है। एल्गोरिथम की रन-टाइम जटिलता को कई चरणों में सुधारा गया है:

  • लेनस्ट्रा का मूल एल्गोरिदम[12]रन-टाइम था .
  • कन्नन[13] रन-टाइम के साथ एक अधिक अच्छा एल्गोरिथ्म प्रस्तुत किया .[14]
  • फ्रैंक और टार्डोस[15] एक अलग अधिक अच्छा एल्गोरिदम प्रस्तुत किया। अधिक अच्छा रनटाइम है , कहाँ इनपुट बिट्स की संख्या है,[16] जो इसमें है .[17]: Prop.8 


अनुमानी तरीके

चूंकि पूर्णांक रैखिक प्रोग्रामिंग एनपी कठिन है, कई समस्या उदाहरण अट्रैक्टिव हैं और इसलिए इसके अतिरिक्त अनुमानी तरीकों का उपयोग किया जाना चाहिए। उदाहरण के लिए, आईएलपी के समाधान खोजने के लिए टैबू खोज का उपयोग किया जा सकता है।[18] आईएलपी को हल करने के लिए टैबू खोज का उपयोग करने के लिए, अन्य सभी पूर्णांक-बाधित चरों को स्थिर रखते हुए चालों को व्यवहार्य समाधान के एक पूर्णांक विवश चर को बढ़ाने या घटाने के रूप में परिभाषित किया जा सकता है। अप्रतिबंधित चर तब के लिए हल किए जाते हैं। अल्पकालिक स्मृति में पहले से आजमाए गए समाधान सम्मलित हो सकते हैं, जबकि मध्यम अवधि की स्मृति में पूर्णांक विवश चर के मान सम्मलित हो सकते हैं, जिसके परिणामस्वरूप उच्च उद्देश्य मान होते हैं (आईएलपी एक अधिकतम समस्या है)। अंत में, दीर्घकालिक स्मृति खोज को उन पूर्णांक मानों की ओर निर्देशित कर सकती है जिन्हें पहले आज़माया नहीं गया है।

आईएलपी पर लागू किए जा सकने वाले अन्य अनुमानी तरीकों में सम्मलित हैं

कई अन्य समस्या-विशिष्ट अनुमान भी हैं, जैसे कि ट्रैवलिंग सेल्समैन समस्या इटरेटिव इम्प्रूवमेंट|के-ऑप्ट ह्यूरिस्टिक फॉर द ट्रैवलिंग सेल्समैन समस्या। हेयुरिस्टिक विधियों का एक नुकसान यह है कि यदि वे समाधान खोजने में विफल रहते हैं, तो यह निर्धारित नहीं किया जा सकता है कि क्या ऐसा इसलिए है क्योंकि कोई व्यवहार्य समाधान नहीं है या एल्गोरिथम केवल एक को खोजने में असमर्थ था। इसके अलावा, सामान्यतः पर यह निर्धारित करना असंभव है कि इन विधियों द्वारा दिए गए इष्टतम समाधान के कितने करीब हैं।

विरल पूर्णांक प्रोग्रामिंग

अक्सर ऐसा होता है कि मैट्रिक्स जो परिभाषित करता है पूर्णांक कार्यक्रम विरल है। विशेष रूप से, यह तब होता है जब मैट्रिक्स में ब्लॉक संरचना होती है, जो कई अनुप्रयोगों में होती है। मैट्रिक्स की विरलता को निम्नानुसार मापा जा सकता है। का ग्राफ के स्तंभों के संगत शीर्ष हैं , और दो स्तंभ एक किनारा बनाते हैं यदि एक पंक्ति है जहाँ दोनों स्तंभों में गैर-शून्य प्रविष्टियाँ हैं। समतुल्य रूप से, शीर्ष चर के अनुरूप होते हैं, और दो चर एक किनारे बनाते हैं यदि वे एक असमानता साझा करते हैं। विरलता माप का के ग्राफ की वृक्ष-गहराई के बीच न्यूनतम है और के स्थानान्तरण के ग्राफ की वृक्ष-गहराई . होने देना का संख्यात्मक माप हो की किसी भी प्रविष्टि के अधिकतम निरपेक्ष मान के रूप में परिभाषित किया गया है . होने देना पूर्णांक कार्यक्रम के चर की संख्या हो। फिर इसे 2018 में दिखाया गया[19] कि पूर्णांक प्रोग्रामिंग को दृढ़ता से बहुपद और फिक्स्ड-पैरामीटर ट्रैक्टेबल समय द्वारा पैरामीटरित करके हल किया जा सकता है और . यानी कुछ कम्प्यूटेशनल फंक्शन के लिए और कुछ स्थिर , पूर्णांक प्रोग्रामिंग को समय पर हल किया जा सकता है . विशेष रूप से, समय दाहिनी ओर से स्वतंत्र है और उद्देश्य समारोह . इसके अलावा, लेनस्ट्रा के शास्त्रीय परिणाम के विपरीत, जहां संख्या चर का एक पैरामीटर है, यहाँ संख्या है चर का इनपुट का एक परिवर्तनशील हिस्सा है।

यह भी देखें

संदर्भ

  1. "Mixed-Integer Linear Programming (MILP): Model Formulation" (PDF). Retrieved 16 April 2018.
  2. Papadimitriou, C. H.; Steiglitz, K. (1998). Combinatorial optimization: algorithms and complexity. Mineola, NY: Dover. ISBN 0486402584.
  3. Erickson, J. (2015). "Integer Programming Reduction" (PDF). Archived from the original (PDF) on 18 May 2015.
  4. Williams, H.P. (2009). Logic and integer programming. International Series in Operations Research & Management Science. Vol. 130. ISBN 978-0-387-92280-5.
  5. Borndörfer, R.; Grötschel, M. (2012). "Designing telecommunication networks by integer programming" (PDF).
  6. Sharma, Deepak (2010). "Frequency Planning".
  7. Morais, Hugo; Kádár, Péter; Faria, Pedro; Vale, Zita A.; Khodr, H. M. (2010-01-01). "Optimal scheduling of a renewable micro-grid in an isolated load area using mixed-integer linear programming". Renewable Energy (in English). 35 (1): 151–156. doi:10.1016/j.renene.2009.02.031. hdl:10400.22/1585. ISSN 0960-1481.
  8. Omu, Akomeno; Choudhary, Ruchi; Boies, Adam (2013-10-01). "Distributed energy resource system optimisation using mixed integer linear programming". Energy Policy (in English). 61: 249–266. doi:10.1016/j.enpol.2013.05.009. ISSN 0301-4215.
  9. Schouwenaars, T.; Valenti, M.; Feron, E.; How, J. (2005). "Implementation and Flight Test Results of MILP-based UAV Guidance". 2005 IEEE Aerospace Conference: 1–13. doi:10.1109/AERO.2005.1559600. ISBN 0-7803-8870-4. S2CID 13447718.
  10. Radmanesh, Mohammadreza; Kumar, Manish (2016-03-01). "Flight formation of UAVs in presence of moving obstacles using fast-dynamic mixed integer linear programming". Aerospace Science and Technology (in English). 50: 149–160. doi:10.1016/j.ast.2015.12.021. ISSN 1270-9638.
  11. Scarf, Herbert E. (1981). "Production Sets with Indivisibilities, Part I: Generalities". Econometrica. 49 (1): 1–32. doi:10.2307/1911124. ISSN 0012-9682. JSTOR 1911124.
  12. 12.0 12.1 Lenstra, H. W. (1983-11-01). "Integer Programming with a Fixed Number of Variables". Mathematics of Operations Research. 8 (4): 538–548. CiteSeerX 10.1.1.431.5444. doi:10.1287/moor.8.4.538. ISSN 0364-765X.
  13. Kannan, Ravi (1987-08-01). "Minkowski's Convex Body Theorem and Integer Programming". Mathematics of Operations Research. 12 (3): 415–440. doi:10.1287/moor.12.3.415. ISSN 0364-765X.
  14. Goemans, Michel X.; Rothvoss, Thomas (2020-11-07). "Polynomiality for Bin Packing with a Constant Number of Item Types". Journal of the ACM. 67 (6): 38:1–38:21. doi:10.1145/3421750. hdl:1721.1/92865. ISSN 0004-5411. S2CID 227154747.
  15. Frank, András; Tardos, Éva (1987-03-01). "An application of simultaneous diophantine approximation in combinatorial optimization". Combinatorica (in English). 7 (1): 49–65. doi:10.1007/BF02579200. ISSN 1439-6912. S2CID 45585308.
  16. Bliem, Bernhard; Bredereck, Robert; Niedermeier, Rolf (2016-07-09). "Complexity of efficient and envy-free resource allocation: few agents, resources, or utility levels". Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence. IJCAI'16. New York, New York, USA: AAAI Press: 102–108. ISBN 978-1-57735-770-4.
  17. Bredereck, Robert; Kaczmarczyk, Andrzej; Knop, Dušan; Niedermeier, Rolf (2019-06-17). "High-Multiplicity Fair Allocation: Lenstra Empowered by N-fold Integer Programming". Proceedings of the 2019 ACM Conference on Economics and Computation. EC '19. Phoenix, AZ, USA: Association for Computing Machinery: 505–523. doi:10.1145/3328526.3329649. ISBN 978-1-4503-6792-9. S2CID 195298520.
  18. Glover, F. (1989). "Tabu search-Part II". ORSA Journal on Computing. 1 (3): 4–32. doi:10.1287/ijoc.2.1.4. S2CID 207225435.
  19. Koutecký, Martin; Levin, Asaf; Onn, Shmuel (2018). "A Parameterized Strongly Polynomial Algorithm for Block Structured Integer Programs" (in English). Michael Wagner: 14 pages. arXiv:1802.05859. doi:10.4230/LIPICS.ICALP.2018.85. S2CID 3336201. {{cite journal}}: Cite journal requires |journal= (help)


अग्रिम पठन


बाहरी संबंध

| group5 = Metaheuristics | abbr5 = heuristic | list5 =

| below =

}} | group5 =Metaheuuristic |abbr5 = heuristic | list5 =*विकासवादी एल्गोरिथ्म

| below =* सॉफ्टवेयर

}}