रैखिक क्रमादेशन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 266: Line 266:


== पूर्णांक अज्ञात ==
== पूर्णांक अज्ञात ==
यदि सभी अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को [[ पूर्णांक प्रोग्रामिंग ]] (IP) या पूर्णांक रैखिक प्रोग्रामिंग (ILP) समस्या कहा जाता है। रैखिक प्रोग्रामिंग के विपरीत, जिसे सबसे खराब स्थिति में कुशलता से हल किया जा सकता है, पूर्णांक प्रोग्रामिंग समस्याएं कई व्यावहारिक स्थितियों में होती हैं (जो सीमित चर वाले हैं) [[ एनपी कठिन ]] हैं। 0-1 पूर्णांक प्रोग्रामिंग या बाइनरी पूर्णांक प्रोग्रामिंग (बीआईपी) पूर्णांक प्रोग्रामिंग का विशेष मामला है जहां चर को 0 या 1 (मनमानी पूर्णांक के बजाय) होना आवश्यक है। इस समस्या को एनपी-हार्ड के रूप में भी वर्गीकृत किया गया है, और वास्तव में निर्णय संस्करण कार्प की 21 एनपी-पूर्ण समस्याओं में से एक था।
यदि सभी अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को [[ पूर्णांक प्रोग्रामिंग ]] (IP) या पूर्णांक रैखिक प्रोग्रामिंग (ILP) समस्या कहा जाता है। रैखिक प्रोग्रामिंग के विपरीत, जिसे सबसे खराब स्थिति में कुशलता से हल किया जा सकता है, पूर्णांक प्रोग्रामिंग समस्याएं कई व्यावहारिक स्थितियों में होती हैं (जो सीमित चर वाले हैं) [[ एनपी कठिन ]] हैं। 0-1 पूर्णांक प्रोग्रामिंग या बाइनरी पूर्णांक प्रोग्रामिंग (बीआईपी) पूर्णांक प्रोग्रामिंग का विशेष मामला है जहां चर को 0 या 1 (मनमानी पूर्णांक के बजाय) होना आवश्यक है। इस समस्या को एनपी-हार्ड के रूप में भी वर्गीकृत किया गया है, और वास्तव में निर्णय संस्करण कार्प की 21 एनपी-पूर्ण समस्याओं में से एक था।  


यदि केवल कुछ अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को मिश्रित पूर्णांक (रैखिक) प्रोग्रामिंग (MIP या MILP) समस्या कहा जाता है। ये आम तौर पर एनपी-हार्ड भी होते हैं क्योंकि ये ILP प्रोग्राम से भी अधिक सामान्य होते हैं।
यदि सभी अज्ञात चर को पूर्णांक होने की आवश्यकता होती है, तब इस समस्या को पूर्णांक प्रोग्रामन (आईपी) या पूर्णांक रैखिक प्रोग्रामन (आईएलपी) समस्या कहते हैं। रैखिक प्रोग्रामिंग के विपरीत, जो बुरी स्थिति में कुशलतापूर्वक हल किया जा सकता है, पूर्णांक प्रोग्रामिंग समस्याएँ कई व्यावहारिक स्थितियों में होती हैं (उनमें परिबद्ध चर होते हैं) एनपी-हार्ड. 0-1 पूर्णांक प्रोग्रामिंग या द्विआधारी पूर्णांक प्रोग्रामन (बीआईपी) पूर्णांक प्रोग्रामिंग का विशेष मामला है जहां चर को 0 या 1 (मनमानी पूर्णांक के बजाय) होना आवश्यक है। इस समस्या को एनपी-हार्ड के रूप में भी वर्गीकृत किया गया है, और वास्तव में निर्णय संस्करण कार्प की 21 एनपी-पूर्ण समस्याओं में से एक था।


हालाँकि IP और MIP समस्याओं के कुछ महत्वपूर्ण उपवर्ग हैं जो कुशलता से हल करने योग्य हैं, सबसे विशेष रूप से समस्याएँ जहाँ बाधा मैट्रिक्स [[ पूरी तरह से एकरूप ]] है और बाधाओं के दाहिने हाथ पूर्णांक हैं या - अधिक सामान्य - जहाँ सिस्टम में [[ कुल दोहरी अखंडता ]] है (टीडीआई) संपत्ति।
यदि केवल कुछ अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को मिश्रित पूर्णांक (रैखिक) प्रोग्रामिंग (MIP या MILP) समस्या कहा जाता है। ये आम तौर पर एनपी-हार्ड भी होते हैं क्योंकि ये ILP प्रोग्राम से भी अधिक सामान्य होते हैं।
 
अगर केवल कुछ अज्ञात चर को पूर्णांक होने की आवश्यकता होती है, तब इस प्रश्न को मिश्रित पूर्णांक (रैखिक) प्रोग्रामन (एमआईपी या मिल्प) समस्या कहते हैं। ये आम तौर पर एनपी-हार्ड भी होते हैं क्योंकि ये ILP प्रोग्राम से भी अधिक सामान्य होते हैं।
 
हालाँकि IP और MIP समस्याओं के कुछ महत्वपूर्ण उपवर्ग हैं जो कुशलता से हल करने योग्य हैं, सबसे विशेष रूप से समस्याएँ जहाँ बाधा मैट्रिक्स [[ पूरी तरह से एकरूप | पूरी तरह से एकरूप]] है और बाधाओं के दाहिने हाथ पूर्णांक हैं या - अधिक सामान्य - जहाँ सिस्टम में [[ कुल दोहरी अखंडता | कुल दोहरी अखंडता]] है (टीडीआई) संपत्ति। .
 
हालांकि आईपी और एमआईपी समस्याओं के कुछ महत्वपूर्ण उपवर्ग हैं जो कुशलता से हल करने योग्य हैं,सर्वाधिक प्रमुख समस्या जिसमें बाधा मैट्रिक्स पूरी तरह से एक मॉड्यूलर है और बाधाओं के दाईं ओर के पक्ष पूर्णांक या उससे भी अधिक सामान्य हैं-जहां सिस्टम के पास दोहरे समाकल (टीडीआई) संपत्ति है।


