प्रतिबंधित अनुकूलन

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

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

सामान्य प्रपत्र
एक सामान्य विवश न्यूनतमकरण समस्या इस प्रकार लिखी जा सकती है:

\begin{array}{rcll} \min &~& f(\mathbf{x}) & \\ \mathrm{subject~to} &~& g_i(\mathbf{x}) = c_i &\text{for } i=1,\ldots,n \quad \text{Equality constraints} \\ &~& h_j(\mathbf{x}) \geq d_j &\text{for } j=1,\ldots,m \quad \text{Inequality constraints} \end{array} $$ जहाँ $$ g_i(\mathbf{x}) = c_i ~\mathrm{for~} i=1,\ldots,n $$ और $$ h_j(\mathbf{x}) \ge d_j ~\mathrm{for~} j=1,\ldots,m $$ ऐसी बाधाएं हैं, जिन्हें संतुष्ट करना आवश्यक होता है, इन्हें बाधा (गणित) के लिए कठोर और सरल बाधाएं कहा जाता है, और $$f(\mathbf{x})$$ वस्तुनिष्ठ कार्य है जिसे बाधाओं के अधीन अनुकूलित करने की आवश्यकता है।

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

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

प्रतिस्थापन विधि
बहुत ही सरल समस्याओं के लिए, मान लें कि एकल समानता बाधा के अधीन दो वैरियेबल का फ़ंक्शन, प्रतिस्थापन की विधि को लागू करना सबसे व्यावहारिक है। इस प्रकार किसी विचार फ़ंक्शन संरचना बनाने के लिए उद्देश्य फ़ंक्शन में बाधा को प्रतिस्थापित करने का है जो बाधा के प्रभाव को सम्मिलित करता है। उदाहरण के लिए, मान लें कि उद्देश्य अधिकतम करना है, जिसके लिए $$f(x,y) = x \cdot y$$ मुख्य रूप से $$x + y = 10$$ का विषय है, यहाँ पर बाधा का तात्पर्य $$y = 10 - x$$ से है, जिसे बनाने के उद्देश्य फ़ंक्शन $$p(x) = x (10 - x) = 10x - x^{2}$$में प्रतिस्थापित किया जा सकता है, इसका प्रथम-क्रम $$\frac{\partial p}{\partial x} = 10 - 2x = 0$$ के लिए आवश्यक शर्त देता है, जिसका समाधान $$x=5$$ और इसके परिणामस्वरूप, $$y = 10 - 5 = 5$$ द्वारा किया जा सकता है।

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

असमानता बाधाएं
असमानता की बाधाओं के साथ, समस्या को ज्यामितीय इष्टतमता स्थितियों, फ्रिट्ज़ जॉन स्थितियों और करुश-कुह्न-टकर स्थितियों के संदर्भ में वर्णित किया जा सकता है, जिसके अनुसार सरल समस्याएं हल हो सकती हैं।

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

अरेखीय प्रोग्रामिंग
यदि उद्देश्य फ़ंक्शन या कुछ बाधाएँ अरेखीय हैं, और कुछ बाधाएँ असमानताएँ हैं, तो समस्या अरेखीय प्रोग्रामिंग समस्या है।

द्विघात प्रोग्रामिंग
यदि सभी कठिन बाधाएं रैखिक हैं और कुछ असमानताएं हैं, अपितु यह उद्देश्य फ़ंक्शन द्विघात है, जो समस्या द्विघात प्रोग्रामिंग समस्या के रूप से जाना जाता है। यह इस प्रकार की नॉनलाइनियर प्रोग्रामिंग है। यदि उद्देश्य फलन उत्तल फलन है तो इसे अभी भी दीर्घवृत्त विधि द्वारा बहुपद समय में हल किया जा सकता है, अन्यथा इस समस्या एनपी कठिन हो सकती है।

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

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

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

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

इस दृष्टिकोण का रूपांतर जिसे हेन्सन विधि कहा जाता है, इसके अतिरिक्त यहाँ पर अंतराल अंकगणित इतिहास का उपयोग करता है। यह स्वाभाविक रूप से आयताकार बाधाओं को लागू करता है।

