सिम्प्लेक्स एल्गोरिथम

From Vigyanwiki
Revision as of 19:23, 21 November 2022 by alpha>Abhishekk (minor changes)

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

कलनविधि का नाम सिम्प्लेक्स की अवधारणा से लिया गया है और इसका सुझाव टी.एस. मोत्ज़किन ने दिया था।[2] वास्तव में इस पद्धति में सरलीकरण का उपयोग नहीं किया जाता है, परन्तु इसकी एक व्याख्या यह है कि यह सिम्प्लिसिअल शंकुओं पर कार्यकारी होता है, और ये अतिरिक्त अवरोध के साथ उचित सिम्प्लिसेज़ बन जाते हैं।[3][4][5][6] प्रश्नगत सिम्प्लिसिअल शंकु एक ज्यामितीय वस्तु के कोने (अर्थात, शीर्ष के प्रतिवैस) होते हैं, जिसे पॉलीटोप कहा जाता है। इस पॉलीटॉप के आकार को उदेश्य फलन पर लागू बाध्यता (कंस्ट्रेंट्स) से परिभाषित किया गया है।

इतिहास

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

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

अवलोकन

रैखिक असमानताओं की एक प्रणाली एक पॉलीटोप को एक साध्य क्षेत्र के रूप में परिभाषित करती है। सिंप्लेक्स एल्गोरिथ्म एक प्रारंभिक शीर्ष (ज्यामिति) से शुरू होता है और पॉलीटोप के किनारों के साथ चलता है जब तक कि यह शीर्ष तक नहीं पहुंच जाता इष्टतम हल का।
3D . में सिम्प्लेक्स कलनविधि का पॉलीहेड्रॉन

सिम्पलेक्स कलनविधि कैनोनिकल रूप में रैखिक फलनों पर कार्यरत होता है

अधिकतम
तथा के अधीन

के साथ उद्देश्य फलन के गुणांक, आव्यूह पक्षांतर होता है, और समस्या के चर होते हैं, एक p×n आव्यूह है, और है। किसी भी रैखिक फलन को मानक रूप में एक में बदलने की एक स्पष्ट व सिम्पलेक्स प्रक्रिया है, इसलिए रैखिक फलनों के इस रूप का उपयोग करने से व्यापकता में कोई कमी नहीं आती है।

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

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

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

एक रैखिक प्रोग्रामन का हल दो चरणों में पूर्ण होता है। प्रथम चरण में, जिसे अवस्था I के रूप में जाना जाता है, प्रारंभिक चरम बिंदु प्राप्त होता है। फलन की प्रकृति के आधार पर यह सतहीय (ट्राईवियल) हो सकता है, परन्तु सामान्यतः इसे मूल या आरंभिक फलन के संशोधित संस्करण में सिम्पलेक्स कलनविधि लागू करके हल किया जा सकता है। अवस्था I के दो संभावित परिणाम इस प्रकार हैं की या तो एक मूल साध्य हल प्राप्त हो गया है या यह कि साध्य क्षेत्र रिक्त है। बाद के स्थिति में रैखिक प्रोग्राम को असुसंगत कहा जाता है। द्वितीय चरण में, अवस्था II सिम्पलेक्स कलनविधि अवस्था I में प्रारंभिक बिंदु के रूप में मिले मूल साध्य हल का उपयोग करके लागू किया जाता है। अवस्था II से संभावित परिणाम या तो एक इष्टतम मूल साध्य हल है या एक अपरिमित किनारा है जिस पर ऊपर उद्देश्य फलन असीम है।[13][14][15]

मानक रूप

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

नवीन चर, , के साथ प्रस्तुत किया गया है

दूसरे समीकरण का उपयोग रेखीय फलन से को निष्कासित करने के लिए किया जा सकता है। इस प्रकार, सभी निम्न सीमा बाध्यताओं (कंस्ट्रेंट्स) को अऋणात्मक बाध्यताओं (कंस्ट्रेंट्स) में परिवर्तित जा सकता है।

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

के साथ बदल दिया जाता है

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

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

