द्विघात प्रोग्रामिंग
द्विघात प्रोग्रामिंग (क्यूपी) द्विघात फंक्शन से जुड़े कुछ गणितीय अनुकूलन समस्याओं को हल करने की प्रक्रिया है। विशेष रूप से, एक चर पर रैखिक विवश अनुकूलन के अधीन एक बहुभिन्नरूपी द्विघात फ़ंक्शन को अनुकूलित (न्यूनतम या अधिकतम) करना चाहता है। द्विघात प्रोग्रामिंग एक प्रकार की अरैखिक प्रोग्रामिंग है।
इस संदर्भ में प्रोग्रामिंग गणितीय समस्याओं को हल करने के लिए औपचारिक प्रक्रिया को संदर्भित करता है। यह उपयोग 1940 के दशक का है और विशेष रूप से कंप्यूटर प्रोग्रामिंग की हालिया धारणा से जुड़ा नहीं है। भ्रम से बचने के लिए, कुछ व्यवसायी अनुकूलन शब्द पसंद करते हैं - उदाहरण के लिए, द्विघात अनुकूलन।[1]
समस्या निर्माण
के साथ द्विघात प्रोग्रामिंग समस्या n चर और m बाधाओं को निम्नानुसार तैयार किया जा सकता है।[2]
दिया गया:
- एक वास्तविक संख्या-मूल्यवान, n-आयामी वेक्टर c,
- एक n×n-आयामी वास्तविक सममित मैट्रिक्स Q,
- एक m×nआयामी वास्तविक मैट्रिक्स (गणित) A, और
- एक m-आयामी असली वेक्टर b,
द्विघात प्रोग्रामिंग का उद्देश्य एक खोजना है n-आयामी वेक्टर x, वो होगा
न्यूनतम विषय को
कहाँ xT के वेक्टर स्थानान्तरण को दर्शाता है x, और अंकन Ax ⪯ b इसका अर्थ है कि वेक्टर की हर प्रविष्टि Ax सदिश की संबंधित प्रविष्टि से कम या उसके बराबर है b (घटक-वार असमानता)।
कम से कम वर्ग
एक विशेष स्थिति के रूप में जब क्यू सकारात्मक निश्चित मैट्रिक्स | सममित सकारात्मक-निश्चित है, तो लागत फ़ंक्शन कम से कम वर्गों में घट जाती है:
न्यूनतम विषय को
कहाँ Q = RTR के चोल्स्की अपघटन से अनुसरण करता है Q और c = −RT d. इसके विपरीत, इस प्रकार के किसी भी कम से कम वर्ग कार्यक्रम को सामान्य गैर-स्क्वायर के लिए भी क्यूपी के रूप में समान रूप से तैयार किया जा सकता है R आव्यूह।
सामान्यीकरण
किसी फ़ंक्शन को कम करते समय f किसी संदर्भ बिंदु के पड़ोस में x0, Q इसके हेसियन मैट्रिक्स पर सेट है H(f(x0)) और c इसकी ग्रेडियेंट पर सेट है ∇f(x0). एक संबंधित प्रोग्रामिंग समस्या, द्विघात रूप से विवश द्विघात प्रोग्रामिंग, चर पर द्विघात बाधाओं को जोड़कर उत्पन्न की जा सकती है।
समाधान के तरीके
सामान्य समस्याओं के लिए विभिन्न तरीकों का सामान्यतः उपयोग किया जाता है, जिनमें सम्मलित हैं
- * आंतरिक बिंदु विधि,
- * सक्रिय सेट,[3]
- *संवर्धित लाग्रंगियन विधि,[4]
- * संयुग्मी ढाल विधि,
- ग्रेडिएंट प्रोजेक्शन विधि,
- * सिंप्लेक्स एल्गोरिदम का विस्तार।[3]
जिस स्थिति में Q सकारात्मक निश्चित मैट्रिक्स है, समस्या उत्तल अनुकूलन के अधिक सामान्य क्षेत्र का एक विशेष स्थिति है।
समानता की कमी
द्विघात प्रोग्रामिंग विशेष रूप से सरल होती है जब Q सकारात्मक निश्चित मैट्रिक्स है और एकमात्र समानता की बाधाएं हैं; विशेष रूप से, समाधान प्रक्रिया रैखिक है। Lagrange गुणकों का उपयोग करके और लाग्रंगियन के चरम की तलाश करके, यह आसानी से दिखाया जा सकता है कि समानता की समस्या का समाधान
रैखिक प्रणाली के माध्यम से दिया गया है
कहाँ λ लैग्रेंज मल्टीप्लायरों का एक सेट है जो साथ में समाधान से निकलता है x.
इस प्रणाली तक पहुँचने का सबसे आसान साधन प्रत्यक्ष समाधान है (उदाहरण के लिए, LU गुणन), जो छोटी समस्याओं के लिए बहुत ही व्यावहारिक है। बड़ी समस्याओं के लिए, प्रणाली कुछ असामान्य कठिनाइयाँ उत्पन्न करती है, विशेष रूप से यह कि समस्या कभी भी सकारात्मक निश्चित नहीं होती है (के होने पर भी Q is), एक अच्छा संख्यात्मक दृष्टिकोण खोजने के लिए इसे संभावित रूप से बहुत कठिन बना देता है, और समस्या पर निर्भर रहने के लिए कई दृष्टिकोण हैं।[5]
यदि बाधाएँ चरों को बहुत कसकर नहीं जोड़ती हैं, तो चरों को बदलने के लिए एक अपेक्षाकृत सरल हमला है जिससे बाधाएँ बिना शर्त संतुष्ट हों। उदाहरण के लिए मान लीजिए d = 0 (अशून्य के लिए सामान्यीकरण सीधा है)। बाधा समीकरणों को देखते हुए:
एक नया चर प्रस्तुत करें y के माध्यम से परिभाषित
कहाँ y का आयाम है x बाधाओं की संख्या घटाएं। तब
और यदि Z इसलिए चुना जाता है EZ = 0 बाधा समीकरण हमेशा संतुष्ट रहेगा। ऐसे खोज रहे हैं Z की शून्य जगह खोजने पर जोर देता है E, जो की संरचना के आधार पर कमोबेश सरल है E. द्विघात रूप में प्रतिस्थापन एक अप्रतिबंधित न्यूनीकरण समस्या देता है:
जिसका समाधान इसके के माध्यम से दिया गया है:
कुछ शर्तों के अनुसार Q, कम मैट्रिक्स ZTQZ सकारात्मक निश्चित रहेगा। संयुग्मी प्रवणता पद्धति पर भिन्नता लिखना संभव है जो की स्पष्ट गणना से बचा जाता है Z.[6]
लग्रंगियन द्वैत
किसी क्यूपी की लाग्रंगियन दोहरी समस्या भी एक क्यूपी है। इसे देखने के लिए आइए हम उस स्थिति पर ध्यान दें जहां c = 0 और Q सकारात्मक निश्चित है। लैग्रेंज गुणक फलन को हम इस प्रकार लिखते हैं
(लाग्रंगियन) दोहरे कार्य को परिभाषित करना g(λ) जैसा , हम का एक इंफिनियम पाते हैं L, का उपयोग कर और सकारात्मक-निश्चितता Q:
इसलिए दोहरा कार्य है
और इसलिए क्यूपी का लाग्रंगियन दोहरा है
लाग्रंगियन द्वैत सिद्धांत के अतिरिक्त, अन्य द्वैत युग्म हैं (जैसे वोल्फ द्वैत, आदि)।
जटिलता
सकारात्मक-निश्चित मैट्रिक्स के लिए Qदीर्घवृत्ताभ विधि (कमजोर) बहुपद समय में समस्या को हल करती है।[7] यदि, दूसरी ओर, Q अनिश्चित है, तो समस्या एनपी कठिन है।[8] इन गैर-उत्तल समस्याओं के लिए कई स्थिर बिंदु और स्थानीय न्यूनतम हो सकते हैं। वास्तव में, होने पर भी Q एकमात्र एक नकारात्मक इगेनवलुए है, समस्या (दृढ़ता से) एनपी-हार्ड है।[9]
पूर्णांक बाधाएँ
कुछ स्थितियाँ ऐसी होती हैं जहाँ सदिश के एक या अधिक अवयव होते हैं x पूर्णांक मान लेने की आवश्यकता होगी। इससे मिश्रित-पूर्णांक द्विघात प्रोग्रामिंग (एमआईक्यूपी) समस्या का निर्माण होता है।[10] एमआईक्यूपी के अनुप्रयोगों में जल संसाधन सम्मलित हैं[11] और ट्रैकिंग त्रुटि इंडेक्स फंड निर्माण।[12]
सॉल्वर और स्क्रिप्टिंग (प्रोग्रामिंग) भाषाएं
नाम | संक्षिप्त जानकारी |
---|---|
एआईएमएमएस | अनुकूलन और शेड्यूलिंग-प्रकार की समस्याओं को मॉडलिंग और हल करने के लिए एक सॉफ्टवेयर सिस्टम |
एएलजीएलआईबी | डुअल लाइसेंस (जीपीएल/मालिकाना) न्यूमेरिकल लाइब्रेरी (सी++, .नेट)। |
एएमपीएल | बड़े पैमाने पर गणितीय अनुकूलन के लिए एक लोकप्रिय मॉडलिंग भाषा। |
एपीमॉनिटर | मॉडलिंग और अनुकूलन सुइट के लिए एल.पी., क्यूपी, एनएलपी, मिलप, मिनएलपी, औरडीएई मैटलैब और पायथन में सिस्टम। |
आर्टिलिस नाइट्रो | अरेखीय अनुकूलन के लिए एक एकीकृत पैकेज |
सीजीएएल | एक खुला स्रोत कम्प्यूटेशनल ज्यामिति पैकेज जिसमें द्विघात प्रोग्रामिंग सॉल्वर सम्मलित है। |
सीप्लेक्स | एक एपीआई (सी, सी ++, जावा, .नेट, पायथन, मैटलैब और आर) के साथ लोकप्रिय सॉल्वर। शिक्षाविदों के लिए नि: शुल्क। |
एक्सेल सॉल्वर फ़ंक्शन | स्प्रैडशीट्स के लिए समायोजित एक अरैखिक सॉल्वर जिसमें फ़ंक्शन मूल्यांकन पुनर्गणना कोशिकाओं पर आधारित होते हैं। मूल संस्करण एक्सेल के लिए एक मानक ऐड-ऑन के रूप में उपलब्ध है। |
जीएएमएस | गणितीय अनुकूलन के लिए एक उच्च स्तरीय मॉडलिंग प्रणाली |
जीएनयू ऑक्टेव | एक नि: शुल्क (इसका लाइसेंस है GPLv3) संख्यात्मक कंप्यूटिंग के लिए सामान्य-उद्देश्य और मैट्रिक्स-उन्मुख प्रोग्रामिंग-भाषा, मैटलैब के समान। जीएनयू ऑक्टेव में क्वाड्रैटिक प्रोग्रामिंग इसके माध्यम से उपलब्ध है क्यूपी कमांड |
हइस | रैखिक प्रोग्रामिंग (एलपी), मिश्रित-पूर्णांक प्रोग्रामिंग (एमआईपी), और उत्तल द्विघात प्रोग्रामिंग (क्यूपी) मॉडल को हल करने के लिए ओपन-सोर्स सॉफ़्टवेयर |
आईएमएसएल | गणितीय और सांख्यिकीय कार्यों का एक सेट जिसे प्रोग्रामर अपने सॉफ्टवेयर अनुप्रयोगों में एम्बेड कर सकते हैं। |
आईपीओपीटी | इपॉप्ट (इंटीरियर पॉइंट ऑप्टिमाइज़र) बड़े पैमाने पर नॉनलाइनियर ऑप्टिमाइज़ेशन के लिए एक सॉफ्टवेयर पैकेज है। |
मेपल | गणित के लिए सामान्य प्रयोजन प्रोग्रामिंग भाषा। मेपल में द्विघात समस्या का समाधान इसके माध्यम से पूरा किया जाता है क्यूपीSolve कमांड. |
मैटलैब | संख्यात्मक कंप्यूटिंग के लिए एक सामान्य-उद्देश्य और मैट्रिक्स-उन्मुख प्रोग्रामिंग-भाषा। मैटलैब में द्विघात प्रोग्रामिंग के लिए बेस मैटलैब उत्पाद के अतिरिक्त ऑप्टिमाइज़ेशन टूलबॉक्स की आवश्यकता होती है |
गणितीय | प्रतीकात्मक और संख्यात्मक क्षमताओं सहित गणित के लिए एक सामान्य-उद्देश्य प्रोग्रामिंग-भाषा। |
मोसेक | कई भाषाओं (सी ++, जावा, .नेट, मैटलैब और पायथन) के लिए एपीआई के साथ बड़े पैमाने पर अनुकूलन के लिए एक सॉल्वर। |
एनएजी न्यूमेरिकल लाइब्रेरी | के माध्यम से विकसित गणितीय और सांख्यिकीय दिनचर्या का एक संग्रहसंख्यात्मक एल्गोरिदम समूह या कई प्रोग्रामिंग लैंग्वेज (सी, सी++, फोरट्रान, विजुअल बेसिक, जावा और सी#) और पैकेज (मैटलैब, एक्सेल, आर, लैबव्यू)। एनएजी लाइब्रेरी के ऑप्टिमाइज़ेशन चैप्टर में विरल और गैर-विरल रेखीय बाधा मैट्रिस दोनों के साथ द्विघात प्रोग्रामिंग समस्याओं के लिए रूटीन सम्मलित हैं, साथ में लीनियर, नॉनलाइनियर के अनुकूलन के लिए रूटीन के साथ, नॉनलाइनियर, बाउंडेड या नो कंस्ट्रेंट्स के साथ लीनियर या नॉनलाइनियर फ़ंक्शंस के वर्गों का योग। . एनएजी लाइब्रेरी में स्थानीय और वैश्विक अनुकूलन दोनों के लिए और निरंतर या पूर्णांक समस्याओं के लिए रूटीन हैं। |
पाइथन | अधिकांश उपलब्ध सॉल्वरों के लिए बाइंडिंग के साथ उच्च-स्तरीय प्रोग्रामिंग भाषा। द्विघात प्रोग्रामिंग के माध्यम से उपलब्ध है हल क्यूपी फ़ंक्शन या किसी विशिष्ट सॉल्वर को सीधे कॉल करके. |
आर (फोरट्रान) | जीपीएल फ़ंक्शन या एक विशिष्ट सॉल्वर को कॉल करके डायरेक्टली यूनिवर्सल क्रॉस-प्लेटफ़ॉर्म सांख्यिकीय संगणना फ्रेमवर्क। एक्टली |
एसएएस / ओआर | लीनियर, इंटीजर, नॉनलाइनियर, डेरिवेटिव-फ्री, नेटवर्क, कॉम्बिनेटोरियल और कंस्ट्रेंट ऑप्टिमाइजेशन के लिए सॉल्वर का एक सूट; बीजगणितीय मॉडलिंग भाषा ऑप्टमॉडल; और विशिष्ट समस्याओं/बाजारों के उद्देश्य से विभिन्न प्रकार के लंबवत समाधान, जिनमें से सभी पूरी प्रकार से एकीकृत हैं एसएएस सिस्टम. |
सुआन्शु | हल करने के लिए ऑप्टिमाइज़ेशन एल्गोरिदम का एक ओपन-सोर्स सूटएल.पी., क्यूपी, एसओसीपी, एसडीपी, एसक्यूपी जावा में |
टीके सॉल्वर | यूनिवर्सल टेक्निकल सिस्टम्स, इंक के माध्यम से व्यावसायिक रूप से घोषित, नियम-आधारित भाषा पर आधारित गणितीय मॉडलिंग और समस्या निवारण सॉफ्टवेयर सिस्टम। |
टॉमलैब | वैश्विक अनुकूलन, पूर्णांक प्रोग्रामिंग, सभी प्रकार के न्यूनतम वर्ग, रैखिक, द्विघात और अप्रतिबंधित प्रोग्रामिंग का समर्थन करता है मैटलैब. टॉमलैब जैसे सॉल्वर का समर्थन करता है सीप्लेक्स, स्नाप्त और नाइट्रो. |
एक्सप्रेस | बड़े पैमाने पर रैखिक कार्यक्रमों, द्विघात कार्यक्रमों, सामान्य गैर-रैखिक और मिश्रित-पूर्णांक कार्यक्रमों के लिए सॉल्वर। कई प्रोग्रामिंग भाषाओं के लिए एपीआई है, एक मॉडलिंग भाषा मोसेल भी है और एएमपीएल के साथ काम करती है, जीएएमएस. अकादमिक उपयोग के लिए नि: शुल्क। |
यह भी देखें
संदर्भ
- ↑ Wright, Stephen J. (2015), "Continuous Optimization (Nonlinear and Linear Programming)", in Nicholas J. Higham; et al. (eds.), The Princeton Companion to Applied Mathematics, Princeton University Press, pp. 281–293
- ↑ Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization (2nd ed.). Berlin, New York: Springer-Verlag. p. 449. ISBN 978-0-387-30303-1..
- ↑ 3.0 3.1 Murty, Katta G. (1988). Linear complementarity, linear and nonlinear programming. Sigma Series in Applied Mathematics. Vol. 3. Berlin: Heldermann Verlag. pp. xlviii+629 pp. ISBN 978-3-88538-403-8. MR 0949214. Archived from the original on 2010-04-01.
- ↑ Delbos, F.; Gilbert, J.Ch. (2005). "Global linear convergence of an augmented Lagrangian algorithm for solving convex quadratic optimization problems" (PDF). Journal of Convex Analysis. 12: 45–69. Archived (PDF) from the original on 2022-10-09.
- ↑ Google search.
- ↑ Gould, Nicholas I. M.; Hribar, Mary E.; Nocedal, Jorge (April 2001). "On the Solution of Equality Constrained Quadratic Programming Problems Arising in Optimization". SIAM J. Sci. Comput. 23 (4): 1376–1395. CiteSeerX 10.1.1.129.7555. doi:10.1137/S1064827598345667.
- ↑ Kozlov, M. K.; S. P. Tarasov; Leonid G. Khachiyan (1979). "[Polynomial solvability of convex quadratic programming]". Doklady Akademii Nauk SSSR. 248: 1049–1051. Translated in: Soviet Mathematics - Doklady. 20: 1108–1111.
{{cite journal}}
: Missing or empty|title=
(help) - ↑ Sahni, S. (1974). "Computationally related problems" (PDF). SIAM Journal on Computing. 3 (4): 262–279. CiteSeerX 10.1.1.145.8685. doi:10.1137/0203021.
- ↑ Pardalos, Panos M.; Vavasis, Stephen A. (1991). "Quadratic programming with one negative eigenvalue is (strongly) NP-hard". Journal of Global Optimization. 1 (1): 15–22. doi:10.1007/bf00120662. S2CID 12602885.
- ↑ Lazimy, Rafael (1982-12-01). "Mixed-integer quadratic programming". Mathematical Programming (in English). 22 (1): 332–349. doi:10.1007/BF01581047. ISSN 1436-4646. S2CID 8456219.
- ↑ Propato Marco; Uber James G. (2004-07-01). "Booster System Design Using Mixed-Integer Quadratic Programming". Journal of Water Resources Planning and Management. 130 (4): 348–352. doi:10.1061/(ASCE)0733-9496(2004)130:4(348).
- ↑ Cornuéjols, Gérard; Peña, Javier; Tütüncü, Reha (2018). Optimization Methods in Finance (2nd ed.). Cambridge, UK: Cambridge University Press. pp. 167–168. ISBN 9781107297340.
अग्रिम पठन
- Cottle, Richard W.; Pang, Jong-Shi; Stone, Richard E. (1992). The linear complementarity problem. Computer Science and Scientific Computing. Boston, MA: Academic Press, Inc. pp. xxiv+762 pp. ISBN 978-0-12-192350-1. MR 1150683.
- Garey, Michael R.; Johnson, David S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. ISBN 978-0-7167-1045-5. A6: MP2, pg.245.
- Gould, Nicholas I. M.; Toint, Philippe L. (2000). "A Quadratic Programming Bibliography" (PDF). RAL Numerical Analysis Group Internal Report 2000-1.
बाहरी संबंध
| group5 = Metaheuristics | abbr5 = heuristic | list5 =
| below =
}} | group5 =Metaheuuristic |abbr5 = heuristic | list5 =*विकासवादी एल्गोरिथ्म
| below =* सॉफ्टवेयर
}}