ज्यामितीय प्रोग्रामिंग

एक ज्यामितीय प्रोग्राम (GP) फॉर्म की एक अनुकूलन (गणित) समस्या है

\begin{array}{ll} \mbox{minimize} & f_0(x) \\ \mbox{subject to} & f_i(x) \leq 1, \quad i=1, \ldots, m\\ & g_i(x) = 1, \quad i=1, \ldots, p, \end{array} $$ कहाँ $$f_0,\dots,f_m$$ posynomials हैं और $$g_1,\dots,g_p$$ मोनोमियल हैं। ज्यामितीय प्रोग्रामिंग (मानक गणित के विपरीत) के संदर्भ में, एक मोनोमियल एक फ़ंक्शन है $$\mathbb{R}_{++}^n$$ को $$\mathbb{R}$$ के रूप में परिभाषित


 * $$x \mapsto c x_1^{a_1} x_2^{a_2} \cdots x_n^{a_n} $$

कहाँ $$ c > 0 \ $$ और $$a_i \in \mathbb{R} $$. एक पॉसिनोमियल मोनोमियल्स का योग होता है। ज्यामितीय प्रोग्रामिंग है उत्तल अनुकूलन से निकटता से संबंधित: चर के परिवर्तन के माध्यम से किसी भी जीपी को उत्तल बनाया जा सकता है। जीपी के पास कई अनुप्रयोग हैं, जिसमें एकीकृत सर्किट डिजाइन में घटक का आकार बदलना शामिल है, विमान डिजाइन, आंकड़ों में लॉजिस्टिक प्रतिगमन के लिए अधिकतम संभावना अनुमान, और नियंत्रण सिद्धांत में सकारात्मक रैखिक गतिशील प्रणाली के पैरामीटर ट्यूनिंग।

उत्तल रूप
ज्यामितीय कार्यक्रम सामान्य उत्तल अनुकूलन समस्याओं में नहीं हैं, लेकिन वे चर के परिवर्तन और उद्देश्य और बाधा कार्यों के परिवर्तन से उत्तल समस्याओं में परिवर्तित हो सकते हैं। विशेष रूप से, चर के परिवर्तन को करने के बाद $$y_i = \log(x_i)$$ और उद्देश्य और बाधा कार्यों, कार्यों का लॉग लेना $$f_i$$, यानी, पॉसिनोमियल्स, LogSumExp | में रूपांतरित हो जाते हैं लॉग-सम-एक्सप फ़ंक्शंस, जो उत्तल हैं, और फ़ंक्शंस $$g_i$$, यानी, मोनोमियल, एफ़िन ट्रांसफ़ॉर्मेशन बन जाते हैं। इसलिए, यह परिवर्तन प्रत्येक जीपी को समतुल्य उत्तल कार्यक्रम में बदल देता है। वास्तव में, इस लॉग-लॉग परिवर्तन का उपयोग समस्याओं के एक बड़े वर्ग को परिवर्तित करने के लिए किया जा सकता है, जिसे लॉग-लॉग उत्तल प्रोग्रामिंग (एलएलसीपी) के रूप में जाना जाता है, एक समतुल्य उत्तल रूप में।

सॉफ्टवेयर
ज्यामितीय प्रोग्राम बनाने और हल करने में सहायता के लिए कई सॉफ्टवेयर पैकेज मौजूद हैं।
 * MOSEK एक व्यावसायिक सॉल्वर है जो ज्यामितीय कार्यक्रमों के साथ-साथ अन्य गैर-रैखिक अनुकूलन समस्याओं को हल करने में सक्षम है।
 * CVXOPT उत्तल अनुकूलन समस्याओं के लिए एक ओपन-सोर्स सॉल्वर है।
 * GPkit ज्यामितीय प्रोग्रामिंग मॉडल को स्पष्ट रूप से परिभाषित करने और हेरफेर करने के लिए एक पायथन पैकेज है। इस पैकेज के साथ कई उदाहरण जीपी मॉडल लिखे गए हैं यहां।
 * GGPLAB ज्यामितीय प्रोग्राम (GPs) और सामान्यीकृत ज्यामितीय प्रोग्राम (GGPs) को निर्दिष्ट करने और हल करने के लिए एक MATLAB टूलबॉक्स है।
 * CVXPY जीपी, जीजीपी और एलएलसीपी सहित उत्तल अनुकूलन समस्याओं को निर्दिष्ट करने और हल करने के लिए एक पायथन-एम्बेडेड मॉडलिंग भाषा है।

यह भी देखें

 * सांकेतिक
 * क्लेरेंस जेनर