पूर्णांक रेखीय कार्यक्रमों को हल करने के लिए उन्नत एल्गोरिदम में शामिल हैं:
पूर्णांक रेखीय कार्यक्रमों को हल करने के लिए उन्नत एल्गोरिदम में शामिल हैं:
Line 277: Line 283:
* [[ शाखा और कट ]]
* [[ शाखा और कट ]]
* शाखा और मूल्य
* शाखा और मूल्य
* यदि समस्या में कुछ अतिरिक्त संरचना है, तो विलंबित कॉलम जनरेशन को लागू करना संभव हो सकता है।
* यदि इस समस्या के संरचना में कुछ अतिरिक्त है, तो देरी से स्तंभ निर्माण लागू करना संभव हो सकता है।
इस तरह के पूर्णांक-प्रोग्रामिंग एल्गोरिदम की चर्चा मैनफ्रेड डब्ल्यू पैडबर्ग और ब्यासली में की गई है।
इस तरह के पूर्णांक-प्रोग्रामिंग एल्गोरिदम की चर्चा मैनफ्रेड डब्ल्यू पैडबर्ग और ब्यासली में की गई है।
 
इस तरह के इंटीगर-प्रोग्रामिंग एल्गोरिथ्म के बारे में पैडबर्ग और बीज़ले में चर्चा की जाती है।


== इंटीग्रल लीनियर प्रोग्राम ==
== इंटीग्रल लीनियर प्रोग्राम ==

Revision as of 17:27, 2 December 2022

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

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

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

रैखिक कार्यक्रम ऐसी समस्याएं हैं जिन्हें विहित रूप में व्यक्त किया जा सकता है,

यहाँ x के घटक निर्धारित किए जाने वाले चर हैं, c और b सदिश दिए गए हैं ( द्वारा यह दर्शाया गया है कि c के गुणांक का प्रयोग मैट्रिक्स उत्पाद के निर्माण के प्रयोजन हेतु एकल पंक्ति मैट्रिक्स के रूप में किया जाता है), और A एक दिया गया मैट्रिक्स (गणित) है। फलन जिसका मान अधिकतम या न्यूनतम किया जाना है ( इस स्थिति में ) को उद्देश्य फलन कहा जाता है। असमिकाएँ Ax ≤ b और x ≥ 0 ऐसी बाधाएँ हैं जो एक उत्तल पॉलीटॉप निर्दिष्ट करती हैं जिसके ऊपर उद्देश्य फ़ंक्शन को अनुकूलित किया जाना है। इस संदर्भ में, दो सदिश तुलनीय होते हैं जब उनके पास समान आयाम होते हैं। अगर पहले में प्रत्येक प्रविष्टि दूसरे में संबंधित प्रविष्टि से कम या बराबर होती है, तो यह कहा जा सकता है कि पहले सदिश दूसरी सदिश से कम या बराबर है।

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

इतिहास

रैखिक असमानता की एक प्रणाली को हल करने की समस्या कम से कम फूरियर तक है, जिन्होंने 1827 में उन्हें हल करने के लिए एक विधि प्रकाशित की थी,[1] और बाद में जिसे फूरियर मोटाकिन उन्मूलन की विधि का नाम दिया गया था।

1939 में एक ऐसी समस्या का रेखीय प्रोग्रामन निरूपण जो सामान्य रेखीय प्रोग्रामिंग समस्या के समतुल्य है, सोवियत संघ के गणितज्ञ और अर्थशास्त्री लियोनिद कांटोरोविच ने दिया था, जिन्होंने इसे हल करने के लिए भी एक तरीका प्रस्थापित किया था।[2] यह एक तरीका है जिसे उन्होंने द्वितीय विश्व युद्ध के दौरान विकसित किया, सेना की लागत कम करने और शत्रु पर लगाये गये हानियों को बढ़ाने के लिए व्ययों और वापसी की योजना बनाने का एक तरीका है।[citation needed] कंटोरविच का काम शुरू में यूएसएसआर में उपेक्षित था।[3] लगभग उसी समय कांटोरोविच के रूप में,डच अमेरिकन अर्थशास्त्री टी. सी. कोआपंस ने रैखिक प्रोग्राम के रूप में शास्त्रीय आर्थिक समस्याओं का निर्माण किया। कंटोरोविच और कूपमैन ने बाद में अर्थशास्त्र में 1975 का नोबेल पुरस्कार साझा किया।[1] सन 1941 में फ्रांक लॉरेन हिचकॉक ने परिवहन समस्याओं को रेखीय कार्यक्रम के रूप में भी तैयार किया और इसमें बाद के सरल विधि के समान समाधान दिया।[2] 1957 में हैचकॉक की मृत्यु हो गई थी और नोबेल पुरस्कार मरणोपरांत नहीं दिया गया है।

1946 से 1947 तक जॉर्ज बी. डेंटजिग ने संयुक्त राज्य अमेरिका की वायुसेना में आयोजित समस्याओं के लिए उपयोग किए जाने वाले सामान्य रैखिक प्रोग्रामिंग सूत्रीकरण का स्वतंत्र रूप से विकास किया।[4] 1947 में, डेंटज़िग ने सिम्पलेक्स विधि का भी आविष्कार किया, जो कि, पहली बार कुशलता से, ज्यादातर मामलों में रैखिक प्रोग्रामिंग समस्या का समाधान किया।[4] जब डेंटजिग ने जॉन वॉन न्यूमैन के साथ उनकी सिम्पलेक्स विधि पर चर्चा करने के लिए एक बैठक की व्यवस्था की, न्यूमैन ने तत्काल द्वैत के सिद्धांत का अनुमान लगाया कि खेल के सिद्धांत में जो समस्या वह काम कर रहा था वह बराबर है।[4] डेंटजिग ने 5 जनवरी, 1948 को एक अप्रकाशित रिपोर्ट "रैखिक असमानताओं पर एक प्रमेय" में औपचारिक प्रमाण प्रदान किया।[3] डेंटज़िग का काम 1951 में जनता के लिए उपलब्ध कराया गया था। युद्धोपरांत के वर्षों में, अनेक उद्योगों ने इसे अपने दैनिक नियोजन में लागू किया।

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

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

उपयोग

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

मानक रूप

मानक रूप, रैखिक प्रोग्रामन समस्या का वर्णन करने का एक सामान्य और सबसे सहज रूप होता है। इसमें निम्न तीन भाग होते हैं:

  • एक रैखिक फलन को अधिकतम किया जाना
जैसे
  • निम्नलिखित रूप की समस्या व्यवरोध
जैसे
  • गैर-नकारात्मक चर
जैसे

समस्या आमतौर पर आव्यूह (गणित) के रूप में व्यक्त की जाती है, और फिर बन जाती है:

अन्य रूपों, जैसे कि न्यूनतमीकरण समस्याएं, वैकल्पिक रूपों पर व्यवरोध वाली समस्याएं, और नकारात्मक चर (प्रोग्रामिंग) को सम्मिलित करने वाली समस्याओं को हमेशा मानक रूप में एक समान समस्या में लिखा जा सकता है।