रैखिक फलन से को निष्कासित करने के लिए समीकरण का उपयोग किया जा सकता है।

जब यह प्रक्रिया पूरी हो जाती है तो साध्य क्षेत्र के रूप में हो जाएगा

यह मान लेना भी उपयोगी है कि की कोटि पंक्तियों की संख्या है। इसका परिणाम सामान्यता में कोई कमी नहीं है क्योंकि अन्यथा या तो सिस्टम में आधिक्य समीकरण हैं जिन्हें छोड़ा जा सकता है, या सिस्टम असंगत है और रैखिक प्रोग्राम का कोई हल नहीं है।[17]

सिम्प्लेक्स सारणी

मानक रूप में एक रेखीय फलन को निम्न रूप की सारणी के रूप में दर्शाया जा सकता है

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

इसके विपरीत, एक मूल साध्य हल दिया गया है, गैर-शून्य चर के अनुरूप स्तंभ को एक गैर-एकवचन आव्यूह तक विस्तारित किया जा सकता है। यदि संबंधित सारणी को इस आव्यूह के व्युत्क्रम से गुणा किया जाता है तो परिणाम विहित रूप में एक सारणी है।[19]

माना

कैनोनिकल रूप में एक झाँकी बनें। उद्देश्य फलन से गुणांक cT
B
 
को हटाने के लिए अतिरिक्त पंक्ति-जोड़ परिवर्तन लागू किए जा सकते हैं। इस प्रक्रिया को प्राइसिंग आउट कहा जाता है और इसका परिणाम एक प्रामाणिक सारणी के रूप में सामने आता है

जहां zB संबंधित मूल साध्य हल पर उद्देश्य फलन का मान है। अद्यतित गुणांक, जिसे सापेक्ष लागत गुणांक के रूप में भी जाना जाता है, गैर मूल चर के संबंध में उद्देश्य फलन के परिवर्तन की दरें हैं।[14]

धुरी संचालन

मूल साध्य हल से आसन्न मूल साध्य हल में जाने का ज्यामितीय संचालन एक पिवट ऑपरेशन के रूप में लागू किया जाता है। सर्व प्रथम, एक गैर-शून्य धुरी तत्व को एक गैर-मूल स्तंभ में चुना जाता है। इस तत्व वाली पंक्ति को इस तत्व को 1 में बदलने के लिए इसके व्युत्क्रम से गुणा किया जाता है, और फिर स्तंभ में अन्य प्रविष्टियों को 0 में बदलने के लिए पंक्ति के गुणकों को दूसरी पंक्तियों में जोड़ा जाता है। परिणाम यह है कि, यदि पिवोट तत्व एक पंक्ति आर में है, तो स्तंभ तत्समक आव्यूह का आर-वें स्तंभ बन जाता है। इस स्तंभ के लिए चर अब एक मूल चर है, चर की जगह जो ऑपरेशन से पहले तत्समक आव्यूह के आर-वें स्तंभ के अनुरूप था। वास्तव में, धुरी स्तंभ से संबंधित चर मूल चर के सेट में प्रवेश करता है और इसे प्रवेश चर कहा जाता है, और जिस चर को प्रतिस्थापित किया जा रहा है वह मूल चर के सेट को छोड़ देता है और इसे छोड़ने वाला चर कहा जाता है। सारणी अभी भी विहित रूप में है परन्तु मूल चर के सेट के साथ एक तत्व बदल गया है।[13][14]

कलनविधि

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

चर चयन दर्ज करना

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

यदि एक से अधिक स्तंभ हैं ताकि वस्तुनिष्ठ पंक्ति में प्रविष्टि सकारात्मक हो तो मूल चर के सेट में से किसे जोड़ना है इसका चुनाव कुछ मनमाना है और कई एंट्री चर चॉइस रूल्स[20] जैसे डेवेक्स कलनविधि[21] विकसित किए गए हैं।

