मैंने कुछ टिप्पणियों के आधार पर अपने उत्तर को मौलिक रूप से संपादित करने का निर्णय लिया।
मैंने TAO का उपयोग नहीं किया है। दस्तावेज़ीकरण से इनकार करने से, यह एकमात्र तरीका लगता है कि TAO विवश अनुकूलन समस्याओं को संभाल सकता है (केवल बॉक्स बाधाओं के विशेष मामले को छोड़कर) करुश-कुह्न-टीज़र (KKT) स्थितियों का उपयोग करके समस्या को एक वैचारिक असमानता में परिवर्तित करना है , जो बाधा योग्यता के तहत आवश्यक हैं (जो प्रकार मैं आमतौर पर स्लेटर बिंदु स्थिति है ), और उद्देश्य और बाधाओं के उत्तलता के तहत पर्याप्त है (अधिक सामान्यतः, टाइप 1 invexity)। अगरfगैर-रूपांतरण है, केकेटी की स्थितियों का उपयोग करते हुए परिवर्तनीय असमानता सूत्रीकरण मूल अनुकूलन समस्या के समतुल्य नहीं है, इसलिए कड़ाई से बोलते हुए, यदि आप अनुकूलन समस्या के लिए वैश्विक अनुकूलता चाहते हैं, तो आपको इसे वैचारिक असमानता के रूप में व्यक्त नहीं करना चाहिए। पीडीई-विवश अनुकूलन (नीचे देखें) के लिए वैसे भी एक वैश्विक इष्टतम खोजना मुश्किल होगा, इसलिए शायद इस विवरण को अनदेखा करना ठीक है। वोल्फगैंग ने जो कहा है, उसे देखते हुए, मैं TAO का उपयोग करने पर संदेह करूंगा; मैं पहले से ही संदेह कर रहा हूं क्योंकि यह नॉनप्लियर प्रोग्राम (एनएलपी) को एनएलपी के रूप में हल करने के तरीकों को लागू नहीं करता है, न कि परिवर्तनीय असमानताओं के बजाय।
मैं पीडीई-विवश अनुकूलन पर विशेषज्ञ नहीं हूं; ODE- विवश अनुकूलन समस्याओं पर खदान के सहकर्मी और सहयोगी काम करते हैं। मुझे पता है कि घुसपैठ के योगों के लिए, लैरी बेएग्लर (और अन्य) पीडीई को विवेकाधीन करने के लिए महाधमनी विधियों का उपयोग करेंगे और इसे एक बहुत बड़ा, विरल एनएलपी बनाएंगे, और फिर वह आंतरिक बिंदु विधियों का उपयोग करके इसे हल करेंगे। समस्या को वास्तव में वैश्विक अनुकूलता के लिए हल करने के लिए, आपको उत्तल विश्राम भी उत्पन्न करने की आवश्यकता होगी, लेकिन जहाँ तक मुझे पता है, यह दृष्टिकोण नहीं लिया गया है क्योंकि PDE- विवश अनुकूलन अनुकूलन समस्याओं से ऐसे बड़े एनएलपी होते हैं जो उन्हें हल करना मुश्किल होगा। वैश्विक अनुकूलता। मैं इन विवरणों का उल्लेख केवल इसलिए करता हूं क्योंकि समस्या निर्माण, सॉल्वर पैकेज की पसंद को बहुत प्रभावित करता है। गैर-लाभकारी योगों के लिए, बार-बार PDE अनुकूलन एल्गोरिदम के लिए ढाल जानकारी देता है।
कुछ लोग जो ODE- विवश अनुकूलन समस्याओं का अध्ययन करते हैं, वे समतलीकरण और एक संख्यात्मक पद्धति का उपयोग करके समस्या का विवेक करने के एक समान दृष्टिकोण का उपयोग करते हैं, और फिर परिणामी NLP को आराम देकर एक वैश्विक अनुकूलन एल्गोरिथ्म में प्रयुक्त उत्तल सूत्रीकरण प्राप्त करते हैं। ODE- विवश अनुकूलन के लिए एक वैकल्पिक दृष्टिकोण समस्या को शांत करना है, और फिर ODE को विवेकाधीन करना है, जो कि मेरी प्रयोगशाला में लिया गया दृष्टिकोण है। पीडीई-विवश अनुकूलन अनुकूलन समस्याओं के कुछ वर्गों को आराम करना संभव हो सकता है, लेकिन मुझे उस समस्या पर किए गए किसी भी मौजूदा काम का पता नहीं है। (यह एक बिंदु पर मेरी प्रयोगशाला में एक संभावित परियोजना थी।)
अंतत: क्या मायने रखता है, मूल पीडीई की भिन्नता नहीं है, लेकिन निर्णय चर के संबंध में विवेक की भिन्नता है।
यदि निर्णय की गई चर के संबंध में विवेकाधीन समस्या दो-भिन्न है, तो निम्न पैकेज एक स्थानीय समाधान की गणना करेंगे:
- IPOPT एक खुला स्रोत इंटीरियर पॉइंट सॉल्वर है जिसे IBM पर Andreas Wächter द्वारा विकसित किया गया है। यह एक बहुत ही उच्च गुणवत्ता वाला कोड है। इंटीरियर-पॉइंट सॉल्वर के रूप में, यह बड़े, विरल जैकबियन मेट्रिक्स के साथ उद्देश्य कार्यों के लिए बेहतर है, और पीडीई-विवश अनुकूलन के लिए उपयोगी होगा।
- SNOPT एक व्यावसायिक अनुक्रमिक द्विघात प्रोग्रामिंग सॉल्वर है जो एक और उच्च गुणवत्ता वाला कोड है। यह छोटे, घने जेकबेरियन मेट्रिक्स के साथ उद्देश्य कार्यों के लिए बेहतर है, इसलिए मुझे उम्मीद नहीं होगी कि यह पीडीई-विवश अनुकूलन के लिए उपयोगी होगा, लेकिन आप इसे आजमा सकते हैं।
- NLopt , MIT में स्टीवन जॉनसन द्वारा लिखा गया एक छोटा, खुला स्रोत कोड है जिसमें कई नॉनलाइनियर ऑप्टिमाइज़ेशन एल्गोरिदम के बुनियादी कार्यान्वयन शामिल हैं। सभी एल्गोरिदम को बाध्य-बाध्य समस्याओं को हल करने के लिए पर्याप्त होना चाहिए।
fmincon
मैटलैब में नॉनलाइनियर ऑप्टिमाइज़ेशन के लिए कई एल्गोरिदम (आंतरिक बिंदु और अनुक्रमिक द्विघात प्रोग्रामिंग सहित) लागू होते हैं
- GAMS और AMPL दोनों व्यावसायिक मॉडलिंग भाषाएं हैं, जिनका उपयोग अनुकूलन समस्याओं को तैयार करने के लिए किया जाता है, और इनमें बड़ी संख्या में नॉनलाइनियर प्रोग्रामिंग पॉवर्स के इंटरफेस होते हैं। मुझे पता है कि GAMS का एक परीक्षण संस्करण है जिसका उपयोग छोटी समस्याओं के लिए किया जा सकता है, और समस्या के उदाहरणों को समाधान के लिए NEOS सर्वर पर भी प्रस्तुत किया जा सकता है ।
हालाँकि, यह संभव है कि निर्णय चर के संबंध में विवेकाधिकार केवल एक बार भिन्न हो, इस मामले में, आपको स्थानीय समाधान की गणना करते समय अनुमानित स्टेपेस्ट वंश या कुछ अन्य प्रथम-क्रम अनुकूलन पद्धति का उपयोग करना चाहिए। चूंकि बहुत सारे अध्ययन उन समस्याओं पर ध्यान केंद्रित करते हैं जहां दूसरे क्रम के तरीकों का उपयोग किया जा सकता है (और जब आप उनका उपयोग कर सकते हैं, तो उनके बेहतर अभिसरण गुण उन्हें एक बेहतर विकल्प बनाते हैं), मैं उन सबसे योग्य वंशों के कई कार्यान्वयन नहीं पा सका जो समाधान नहीं थे होमवर्क समस्याओं के लिए। जीएनयू वैज्ञानिक पुस्तकालय एक कार्यान्वयन है, लेकिन यह प्रदर्शन के उद्देश्य से ही है। आपको शायद अपने स्वयं के कार्यान्वयन को कोड करने की आवश्यकता होगी।
यदि समस्या केवल निर्णय चर के संबंध में निरंतर है, तो आप इसे स्थानीय रूप से हल करने के लिए प्रत्यक्ष तरीकों का उपयोग कर सकते हैं। कोल्डा, लुईस, और टॉरकोन द्वारा सीधे तरीकों पर एक उत्कृष्ट सर्वेक्षण है । इन तरीकों में सबसे व्यापक रूप से जाना जाता है, नेल्डर-मीड सिम्पलेक्स एल्गोरिथ्म । यह कई आयामों में स्थानीय न्यूनतम में कनवर्ट करने की गारंटी नहीं है, लेकिन इसे वैसे भी काफी व्यावहारिक उपयोग मिला है।
पैकेज की पसंद वास्तव में उस भाषा पर निर्भर करती है जिसे आप समस्या को हल करने के लिए उपयोग करना चाहते हैं, यदि बाध्य-बाध्य समस्या को हल करना एक एल्गोरिदम का केवल एक हिस्सा है जिसे आप लागू करना चाहते हैं (या यदि यह आपके एल्गोरिथ्म में एकमात्र कदम है, तो इस मामले में मॉडलिंग भाषाओं उत्पादन कोड के लिए अधिक व्यवहार्य हो जाता है), समस्या का प्रकार और आकार, और यदि आपको किसी समानता की आवश्यकता है।