उदाहरण

मान लीजिए कि एक किसान के पास कृषि भूमि का एक टुकड़ा है, जो L कि.मी2 है, गेहूं या जौ या फिर दोनों के संयोजन के साथ लगाया जाना। किसान के पास सीमित मात्रा में उर्वरक, F किलोग्राम और कीटनाशक, P किलोग्राम है। गेहूं के हर वर्ग किलोमीटर में F1 किलोग्राम उर्वरक और P1 किलोग्राम कीटनाशक की आवश्यकता होती है, जबकि जौ के प्रत्येक वर्ग किलोमीटर में F2 किलोग्राम उर्वरक और P2 किलोग्राम कीटनाशक की आवश्यकता होती है। मान लीजिए S1 प्रति वर्ग किलोमीटर गेहूं का विक्रय मूल्य है, और S2 जौ का विक्रय मूल्य है। अगर हम क्रमशः x1 और x2 द्वारा गेहूं और जौ के साथ लगाए गए भूमि के क्षेत्र को दर्शाते हैं, तो x1 और x2 के लिए इष्टतम मान चुनकर लाभ को अधिकतम किया जा सकता है। इस समस्या को मानक रूप में निम्नलिखित रैखिक प्रोग्रामिंग समस्या के साथ व्यक्त किया जा सकता है:

अधिकतम: (राजस्व को अधिकतम करें (कुल गेहूं की बिक्री और कुल जौ की बिक्री) – राजस्व "उद्देश्य फलन" है)
विषय है: (कुल क्षेत्र पर सीमा)
(उर्वरक की सीमा)
(कीटनाशक पर सीमा)
(एक नकारात्मक क्षेत्र नहीं लगा सकते).

आव्यूह रूप में यह बन जाता है:

अधिकतम
विषय है


संवर्धित रूप (सुस्त रूप)

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

अधिकतम :

जहां नव प्रवर्तित निम्न सुस्त चर हैं, निर्णय चर हैं, और अधिकतम किया जाने वाला चर है।

उदाहरण

ऊपर दिए गए उदाहरण को निम्नलिखित संवर्धित रूप में परिवर्तित किया गया है:

अधिकतम: (उद्देश्य फलन)
विषय है: (संवर्धित व्यवरोध)
(संवर्धित व्यवरोध)
(संवर्धित व्यवरोध)

जहां (गैर-नकारात्मक) सुस्त चर हैं, जो इस उदाहरण में अप्रयुक्त क्षेत्र, अप्रयुक्त उर्वरक की मात्रा और अप्रयुक्त कीटनाशक की मात्रा का प्रतिनिधित्व करते हैं।

आव्यूह रूप में यह बन जाता है:

अधिकतम :

द्वैत

प्रत्येक रैखिक प्रोग्रामिंग समस्या, जिसे मूल समस्या कहा जाता है, जिसको द्वैत समस्या में परिवर्तित किया जा सकता है, जो मूल समस्या के इष्टतम मूल्य के लिए एक ऊपरी बाध्य प्रदान करता है। आव्यूह रूप में, हम मूल समस्या को इस रूप में व्यक्त कर सकते हैं:

अधिकतम cTx का विषय है Axb, x ≥ 0;
इसी सममित दोहरी समस्या के साथ,
न्यूनतम bTy का विषय है ATyc, y ≥ 0.

एक वैकल्पिक प्रारंभिक सूत्रीकरण है:

अधिकतम cTx का विषय है Axb;
संबंधित असममित दोहरी समस्या के साथ,
न्यूनतम bTy का विषय है ATyc, y ≥ 0.

द्वैत सिद्धांत के दो मौलिक विचार हैं। एक तथ्य है कि (सममित द्वैत के लिए) एक दोहरी रेखीय प्रोग्राम का मूल रेखीय प्रोग्राम है। इसके अलावा, रैखिक प्रोग्राम का हर व्यवहार्य हल यह है कि वह इस दोहरे फंक्शन के अनुकूलतम प्रकार्य के इष्टतम मान को बाध्य करता है। दुर्बल द्वैत प्रमेय का मत है कि द्वैत के व्यावहारिक मान का किसी भी व्यावहारिक हल में वस्तुनिष्ठ फलन मान किसी भी व्यावहारिक समाधान में आदि की तुलना में बड़ा या बराबर होता है। प्रबल द्वैत प्रमेय के अनुसार, यदि मूल में इष्टतम विलयन होता है, तो x*, तो दोहरी भी एक इष्टतम समाधान है, y**, और cTx*=bTy*

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

विविधताएं

दोहरी सामग्री को ढंकना।

आवरण एलपी प्रपत्र का एक रैखिक प्रोग्राम है:

न्यूनतम: bTy,
विषय है: ATyc, y ≥ 0,

जैसे कि मैट्रिक्स ए और वैक्टर बी और सी गैर-नकारात्मक हैं।

आवरण एलपी का दोहरा एक पैकिंग एलपी है, जो कि प्रपत्र का एक रैखिक प्रोग्राम है:

अधिकतम cTx,
विषय है: Axb, x ≥ 0,

जैसे कि मैट्रिक्स ए और वैक्टर बी और सी गैर नकारात्मक हैं।

उदाहरण

ढ़कने और पैकिंग एलपीएस सामान्यतः एक रेखीय प्रोग्रामिंग समस्या के रूप में उत्पन्न होते हैं और सन्निकटन एल्गोरिथ्म के अध्ययन में महत्वपूर्ण होते हैं।[8] उदाहरण के लिए, सेट पैकिंग समस्या के एल. पी. छूट, स्वतंत्र सेट समस्या और मिलान समस्या एलपीएस पैक कर रही है। सेट कवर समस्या के एलपी छूट शिरोबिंदु आवरण समस्या, और लंबित सेट समस्या भी एलपीएस को कवर कर रहे हैं।

ग्राफ का भिन्नात्मक रंग ढूँढना आच्छादी एलपी का एक अन्य उदाहरण है। इस स्थिति में एक बाधा ग्राफ के प्रत्येक शीर्ष के लिए और एक चर के लिए ग्राफ के प्रत्येक स्वतंत्र सेट के लिए है।

पूरक शिथिलता

जब प्रथम के अनुकूलतम समाधान को पूरक ढलवां प्रमेय के प्रयोग से ही जाना जाता है तो इस दोहरे इष्टतम समाधान को प्राप्त करना संभव होता है। प्रमेय कहता है:

