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

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

\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$$ पॉसिनोमियल हैं और $$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$$, अर्थात, पॉसिनोमियल्स, लॉग-सम-एक्सप फ़ंक्शंस में रूपांतरित हो जाते हैं, जो उत्तल हैं, और फ़ंक्शंस $$g_i$$, अर्थात, मोनोमियल, एफ़िन ट्रांसफ़ॉर्मेशन बन जाते हैं। इसलिए, यह परिवर्तन प्रत्येक जीपी को समतुल्य उत्तल कार्यक्रम में बदल देता है। वास्तव में, इस लॉग-लॉग परिवर्तन का उपयोग समस्याओं के एक बड़े वर्ग को परिवर्तित करने के लिए किया जा सकता है, जिसे लॉग-लॉग उत्तल प्रोग्रामिंग (एलएलसीपी) के रूप में जाना जाता है, एक समतुल्य उत्तल रूप में।

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

यह भी देखें

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