यदि वस्तुनिष्ठ पंक्ति में सभी प्रविष्टियाँ 0 से कम या उसके बराबर हैं तो चर में प्रवेश करने का कोई विकल्प नहीं बनाया जा सकता है और हल वास्तव में इष्टतम है। यह आसानी से इष्टतम माना जाता है क्योंकि वस्तुनिष्ठ पंक्ति अब प्रपत्र के एक समीकरण से मेल खाती है

एंट्री चर चॉइस रूल को बदलकर ताकि यह एक स्तंभ का चयन करे जहां ऑब्जेक्टिव रो में एंट्री नेगेटिव है, एल्गोरिदम को बदल दिया जाता है ताकि यह अधिकतम के बजाय ऑब्जेक्टिव फंक्शन का न्यूनतम पता लगा सके।

परिवर्तनीय चयन छोड़ना

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

इसके बाद, धुरी पंक्ति का चयन किया जाना चाहिए ताकि अन्य सभी मूल चर सकारात्मक बने रहें। एक गणना से पता चलता है कि ऐसा तब होता है जब प्रवेश करने वाले चर का परिणामी मूल्य न्यूनतम होता है। दूसरे शब्दों में, यदि पिवट स्तंभ c है, तो पिवट पंक्ति r को चुना जाता है ताकि

सभी r पर न्यूनतम है ताकि arc > 0 हो। इसे न्यूनतम अनुपात परीक्षण कहते हैं।[20] यदि एक से अधिक पंक्ति है जिसके लिए न्यूनतम हासिल किया जाता है तो निर्धारण करने के लिए ड्रॉपिंग चर चॉइस रूल[22] का उपयोग किया जा सकता है।

उदाहरण

रैखिक फलन पर विचार करें

छोटा करना
का विषय है

सुस्त चर s और t के योग के साथ, यह विहित सारणी द्वारा दर्शाया गया है

जहां स्तंभ 5 और 6 मूल चर s और t का प्रतिनिधित्व करते हैं और संबंधित मूल साध्य हल है

स्तंभ 2, 3 और 4 को पिवट स्तंभ के रूप में चुना जा सकता है, इस उदाहरण के लिए स्तंभ 4 को चुना गया है। पंक्ति 2 और 3 को धुरी पंक्तियों के रूप में चुनने से उत्पन्न z के मान क्रमशः 10/1 = 10 और 15/3 = 5 हैं। इनमें से कम से कम 5 है, इसलिए पंक्ति 3 को पिवट पंक्ति होना चाहिए। पिवट का प्रदर्शन करता है

अब स्तंभ 4 और 5 मूल चर z और s का प्रतिनिधित्व करते हैं और संबंधित मूल साध्य हल है

अगले चरण के लिए, वस्तुनिष्ठ पंक्ति में कोई सकारात्मक प्रविष्टि नहीं है और वास्तव में

इसलिए Z का न्यूनतम मान −20 है।

एक प्रारंभिक विहित सारणी ढूँढना

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

चरण I समस्या के लिए लागू सिंप्लेक्स एल्गोरिथ्म को नए उद्देश्य फलन के लिए न्यूनतम मूल्य के साथ समाप्त होना चाहिए, क्योंकि अऋणात्मक चर का योग होने के कारण, इसका मान 0 से नीचे है। यदि न्यूनतम 0 है तो मूल समस्या के समतुल्य एक विहित सारणी का निर्माण करने वाली परिणामी विहित सारणी से कृत्रिम चर को समाप्त किया जा सकता है। हल खोजने के लिए सिम्प्लेक्स एल्गोरिदम को लागू किया जा सकता है; इस कदम को द्वितीय चरण कहा जाता है। यदि न्यूनतम धनात्मक है तो प्रथम चरण की समस्या के लिए कोई साध्य हल नहीं है जहाँ कृत्रिम चर सभी शून्य हैं। इसका मतलब यह है कि मूल समस्या के लिए संभव क्षेत्र रिक्त है, और इसलिए मूल समस्या का कोई हल नहीं है।[13][14][24]

उदाहरण

रैखिक फलन पर विचार करें

छोटा करना
का विषय है