मान लीजिए x = (x1, x2,…, एक्सएन) प्राथमिक सुसंगत है और वह y = (y1, y2,…, ym) दोहरी सुसंगत है। मानलो की (w1, w2,…, डब्ल्यूएम) इसी प्राथमिक सुस्त चर को दर्शाता है, और मानलो (z1, z2, ... , zn) संगत दोहरे सुस्त चर को निरूपित करते हैं। तब x और y उनकी संबंधित समस्याओं के लिए इष्टतम हैं यदि और केवल यदि

  • xj zj = 0, के लिए j = 1, 2, ... , n, और
  • wi yi = 0, के लिए i = 1, 2, ... , m.

इसलिए यदि प्रारंभिक का i-th सुस्त चर शून्य नहीं है, तो दोहरे का i-th चर शून्य के बराबर है। इसी तरह, यदि दोहरे का j-th सुस्त चर शून्य नहीं है, तो प्रारंभिक का j-th चर शून्य के बराबर है।

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

सिद्धांत

इष्टतम समाधानों का अस्तित्व

ज्यामितीय दृष्टि से, रैखिक बाधाएं व्यवहार्य क्षेत्र को परिभाषित करती हैं, जो उत्तल बहुफलक है। रैखिक प्रकार्य, एक उत्तल फलन है, जिसका अर्थ है कि प्रत्येक स्थानीय न्यूनतम वैश्विक न्यूनतम होता है; इसी तरह रैखिक प्रकार्य भी अवतल ही होता है, जिसका अर्थ है कि प्रत्येक स्थानीय अधिकतम एक वैश्विक अधिकतम है।

एक इष्टतम समाधान की आवश्यकता नहीं है, दो कारणों से सबसे पहले, यदि बाधाएँ असंगत हैं, तो कोई संभव समाधान मौजूद नहीं है: उदाहरण के लिए बाधाओं x ≥ 2 और x ≤ 1 संयुक्त रूप से संतुष्ट नहीं किया जा सकता है; इस मामले में, हम कहते हैं कि एलपी अक्षम्य है। दूसरा, जब बहुटोपी वस्तुनिष्ठ प्रकार्य की प्रवणता की दिशा में असीम होता है (जहाँ वस्तुनिष्ठ फलन की प्रवणता वस्तुनिष्ठ फलन के गुणांकों का सदिश है), तब कोई इष्टतम मान प्राप्त नहीं होता है क्योंकि उद्देश्य फलन के किसी परिमित मान से बेहतर करना हमेशा संभव होता है।

बहुफलक के इष्टतम शीर्ष (और किरणें)

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

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

एल्गोरिदम

एक रैखिक प्रोग्रामिंग समस्या में, रैखिक बाधाओं की एक श्रृंखला उन चरों के संभावित मानों का एक उत्तल सेट व्यवहार्य क्षेत्र उत्पन्न करती है। द्वि-चर मामले में यह क्षेत्र उत्तल सरल बहुभुज के आकार में है।

आधार विनिमय एल्गोरिदम

डेंटज़िग की सिंप्लेक्स एल्गोरिथम

1947 में जॉर्ज डेंट्ज़िग द्वारा विकसित सिंप्लेक्स एल्गोरिदम, एलपी समस्याओं को पॉलिटोपे के शीर्ष पर व्यवहार्य समाधान के निर्माण द्वारा हल करता है और फिर पॉलीटोपे के किनारों पर एक पथ के साथ वस्तुनिष्ठ समारोह के गैरघटते मूल्यों के शीर्ष पर चलना जब तक निश्चित रूप से अधिकतम नहीं पहुंच जाता है। कई व्यावहारिक समस्याओं में, "स्टॉलिंग" होता है: कई पिवोट्स उद्देश्य फलन में कोई वृद्धि के साथ किए जाते हैं।[9][10] दुर्लभ व्यावहारिक समस्याओं में, सिम्प्लेक्स एल्गोरिथम के सामान्य संस्करण वास्तव में "चक्र" हो सकते हैं।[10] चक्रों से बचने के लिए शोधकर्ताओं ने मतदान के नए नियम बनाये।[11]

प्रयोग में, सिम्पलेक्स एल्गोरिदम काफी कुशल है और अगर चक्र चलाने के खिलाफ कुछ सावधानियां बरती जाएं तो वैश्विक इष्टतम खोजने की गारंटी दी जा सकती है। सिम्पलेक्स एल्गोरिथम "यादृच्छिक" समस्याओं को कुशलता से हल करने के लिए सिद्ध हुआ है, अर्थात चरणों की एक घन संख्या में, [12] जो व्यावहारिक समस्याओं पर अपने व्यवहार के समान है।[9][13]

चूकि, सिम्पलेक्स एल्गोरिथम में यह सबसे बुरी करने वाली  स्थिति है: क्ले और मिन्टी ने रैखिक प्रोग्रामिंग समस्याओं के एक परिवार का निर्माण किया, जिसके लिए सिंप्लेक्स विधि समस्या के आकार में कई चरणों की गणना की।[9][14][15] वास्तव में, कुछ समय के लिए यह ज्ञात नहीं था कि क्या रैखिक प्रोग्रामिंग समस्या बहुपद समय में व्याख्या करने योग्य था, वास्तव में, कुछ समय के लिए यह ज्ञात नहीं था कि क्या रैखिक प्रोग्रामिंग समस्या बहुपद समय में व्याख्या करने योग्य थी, यानी पी (जटिलता) वर्ग।

क्रिस-क्रॉस एल्गोरिथम

डेंटज़िग के सिंप्लेक्स एल्गोरिथम की तरह, क्रिस-क्रॉस एल्गोरिथम एक आधार-विनिमय एल्गोरिथम है जो आधारों के बीच पिवट करता है। हालांकि, क्रॉस क्रॉस एल्गोरिदम को व्यवहार्यता बनाए रखने की आवश्यकता नहीं है, बल्कि एक व्यवहार्य आधार से एक अक्षम्य आधार पर धुरी कर सकता है। क्रस-क्रॉस एल्गोरिथ्म में रेखीय प्रोग्रामिंग के लिए बहुपदीय समय की जटिलता नहीं होती है। दोनों एल्गोरिदम आयाम D में एक (परेशान)इकाई घन के सभी 2D कोनों पर जाते हैं, क्ले-मिन्टी क्यूब, सबसे खराब स्थिति में।[11][16]

आंतरिक बिंदु

सिम्पलेक्स एल्गोरिथम के विपरीत, जो पॉलीहेड्रल समुच्चय पर शीर्षों के बीच किनारों को पार करके इष्टतम समाधान ढूंढता है, आंतरिक-बिंदु विधियाँ व्यवहार्य क्षेत्र के आंतरिक भाग के माध्यम से गुजरती हैं।