पहली पसंद बाउंडिंग फ़ंक्शन
आंशिक समाधान के लिए इस ऊपरी सीमा का मूल्यांकन करने का तरीका प्रत्येक सरल बाधा पर अलग से विचार करना है। प्रत्येक सरल बाधा के लिए, अनअसाइन्ड वेरिएबल्स के किसी भी असाइनमेंट के लिए अधिकतम संभव मान माना जाता है। इन मूल्यों का योग ऊपरी सीमा है क्योंकि सरल बाधाएं उच्च मूल्य नहीं मान सकती हैं। यह सटीक है क्योंकि सरल बाधाओं के अधिकतम मूल्य विभिन्न मूल्यांकनों से प्राप्त हो सकते हैं: सरल बाधा अधिकतम $$x=a$$ तक हो सकती है, जबकि अन्य बाधा अधिकतम $$x=b$$ तक हो सकती है।

रूसी डाॅल की खोज
यह विधि ब्रांच-एंड-बाउंड एल्गोरिदम $$n$$ समस्याएं चलाता है, जहाँ $$n$$ वैरियेबल्स की संख्या है, ऐसी प्रत्येक समस्या वैरियेबल्स के अनुक्रम को छोड़ने से प्राप्त उपसमस्या $$x_1,\ldots,x_i$$ है, यहाँ पर इस प्रकार की मूल समस्या से, साथ ही उनमें उपस्थित बाधाओं से किया जाता हैं। इस प्रकार वैरियेबल पर समस्या के पश्चात $$x_{i+1},\ldots,x_n$$ के हल हो जाने पर, इसकी इष्टतम लागत को अन्य समस्याओं को हल करते समय ऊपरी सीमा के रूप में उपयोग किया जा सकता है,

विशेष रूप से, किसी समाधान की लागत का अनुमान $$x_{i+1},\ldots,x_n$$ हैं, चूंकि असाइन किए गए वैरियेबल को उस लागत में जोड़ा जाता है जो मूल्यांकन किए गए वैरियेबल से प्राप्त होती है। वस्तुतः यह मूल्यांकन किए गए वैरियेबल्स को अनदेखा करने और असाइन न किए गए वैरियेबल्स पर समस्या को हल करने के अनुरूप है, इसके अतिरिक्त बाद वाली समस्याएं पहले ही हल हो चुकी है। इसका अधिक सटीक रूप से, असाइन किए गए और अनअसाइन किए गए दोनों वैरियेबल वाले सरल बाधाओं की लागत का अनुमान या मनमाने ढंग से अन्य विधि का उपयोग करके ऊपर दिया गया है, इसके अतिरिक्त केवल अनिर्धारित वैरियेबल वाले सरल बाधाओं की लागत का अनुमान संबंधित समस्या के इष्टतम समाधान का उपयोग करके लगाया जाता है, जो इस बिंदु पर पहले से ही ज्ञात है।

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

बकेट उन्मूलन
बकेट एलिमिनेशन एल्गोरिदम को बाधा अनुकूलन के लिए अनुकूलित किया जा सकता है। किसी दिए गए वेरिएबल को वास्तव में सभी सरल बाधाओं को नए सरल बाधा के साथ प्रतिस्थापित करके समस्या से हटाया जा सकता है। इस नई बाधा की लागत की गणना हटाए गए वैरियेबल के प्रत्येक मान के लिए अधिकतम मान मानकर की जाती है। इस प्रकार औपचारिक रूप से, यदि $$x$$ क्या वेरिएबल को हटाया जाना है, यहाँ पर $$C_1,\ldots,C_n$$ में सम्मिलित सरल बाधाएं हैं, और $$y_1,\ldots,y_m$$ के अतिरिक्त उनके वैरियेबल $$x$$ हैं, इस प्रकार की नई सरल बाधाओं द्वारा इन्हें परिभाषित किया गया है:
 * $$C(y_1=a_1,\ldots,y_n=a_n) = \max_a \sum_i C_i(x=a,y_1=a_1,\ldots,y_n=a_n).$$

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

यह भी देखें

 * सीमित न्यूनतम वर्ग
 * वितरित बाधा अनुकूलन
 * बाधा संतुष्टि समस्या (सीएसपी)
 * बाधा प्रोग्रामिंग
 * पूर्णांक प्रोग्रामिंग
 * पेनैल्टी विधि
 * श्रेष्ठीकरण