यह (गैर-विहित) सारणी द्वारा दर्शाया गया है

एक नई सारणी देते हुए कृत्रिम चर u और v और वस्तुनिष्ठ फलन W = u + v का परिचय दें

मूल उद्देश्य फलन को परिभाषित करने वाले समीकरण को द्वितीय चरण की प्रत्याशा में बनाए रखा जाता है।

निर्माण के द्वारा, यू और वी दोनों मूल चर हैं, क्योंकि वे प्रारंभिक तत्समक आव्यूह का हिस्सा हैं। हालाँकि, वस्तुनिष्ठ फलन W वर्तमान में मानता है कि u और v दोनों 0 हैं। वस्तुनिष्ठ फलन को सही मान के लिए समायोजित करने के लिए जहाँ u = 10 और v = 15, पहली पंक्ति में तीसरी और चौथी पंक्तियाँ जोड़ें

स्तंभ 5 को पिवट स्तंभ के रूप में चुनें, इसलिए पिवट पंक्ति पंक्ति 4 होनी चाहिए, और अपडेट की गई सारणी है

अब स्तंभ 3 को पिवट स्तंभ के रूप में चुनें, जिसके लिए पंक्ति 3 को पिवट पंक्ति होना चाहिए

कृत्रिम चर अब 0 हैं और उन्हें मूल समस्या के समतुल्य एक विहित सारणी देते हुए गिराया जा सकता है:

यह, सौभाग्य से, पहले से ही इष्टतम है और मूल रैखिक फलन के लिए इष्टतम मूल्य −130/7 है।

उन्नत विषय

कार्यान्वयन

कलनविधि का वर्णन करने के लिए ऊपर इस्तेमाल किया गया सारणी फॉर्म खुद को एक तत्काल कार्यान्वयन के लिए उधार देता है जिसमें सारणी को एक आयताकार (एम + 1) -बाय- (एम + एन + 1) सरणी के रूप में बनाए रखा जाता है। तत्समक आव्यूह के m स्पष्ट स्तंभों को संग्रहीत करने से बचना सीधा है जो B के आधार पर [A, I] के स्तंभों का सबसेट होने के कारण सारणी के भीतर होगा। इस कार्यान्वयन को "मानक सिंप्लेक्स कलनविधि" के रूप में जाना जाता है। भंडारण और संगणना ओवरहेड ऐसा है कि बड़ी रैखिक प्रोग्रामिंग समस्याओं को हल करने के लिए मानक सिंप्लेक्स विधि एक निषेधात्मक रूप से महंगा दृष्टिकोण है।

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

बड़ी रेखीय-प्रोग्रामिंग समस्याओं में ए आमतौर पर एक विरल आव्यूह है और, जब इसके उल्टे प्रतिनिधित्व को बनाए रखते हुए बी की परिणामी विरलता का शोषण किया जाता है, तो संशोधित सिंप्लेक्स एल्गोरिथ्म मानक सिम्प्लेक्स विधि की तुलना में बहुत अधिक कुशल होता है। वाणिज्यिक सिंप्लेक्स सॉल्वर संशोधित सिंप्लेक्स एल्गोरिदम पर आधारित हैं।[24][25][26][27][28]

अध: पतन: रुकना और साइकिल चलाना