खाचियां के बाद दीर्घवृत्ताभ एल्गोरिथम

रैखिक प्रोग्रामिंग के लिए यह अब तक का सबसे खराब स्थिति वाला बहुपद-समय एल्गोरिथम है। एक समस्या है जो n चर है हल करने के लिए और L इनपुट बिट्स में एन्कोडेड किया जा सकता है, यह एल्गोरिथ्म समय में चलता है।[5] लियोनिद खाचियान ने 1979 में दीर्घवृत्ताभ पद्धति की शुरुआत के साथ इस लंबे समय से चली आ रही जटिलता के मुद्दे को हल किया।अभिसरण विश्लेषण में (वास्तविक संख्या) पूर्ववर्ती हैं, विशेष रूप से Naum Z.Shore द्वारा विकसित पुनरावृत्ति विधियाँ और Arkadi Nemirovski और D. Yudin द्वारा सन्निकटन एल्गोरिदम।

कर्मकार का प्रक्षेपी एल्गोरिथम

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

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

वैद्य की 87 एल्गोरिथ्म

1987 में वैद्य ने एक एल्गोरिथ्म भी प्रस्तावित किया जो समय में चलता है।[18]

वैद्य की 89 एल्गोरिथ्म

1989 में वैद्य ने एक अल्गोरिथ्म विकसित किया जो समय में चलता है।[19] औपचारिक रूप से, एल्गोरिथ्म सबसे खराब स्थिति में अंकगणितीय संचालन लेता है, जहां बाधाओं की संख्या है, चर की संख्या है, और बिट्स की संख्या है।

इनपुट स्पार्सिटी टाइम एल्गोरिदम

2015 में, ली और सिद्फोर्ड ने दिखाया कि, इसे में हल किया जा सकता है समय में[20], जहां गैर शून्य तत्वों की संख्या का प्रतिनिधित्व करता है, और यह सबसे खराब स्थिति में लेता रहता है।

वर्तमान मैट्रिक्स गुणन समय एल्गोरिथ्म

2019 में, कोहेन, ली और सॉन्ग ने रनिंग टाइम को समय में सुधार किया, आव्यूह गुणन का घातांक है और आव्यूह गुणन का दोहरा घातांक है।[21] α को (मोटे तौर पर) सबसे बड़ी संख्या के रूप में परिभाषित किया गया है जैसे कि एक आव्यूह को आव्यूह द्वारा समय में गुणा किया जा सकता है। ली, सोंग और झांग द्वारा अनुवर्ती कार्य में, ये भिन्न पद्धति से एक ही परिणाम देते हैं।[22] ये दो एल्गोरिदम रहते हैं जब ω = 2 और α = 1, जियांग, सोंग, वीनस्टीन और झांग के कारण से में सुधार हुआ।[23]

आंतरिक-बिंदु विधियों और सिंप्लेक्स एल्गोरिदम की तुलना

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

खुली समस्याएं और हाल का काम

Unsolved problem in कंप्यूटर विज्ञान:

रैखिक प्रोग्रामिंग एक जोरदार बहुपद समय एल्गोरिथ्म स्वीकार करता है?

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

  • क्या एलपी दृढ़ता से बहुपद-समय एल्गोरिदम स्वीकार करता है?
  • क्या एलपी सख्ती से पूरक समाधान खोजने के लिए दृढ़ता से बहुपद-समय एल्गोरिदम स्वीकार करता है?
  • क्या एलपी गणना के वास्तविक संख्या (इकाई लागत) मॉडल में बहुपद-समय एल्गोरिदम स्वीकार करता है?

21 वीं सदी की 18 सबसे बड़ी अनसुलझी समस्याओं में से स्टीफन स्मेल द्वारा समस्याओं के इस निकट संबंधी समूह का हवाला दिया गया है। स्मेल के शब्दों में, समस्या का तीसरा संस्करण "रैखिक प्रोग्रामिंग सिद्धांत की मुख्य अनसुलझी समस्या है " जबकि एल्गोरिदम कमजोर बहुपद समय में रैखिक प्रोग्रामिंग को हल करने के लिए मौजूद हैं, जैसे दीर्घवृत्ताभ विधियाँ और आंतरिक बिंदु विधि, कोई एल्गोरिथ्म अभी तक नहीं पाया गया है जो बाधाओं की संख्या और चर की संख्या में दृढ़ता से बहुपद समय प्रदर्शन की अनुमति देता है। इस तरह के अल्गोरिथ्म का विकास अत्यंत सैद्धांतिक रुचि का होगा और संभवतः बड़े पैमाने पर एलपी के समाधान में व्यावहारिक लाभ की अनुमति देता है।

हालाँकि हाल ही में उच्च आयामों के लिए हिर्श अनुमान को अस्वीकृत कर दिया गया था, फिर भी यह निम्नलिखित प्रश्नों को खुला छोड़ देता है।

  • क्या वहां धुरी नियम हैं जो बहुपद समय सिम्प्लेक्स वेरिएंट को जन्म देते हैं?
  • क्या सभी पॉलीटोपल ग्राफ़ का बहुपद रूप से बाध्य व्यास है?

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

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

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

सिम्प्लेक्स पिवट विधियां प्रारंभिक (या दोहरी) व्यवहार्यता को संरक्षित करती हैं। दूसरी ओर, क्रिस-क्रॉस पिवट विधियां (प्राथमिक या दोहरी) व्यवहार्यता को संरक्षित नहीं करती हैं – वे किसी भी क्रम में प्रारंभिक व्यवहार्य, दोहरी व्यवहार्य या प्रारंभिक और दोहरी व्यवहार्य आधारों पर जा सकते हैं। 1970 के दशक से इस प्रकार की धुरी विधियों का अध्ययन किया गया है।[25] अनिवार्य रूप से, ये विधियां रैखिक प्रोग्रामिंग समस्या के तहत व्यवस्था पॉलीटोप पर सबसे छोटा धुरी पथ खोजने का प्रयास करती हैं। पॉलीटॉपल ग्राफ़ के विपरीत, व्यवस्था के ग्राफ़ पॉलीटोप्स को छोटे व्यास के लिए जाना जाता है, जिससे सामान्य पॉलीटोप्स के व्यास के बारे में प्रश्नों को हल किए बिना दृढ़ता से बहुपद-समय क्रिस-क्रॉस पिवट एल्गोरिदम की संभावना की अनुमति मिलती है।[11]