यदि सभी मूल चरों के मान पूरी तरह से सकारात्मक हैं, तो एक धुरी के परिणामस्वरूप उद्देश्य मूल्य में सुधार होना चाहिए। जब यह सदैव होता है तो मूल चर का कोई सेट दो बार नहीं होता है और सिंप्लेक्स एल्गोरिथ्म को सीमित चरणों के बाद समाप्त होना चाहिए। मूल साध्य हल जहां कम से कम एक मूल चर शून्य है, उसे पतित कहा जाता है और इसके परिणामस्वरूप पिवोट्स हो सकते हैं जिसके लिए उद्देश्य मूल्य में कोई सुधार नहीं होता है। इस स्थिति में हल में कोई वास्तविक परिवर्तन नहीं होता है, परन्तु केवल मूल चर के सेट में परिवर्तितव होता है। जब इस तरह के कई पिवोट्स एक के बाद एक होते हैं, तो कोई सुधार नहीं होता है; बड़े औद्योगिक अनुप्रयोगों में अध: पतन आम है और इस तरह के "स्टालिंग" उल्लेखनीय है। रुकने से भी बदतर यह संभावना है कि मूल चर का एक ही सेट दो बार होता है, इस स्थिति में, सिंप्लेक्स एल्गोरिथ्म के नियतात्मक धुरी नियम एक अनंत लूप, या "चक्र" उत्पन्न करेंगे। जबकि अध: पतन व्यवहार में नियम है और स्टाल लगाना आम है, साइकिल चलाना व्यवहार में दुर्लभ है। पैडबर्ग में व्यावहारिक साइकिल चालन के उदाहरण की चर्चा होती है।[24] ब्लैंड का नियम साइकिल चलाने से रोकता है और इस प्रकार यह गारंटी देता है कि सिम्पलेक्स कलनविधि सदैव समाप्त हो जाता है।[24][29][30] एक और पिवोटिंग कलनविधि, क्रिस-क्रॉस कलनविधि कभी भी रैखिक प्रोग्राम पर साइकिल नहीं चलाता है।[31]

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

सबसे खराब स्थिति में दक्षता

सिम्प्लेक्स विधि व्यवहार में उल्लेखनीय रूप से कुशल है और फूरियर-मोट्ज़किन उन्मूलन जैसे पहले के तरीकों पर एक बड़ा सुधार था। हालांकि, 1972 में, क्ले और मिन्टी[32] ने क्ले-मिन्टी क्यूब का एक उदाहरण दिया, जिसमें दिखाया गया कि डेंटज़िग द्वारा तैयार की गई सिम्पलेक्स विधि की सबसे खराब स्थिति जटिलता घातीय समय है। तब से, विधि पर लगभग हर परिवर्तितव के लिए, यह दिखाया गया है कि रैखिक फलनों का एक परिवार है जिसके लिए यह खराब प्रदर्शन करता है। यह एक खुला प्रश्न है कि क्या बहुपद समय के साथ कोई भिन्नता है, हालांकि उप-घातीय धुरी नियम ज्ञात हैं।[33]

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

व्यवहार में दक्षता

अवलोकन का विश्लेषण और मात्रा निर्धारित करना कि सिम्प्लेक्स एल्गोरिदम अभ्यास में कुशल है, इसकी घातीय सबसे खराब स्थिति जटिलता के बावजूद जटिलता के अन्य उपायों का विकास हुआ है। सिम्पलेक्स कलनविधि में विभिन्न संभाव्यता वितरणों के तहत बहुपद-समय औसत-केस जटिलता है, सिंप्लेक्स कलनविधि के यथार्थ औसत-केस प्रदर्शन के साथ यादृच्छिक आव्यूह के लिए संभाव्यता वितरण के विकल्प पर निर्भर करता है।[37][38] "विशिष्ट घटना" का अध्ययन करने के लिए एक अन्य दृष्टिकोण सामान्य टोपोलॉजी से बायर श्रेणी के सिद्धांत का उपयोग करता है, और यह दिखाने के लिए कि (सांख्यिकीय रूप से) "अधिकांश" मैट्रिसेस को बहुपद चरणों की संख्या में सिम्पलेक्स एल्गोरिथ्म द्वारा हल किया जा सकता है।[citation needed]

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

अन्य एल्गोरिदम

रैखिक-प्रोग्रामिंग समस्याओं को हल करने के लिए अन्य एल्गोरिदम रैखिक-प्रोग्रामिंग आलेख में वर्णित हैं। एक अन्य बेसिस-एक्सचेंज पिवोटिंग कलनविधि क्रिस-क्रॉस कलनविधि है।[41][42] रेखीय प्रोग्रामिंग के लिए बहुपद-काल एल्गोरिदम हैं जो आंतरिक बिंदु विधियों का उपयोग करते हैं: इनमें खाचियान का दीर्घवृत्तीय एल्गोरिथ्म, कर्मकार का प्रक्षेपी एल्गोरिथ्म और पथ-अनुवर्ती एल्गोरिदम सम्मिलित हैं।[15]