पूर्णांक अज्ञात

यदि सभी अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को पूर्णांक प्रोग्रामिंग (IP) या पूर्णांक रैखिक प्रोग्रामिंग (ILP) समस्या कहा जाता है। रैखिक प्रोग्रामिंग के विपरीत, जिसे सबसे खराब स्थिति में कुशलता से हल किया जा सकता है, पूर्णांक प्रोग्रामिंग समस्याएं कई व्यावहारिक स्थितियों में होती हैं (जो सीमित चर वाले हैं) एनपी कठिन हैं। 0-1 पूर्णांक प्रोग्रामिंग या बाइनरी पूर्णांक प्रोग्रामिंग (बीआईपी) पूर्णांक प्रोग्रामिंग का विशेष मामला है जहां चर को 0 या 1 (मनमानी पूर्णांक के बजाय) होना आवश्यक है। इस समस्या को एनपी-हार्ड के रूप में भी वर्गीकृत किया गया है, और वास्तव में निर्णय संस्करण कार्प की 21 एनपी-पूर्ण समस्याओं में से एक था।

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

यदि केवल कुछ अज्ञात चरों को पूर्णांक होना आवश्यक है, तो समस्या को मिश्रित पूर्णांक (रैखिक) प्रोग्रामिंग (MIP या MILP) समस्या कहा जाता है। ये आम तौर पर एनपी-हार्ड भी होते हैं क्योंकि ये ILP प्रोग्राम से भी अधिक सामान्य होते हैं।

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

हालाँकि IP और MIP समस्याओं के कुछ महत्वपूर्ण उपवर्ग हैं जो कुशलता से हल करने योग्य हैं, सबसे विशेष रूप से समस्याएँ जहाँ बाधा मैट्रिक्स पूरी तरह से एकरूप है और बाधाओं के दाहिने हाथ पूर्णांक हैं या - अधिक सामान्य - जहाँ सिस्टम में कुल दोहरी अखंडता है (टीडीआई) संपत्ति। .

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

पूर्णांक रेखीय कार्यक्रमों को हल करने के लिए उन्नत एल्गोरिदम में शामिल हैं:

इस तरह के पूर्णांक-प्रोग्रामिंग एल्गोरिदम की चर्चा मैनफ्रेड डब्ल्यू पैडबर्ग और ब्यासली में की गई है।

इस तरह के इंटीगर-प्रोग्रामिंग एल्गोरिथ्म के बारे में पैडबर्ग और बीज़ले में चर्चा की जाती है।

इंटीग्रल लीनियर प्रोग्राम

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

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

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

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

यह साबित करने का एक सामान्य तरीका है कि एक बहुफलक समाकल है, यह दिखाना है कि यह पूरी तरह से एक-मॉड्यूलर मैट्रिक्स है। पूर्णांक अपघटन संपत्ति और कुल दोहरी अभिन्नता सहित अन्य सामान्य विधियाँ हैं। अन्य विशिष्ट प्रसिद्ध इंटीग्रल एलपी में मैचिंग पॉलीटॉप, लैटिस पॉलीहेड्रा, सबमॉड्यूलर फ्लो पॉलीहेड्रा और दो सामान्यीकृत पॉलीमैट्रोइड्स/जी-पॉलीमेट्रोइड्स का इंटरसेक्शन शामिल है - उदा. श्रिजवर 2003 देखें।

सॉल्वर और स्क्रिप्टिंग (प्रोग्रामिंग) भाषाएँ

अनुज्ञेय मुफ्त सॉफ्टवेयर लाइसेंस लाइसेंस:

नाम लाइसेंस संक्षिप्त जानकारी
गेको MIT License Open-source library for solving large-scale LP, QP, QCQP, NLP, and MIP optimization
GLOP Apache v2 Google's open-source linear programming solver
Pyomo BSD An open-source modeling language for large-scale linear, mixed integer and nonlinear optimization
SuanShu Apache v2 an open-source suite of optimization algorithms to solve LP, QP, SOCP, SDP, SQP in Java

कॉपीलेफ्ट |कॉपीलेफ़्ट (पारस्परिक) लाइसेंस:

Name License Brief info
ALGLIB GPL 2+ an LP solver from ALGLIB project (C++, C#, Python)
Cassowary constraint solver LGPL an incremental constraint solving toolkit that efficiently solves systems of linear equalities and inequalities
CLP CPL an LP solver from COIN-OR
glpk GPL GNU Linear Programming Kit, an LP/MILP solver with a native C API and numerous (15) third-party wrappers for other languages. Specialist support for flow networks. Bundles the AMPL-like GNU MathProg modelling language and translator.
Qoca GPL a library for incrementally solving systems of linear equations with various goal functions
R-Project GPL a programming language and software environment for statistical computing and graphics

मिंटो (मिश्रित पूर्णांक अनुकूलक, एक पूर्णांक प्रोग्रामिंग सॉल्वर जो शाखा और बाध्य एल्गोरिथम का उपयोग करता है) में सार्वजनिक रूप से उपलब्ध स्रोत कोड है[26] लेकिन खुला स्रोत नहीं है।

मालिकाना सॉफ्टवेयर लाइसेंस:

Name Brief info
AIMMS A modeling language that allows to model linear, mixed integer, and nonlinear optimization models. It also offers a tool for constraint programming. Algorithm, in the forms of heuristics or exact methods, such as Branch-and-Cut or Column Generation, can also be implemented. The tool calls an appropriate solver such as CPLEX or similar, to solve the optimization problem at hand. Academic licenses are free of charge.
ALGLIB A commercial edition of the copyleft licensed library. C++, C#, Python.
AMPL A popular modeling language for large-scale linear, mixed integer and nonlinear optimisation with a free student limited version available (500 variables and 500 constraints).
Analytica A general modeling language and interactive development environment. Its influence diagrams enable users to formulate problems as graphs with nodes for decision variables, objectives, and constraints. Analytica Optimizer Edition includes linear, mixed integer, and nonlinear solvers and selects the solver to match the problem. It also accepts other engines as plug-ins, including XPRESS, Gurobi, Artelys Knitro, and MOSEK.
APMonitor API to MATLAB and Python. Solve example Linear Programming (LP) problems through MATLAB, Python, or a web-interface.
CPLEX Popular solver with an API for several programming languages, and also has a modelling language and works with AIMMS, AMPL, GAMS, MPL, OpenOpt, OPL Development Studio, and TOMLAB. Free for academic use.
Excel Solver Function A nonlinear solver adjusted to spreadsheets in which function evaluations are based on the recalculating cells. Basic version available as a standard add-on for Excel.
FortMP
GAMS
IMSL Numerical Libraries Collections of math and statistical algorithms available in C/C++, Fortran, Java and C#/.NET. Optimization routines in the IMSL Libraries include unconstrained, linearly and nonlinearly constrained minimizations, and linear programming algorithms.
LINDO Solver with an API for large scale optimization of linear, integer, quadratic, conic and general nonlinear programs with stochastic programming extensions. It offers a global optimization procedure for finding guaranteed globally optimal solution to general nonlinear programs with continuous and discrete variables. It also has a statistical sampling API to integrate Monte-Carlo simulations into an optimization framework. It has an algebraic modeling language (LINGO) and allows modeling within a spreadsheet (What'sBest).
Maple A general-purpose programming-language for symbolic and numerical computing.
MATLAB A general-purpose and matrix-oriented programming-language for numerical computing. Linear programming in MATLAB requires the Optimization Toolbox in addition to the base MATLAB product; available routines include INTLINPROG and LINPROG
Mathcad A WYSIWYG math editor. It has functions for solving both linear and nonlinear optimization problems.
Mathematica A general-purpose programming-language for mathematics, including symbolic and numerical capabilities.
MOSEK A solver for large scale optimization with API for several languages (C++,java,.net, Matlab and python).
NAG Numerical Library A collection of mathematical and statistical routines developed by the Numerical Algorithms Group for multiple programming languages (C, C++, Fortran, Visual Basic, Java and C#) and packages (MATLAB, Excel, R, LabVIEW). The Optimization chapter of the NAG Library includes routines for linear programming problems with both sparse and non-sparse linear constraint matrices, together with routines for the optimization of quadratic, nonlinear, sums of squares of linear or nonlinear functions with nonlinear, bounded or no constraints. The NAG Library has routines for both local and global optimization, and for continuous or integer problems.
OptimJ A Java-based modeling language for optimization with a free version available.[27][28]
SAS/OR A suite of solvers for Linear, Integer, Nonlinear, Derivative-Free, Network, Combinatorial and Constraint Optimization; the Algebraic modeling language OPTMODEL; and a variety of vertical solutions aimed at specific problems/markets, all of which are fully integrated with the SAS System.
SCIP A general-purpose constraint integer programming solver with an emphasis on MIP. Compatible with Zimpl modelling language. Free for academic use and available in source code.
XPRESS Solver for large-scale linear programs, quadratic programs, general nonlinear and mixed-integer programs. Has API for several programming languages, also has a modelling language Mosel and works with AMPL, GAMS. Free for academic use.
VisSim A visual block diagram language for simulation of dynamical systems.


यह भी देखें


टिप्पणियाँ

  1. 1.0 1.1 Gerard Sierksma; Yori Zwols (2015). रैखिक और पूर्णांक अनुकूलन: सिद्धांत और व्यवहार (3rd ed.). CRC Press. p. 1. ISBN 978-1498710169.
  2. 2.0 2.1 Alexander Schrijver (1998). रैखिक और पूर्णांक प्रोग्रामिंग के सिद्धान्त. John Wiley & Sons. pp. 221–222. ISBN 978-0-471-98232-6.
  3. 3.0 3.1 3.2 George B. Dantzig (April 1982). "रैखिक प्रोग्रामिंग की उत्पत्ति के बारे में यादें" (PDF). Operations Research Letters. 1 (2): 43–48. doi:10.1016/0167-6377(82)90043-8. Archived from the original on May 20, 2015.
  4. 4.0 4.1 4.2 Dantzig, George B.; Thapa, Mukund Narain (1997). रैखिक प्रोग्रामिंग. New York: Springer. p. xxvii. ISBN 0387948333. OCLC 35318475.
  5. 5.0 5.1 5.2 Leonid Khachiyan (1979). "रैखिक प्रोग्रामिंग के लिए एक बहुपद एल्गोरिथम". Doklady Akademii Nauk SSSR. 224 (5): 1093–1096.
  6. 6.0 6.1 Narendra Karmarkar (1984). "रैखिक प्रोग्रामिंग के लिए एक नया बहुपद-समय एल्गोरिथम". Combinatorica. 4 (4): 373–395. doi:10.1007/BF02579150. S2CID 7257867.
  7. (PDF) https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37041.pdf. {{cite web}}: Missing or empty |title= (help)
  8. Vazirani (2001, p. 112)
  9. 9.0 9.1 9.2 Dantzig & Thapa (2003)
  10. 10.0 10.1 Padberg (1999)
  11. 11.0 11.1 11.2 Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. Liebling; Dominique de Werra (eds.). "क्रिस-क्रॉस विधियाँ: धुरी एल्गोरिदम पर एक नया दृश्य". Mathematical Programming, Series B. 79 (1–3): 369–395. CiteSeerX 10.1.1.36.9373. doi:10.1007/BF02614325. MR 1464775. S2CID 2794181.
  12. Borgwardt (1987)
  13. Todd (2002)
  14. Murty (1983)
  15. Papadimitriou & Steiglitz
  16. Roos, C. (1990). "क्रिस-क्रॉस सिम्प्लेक्स विधि के लिए टेरलाकी के धुरी नियम के लिए एक घातीय उदाहरण". Mathematical Programming. Series A. 46 (1): 79–84. doi:10.1007/BF01585729. MR 1045573. S2CID 33463483.
  17. Strang, Gilbert (1 June 1987). "कर्मकार का एल्गोरिथ्म और अनुप्रयुक्त गणित में उसका स्थान". The Mathematical Intelligencer. 9 (2): 4–10. doi:10.1007/BF03025891. ISSN 0343-6993. MR 0883185. S2CID 123541868.
  18. Vaidya, Pravin M. (1987). रैखिक प्रोग्रामिंग के लिए एक एल्गोरिदम जिसके लिए <गणित> {O} (((m+ n) n^2+(m+ n)^{1.5} n) L)</math> अंकगणितीय संचालन की आवश्यकता होती है. 28th Annual IEEE Symposium on Foundations of Computer Science. FOCS.
  19. Vaidya, Pravin M. (1989). "Speeding-up linear programming using fast matrix multiplication". कंप्यूटर विज्ञान की नींव पर 30वीं वार्षिक संगोष्ठी. कंप्यूटर विज्ञान की नींव पर 30वीं वार्षिक संगोष्ठी. FOCS. pp. 332–337. doi:10.1109/SFCS.1989.63499. ISBN 0-8186-1982-1.
  20. Lee, Yin-Tat; Sidford, Aaron (2015). रैखिक प्रोग्रामिंग के लिए कुशल उलटा रखरखाव और तेज एल्गोरिदम. FOCS '15 Foundations of Computer Science. arXiv:1503.01752.
  21. Cohen, Michael B.; Lee, Yin-Tat; Song, Zhao (2018). वर्तमान मैट्रिक्स गुणन समय में रेखीय कार्यक्रमों को हल करना. 51st Annual ACM Symposium on the Theory of Computing. STOC'19. arXiv:1810.07896.
  22. Lee, Yin-Tat; Song, Zhao; Zhang, Qiuyi (2019). वर्तमान मैट्रिक्स गुणन समय में अनुभवजन्य जोखिम न्यूनीकरण को हल करना. Conference on Learning Theory. COLT'19. arXiv:1905.04447.
  23. Jiang, Shunhua; Song, Zhao; Weinstein, Omri; Zhang, Hengjie (2020). तेज़ एलपी के लिए तेज़ गतिशील मैट्रिक्स व्युत्क्रम. arXiv:2004.07470.
  24. Illés, Tibor; Terlaky, Tamás (2002). "धुरी बनाम आंतरिक बिंदु विधियाँ: पेशेवरों और विपक्ष". European Journal of Operational Research. 140 (2): 170. CiteSeerX 10.1.1.646.3539. doi:10.1016/S0377-2217(02)00061-9.
  25. Anstreicher, Kurt M.; Terlaky, Tamás (1994). "रैखिक प्रोग्रामिंग के लिए एक मोनोटोनिक बिल्ड-अप सिम्प्लेक्स एल्गोरिदम". Operations Research. 42 (3): 556–561. doi:10.1287/opre.42.3.556. ISSN 0030-364X. JSTOR 171894.
  26. "COR@L - लेहघ में कम्प्यूटेशनल अनुकूलन अनुसंधान". lehigh.edu.
  27. http://www.in-ter-trans.eu/resources/Zesch_Hellingrath_2010_Integrated+Production-Distribution+Planning.pdf OptimJ used in an optimization model for mixed-model assembly lines, University of Münster
  28. http://www.aaai.org/ocs/index.php/AAAI/AAAI10/paper/viewFile/1769/2076 Archived 2011-06-29 at the Wayback Machine OptimJ used in an Approximate Subgame-Perfect Equilibrium Computation Technique for Repeated Games


संदर्भ

  • Kantorovich, L. V. (1940). "Об одном эффективном методе решения некоторых классов экстремальных проблем" [A new method of solving some classes of extremal problems]. Doklady Akad Sci SSSR. 28: 211–214.
  • F. L. Hitchcock: The distribution of a product from several sources to numerous localities, Journal of Mathematics and Physics, 20, 1941, 224–230.
  • G.B Dantzig: Maximization of a linear function of variables subject to linear inequalities, 1947. Published pp. 339–347 in T.C. Koopmans (ed.):Activity Analysis of Production and Allocation, New York-London 1951 (Wiley & Chapman-Hall)
  • J. E. Beasley, editor. Advances in Linear and Integer Programming. Oxford Science, 1996. (Collection of surveys)
  • Bland, Robert G. (1977). "New Finite Pivoting Rules for the Simplex Method". Mathematics of Operations Research. 2 (2): 103–107. doi:10.1287/moor.2.2.103. JSTOR 3689647.
  • Karl-Heinz Borgwardt, The Simplex Algorithm: A Probabilistic Analysis, Algorithms and Combinatorics, Volume 1, Springer-Verlag, 1987. (Average behavior on random problems)
  • Richard W. Cottle, ed. The Basic George B. Dantzig. Stanford Business Books, Stanford University Press, Stanford, California, 2003. (Selected papers by George B. Dantzig)
  • George B. Dantzig and Mukund N. Thapa. 1997. Linear programming 1: Introduction. Springer-Verlag.
  • George B. Dantzig and Mukund N. Thapa. 2003. Linear Programming 2: Theory and Extensions. Springer-Verlag. (Comprehensive, covering e.g. pivoting and interior-point algorithms, large-scale problems, decomposition following Dantzig–Wolfe and Benders, and introducing stochastic programming.)
  • Edmonds, Jack; Giles, Rick (1977). "A Min-Max Relation for Submodular Functions on Graphs". Studies in Integer Programming. Annals of Discrete Mathematics. Vol. 1. pp. 185–204. doi:10.1016/S0167-5060(08)70734-9. ISBN 978-0-7204-0765-5.
  • Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. Liebling; Dominique de Werra (eds.). "Criss-cross methods: A fresh view on pivot algorithms". Mathematical Programming, Series B. 79 (1–3): 369–395. CiteSeerX 10.1.1.36.9373. doi:10.1007/BF02614325. MR 1464775. S2CID 2794181.
  • Gondzio, Jacek; Terlaky, Tamás (1996). "3 A computational view of interior point methods". In J. E. Beasley (ed.). Advances in linear and integer programming. Oxford Lecture Series in Mathematics and its Applications. Vol. 4. New York: Oxford University Press. pp. 103–144. MR 1438311. Postscript file at website of Gondzio and at McMaster University website of Terlaky.
  • Murty, Katta G. (1983). Linear programming. New York: John Wiley & Sons, Inc. pp. xix+482. ISBN 978-0-471-09725-9. MR 0720547. (comprehensive reference to classical approaches).
  • Evar D. Nering and Albert W. Tucker, 1993, Linear Programs and Related Problems, Academic Press. (elementary)
  • M. Padberg, Linear Optimization and Extensions, Second Edition, Springer-Verlag, 1999. (carefully written account of primal and dual simplex algorithms and projective algorithms, with an introduction to integer linear programming – featuring the traveling salesman problem for Odysseus.)
  • Christos H. Papadimitriou and Kenneth Steiglitz, Combinatorial Optimization: Algorithms and Complexity, Corrected republication with a new preface, Dover. (computer science)
  • Michael J. Todd (February 2002). "The many facets of linear programming". Mathematical Programming. 91 (3): 417–436. doi:10.1007/s101070100261. S2CID 6464735. (Invited survey, from the International Symposium on Mathematical Programming.)
  • Vanderbei, Robert J. (2001). Linear Programming: Foundations and Extensions. Springer Verlag.
  • Vazirani, Vijay V. (2001). Approximation Algorithms. Springer-Verlag. ISBN 978-3-540-65367-7. (Computer science)


अग्रिम पठन


बाहरी संबंध

| group5 = Metaheuristics | abbr5 = heuristic | list5 =

| below =

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

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

}}