रैखिक-भिन्नात्मक प्रोग्रामिंग

रैखिक-भिन्नात्मक प्रोग्रामिंग (एलएफपी) रैखिक प्रोग्रामिंग (एलपी) का सामान्यीकरण है। एलपी में ऑब्जेक्टिव फंक्शन एक रैखिक फंक्शन है, जबकि रैखिक-फ्रैक्शनल प्रोग्राम का ऑब्जेक्टिव फंक्शन दो रैखिक फंक्शन्स का अनुपात है। दूसरे शब्दों में, एक रेखीय फलन एक आंशिक-रैखिक फलन है जिसमें भाजक एक स्थिर कार्य है जिसका मान हर जगह एक है। एक रेखीय-भिन्नात्मक फलन को सिम्प्लेक्स कलनविधि[43][44][45][46] या क्रिस-क्रॉस एल्गोरिदम के एक संस्करण द्वारा हल किया जा सकता है।[47]

यह भी देखें

  • क्रिस-क्रॉस एल्गोरिथम
  • कटिंग-प्लेन विधि
  • डेवेक्स एल्गोरिथम
  • फूरियर-मोट्ज़किन उन्मूलन
  • ढतला हुआ वंश
  • कर्मकार का एल्गोरिदम
  • नेल्डर-मीड पद्धति | नेल्डर-मीड सरल अनुमानी
  • ब्लैंड का नियम, जो साइकिल चलाने से परहेज करता है

टिप्पणियाँ

  1. Murty, Katta G. रैखिक प्रोग्रामिंग. John Wiley & Sons Inc.1, 2000.
  2. Murty (1983, Comment 2.2)
  3. Murty (1983, Note 3.9)
  4. Stone, Richard E.; Tovey, Craig A. (1991). "सिम्प्लेक्स और प्रोजेक्टिव स्केलिंग एल्गोरिदम को पुनरावृत्त रूप से कम से कम वर्ग विधियों के रूप में पुन: भारित किया जाता है". SIAM Review. 33 (2): 220–237. doi:10.1137/1033049. JSTOR 2031142. MR 1124362.
  5. Stone, Richard E.; Tovey, Craig A. (1991). "इरेटम: सिम्पलेक्स और प्रोजेक्टिव स्केलिंग एल्गोरिथम पुनरावृत्त रूप से कम से कम वर्गों के तरीकों को फिर से भारित करता है". SIAM Review. 33 (3): 461. doi:10.1137/1033100. JSTOR 2031443. MR 1124362.
  6. Strang, Gilbert (1 June 1987). "कर्मकार का एल्गोरिथम और अनुप्रयुक्त गणित में इसका स्थान". The Mathematical Intelligencer. 9 (2): 4–10. doi:10.1007/BF03025891. ISSN 0343-6993. MR 0883185. S2CID 123541868.
  7. Dantzig, George B. (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.
  8. Albers and Reid (1986). "जॉर्ज बी. डेंट्ज़िग के साथ एक साक्षात्कार: रैखिक प्रोग्रामिंग के जनक". College Mathematics Journal. 17 (4): 292–314. doi:10.1080/07468342.1986.11972971.
  9. Dantzig, George (May 1987). Nash, Stephen G. (ed.). सिंप्लेक्स विधि की उत्पत्ति (PDF). pp. 141–151. doi:10.1145/87252.88081. ISBN 978-0-201-50814-7. Archived (PDF) from the original on May 29, 2015. {{cite encyclopedia}}: |work= ignored (help)
  10. Murty (1983, Theorem 3.3)
  11. Murty (1983, p. 143, Section 3.13)
  12. 12.0 12.1 Murty (1983, p. 137, Section 3.8)
  13. 13.0 13.1 13.2 George B. Dantzig and Mukund N. Thapa. 1997. Linear programming 1: Introduction. Springer-Verlag.
  14. 14.0 14.1 14.2 14.3 Evar D. Nering and Albert W. Tucker, 1993, Linear Programs and Related Problems, Academic Press. (elementary)
  15. 15.0 15.1 Robert J. Vanderbei, Linear Programming: Foundations and Extensions, 3rd ed., International Series in Operations Research & Management Science, Vol. 114, Springer Verlag, 2008. ISBN 978-0-387-74387-5.
  16. Murty (1983, Section 2.2)
  17. Murty (1983, p. 173)
  18. Murty (1983, section 2.3.2)
  19. Murty (1983, section 3.12)
  20. 20.0 20.1 Murty (1983, p. 66)
  21. Harris, Paula MJ. "Pivot selection methods of the Devex LP code." Mathematical programming 5.1 (1973): 1–28
  22. Murty (1983, p. 67)
  23. Murty (1983, p. 60)
  24. 24.0 24.1 24.2 24.3 M. Padberg, Linear Optimization and Extensions, Second Edition, Springer-Verlag, 1999.
  25. 25.0 25.1 George B. Dantzig and Mukund N. Thapa. 2003. Linear Programming 2: Theory and Extensions. Springer-Verlag.
  26. Dmitris Alevras and Manfred W. Padberg, Linear Optimization and Extensions: Problems and Extensions, Universitext, Springer-Verlag, 2001. (Problems from Padberg with solutions.)
  27. Maros, István; Mitra, Gautam (1996). "Simplex algorithms". In J. E. Beasley (ed.). रैखिक और पूर्णांक प्रोग्रामिंग में प्रगति. Oxford Science. pp. 1–46. MR 1438309.
  28. Maros, István (2003). सिंप्लेक्स विधि की कम्प्यूटेशनल तकनीक. International Series in Operations Research & Management Science. Vol. 61. Boston, MA: Kluwer Academic Publishers. pp. xx+325. ISBN 978-1-4020-7332-8. MR 1960274.
  29. Bland, Robert G. (May 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. MR 0459599. S2CID 18493293.
  30. Murty (1983, p. 79)
  31. There are abstract optimization problems, called oriented matroid programs, on which Bland's rule cycles (incorrectly) while the criss-cross algorithm terminates correctly.
  32. Klee, Victor; Minty, George J. (1972). "How good is the simplex algorithm?". In Shisha, Oved (ed.). असमानताओं III (कैलिफोर्निया विश्वविद्यालय, लॉस एंजिल्स, कैलिफ़ोर्निया में आयोजित असमानताओं पर तीसरे संगोष्ठी की कार्यवाही, 1-9 सितंबर, 1969, थियोडोर एस। मोट्ज़किन की स्मृति को समर्पित). New York-London: Academic Press. pp. 159–175. MR 0332165.
  33. Hansen, Thomas; Zwick, Uri (2015), "An Improved Version of the Random-Facet Pivoting Rule for the Simplex Algorithm", Proceedings of the Forty-Seventh Annual ACM Symposium on Theory of Computing: 209–218, CiteSeerX 10.1.1.697.2526, doi:10.1145/2746539.2746557, ISBN 9781450335362, S2CID 1980659
  34. Disser, Yann; Skutella, Martin (2018-11-01). "सिम्प्लेक्स एल्गोरिथम एनपी-माइटी है". ACM Trans. Algorithms. 15 (1): 5:1–5:19. arXiv:1311.5935. doi:10.1145/3280847. ISSN 1549-6325. S2CID 54445546.
  35. Adler, Ilan; Christos, Papadimitriou; Rubinstein, Aviad (2014), "On Simplex Pivoting Rules and Complexity Theory", International Conference on Integer Programming and Combinatorial Optimization, Lecture Notes in Computer Science, 17: 13–24, arXiv:1404.3320, doi:10.1007/978-3-319-07557-0_2, ISBN 978-3-319-07556-3, S2CID 891022
  36. Fearnly, John; Savani, Rahul (2015), "The Complexity of the Simplex Method", Proceedings of the Forty-Seventh Annual ACM Symposium on Theory of Computing: 201–208, arXiv:1404.0605, doi:10.1145/2746539.2746558, ISBN 9781450335362, S2CID 2116116
  37. Alexander Schrijver, Theory of Linear and Integer Programming. John Wiley & sons, 1998, ISBN 0-471-98232-6 (mathematical)
  38. The simplex algorithm takes on average D steps for a cube. Borgwardt (1987): Borgwardt, Karl-Heinz (1987). The simplex method: A probabilistic analysis. Algorithms and Combinatorics (Study and Research Texts). Vol. 1. Berlin: Springer-Verlag. pp. xii+268. ISBN 978-3-540-17096-9. MR 0868467.
  39. Spielman, Daniel; Teng, Shang-Hua (2001). "Smoothed analysis of algorithms: why the simplex algorithm usually takes polynomial time". कम्प्यूटिंग के सिद्धांत पर तीस-तीसरे वार्षिक एसीएम संगोष्ठी की कार्यवाही. ACM. pp. 296–305. arXiv:cs/0111050. doi:10.1145/380752.380813. ISBN 978-1-58113-349-3. S2CID 1471.
  40. Dadush, Daniel; Huiberts, Sophie (2020-01-01). "सिंप्लेक्स विधि का एक अनुकूल चिकना विश्लेषण". SIAM Journal on Computing. 49 (5): STOC18–449. doi:10.1137/18M1197205. ISSN 0097-5397. S2CID 226351624.
  41. Terlaky, Tamás; Zhang, Shu Zhong (1993). "लीनियर प्रोग्रामिंग के लिए धुरी नियम: हाल के सैद्धांतिक विकास पर एक सर्वेक्षण". Annals of Operations Research. 46–47 (1): 203–233. CiteSeerX 10.1.1.36.7658. doi:10.1007/BF02096264. ISSN 0254-5330. MR 1260019. S2CID 6058077.
  42. Fukuda, Komei; Terlaky, Tamás (1997). Thomas M. Liebling; Dominique de Werra (eds.). "क्रिस-क्रॉस विधियाँ: धुरी एल्गोरिदम पर एक नया दृश्य". Mathematical Programming, Series B. Vol. 79, no. 1–3. Amsterdam: North-Holland Publishing. pp. 369–395. doi:10.1007/BF02614325. MR 1464775.
  43. Murty (1983, Chapter 3.20 (pp. 160–164) and pp. 168 and 179)
  44. Chapter five: Craven, B. D. (1988). Fractional programming. Sigma Series in Applied Mathematics. Vol. 4. Berlin: Heldermann Verlag. p. 145. ISBN 978-3-88538-404-5. MR 0949209.
  45. Kruk, Serge; Wolkowicz, Henry (1999). "स्यूडोलिनियर प्रोग्रामिंग". SIAM Review. 41 (4): 795–805. Bibcode:1999SIAMR..41..795K. CiteSeerX 10.1.1.53.7355. doi:10.1137/S0036144598335259. JSTOR 2653207. MR 1723002.
  46. Mathis, Frank H.; Mathis, Lenora Jane (1995). "अस्पताल प्रबंधन के लिए एक गैर-रेखीय प्रोग्रामिंग एल्गोरिदम". SIAM Review. 37 (2): 230–234. doi:10.1137/1037046. JSTOR 2132826. MR 1343214.
  47. Illés, Tibor; Szirmai, Ákos; Terlaky, Tamás (1999). "अतिशयोक्तिपूर्ण प्रोग्रामिंग के लिए परिमित क्रिस-क्रॉस विधि". European Journal of Operational Research. 114 (1): 198–214. CiteSeerX 10.1.1.36.7090. doi:10.1016/S0377-2217(98)00049-6. ISSN 0377-2217.


संदर्भ


अग्रिम पठन

These introductions are written for students of computer science and operations research:


बाहरी संबंध

| group5 = Metaheuristics | abbr5 = heuristic | list5 =

| below =

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

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

}}