Skip to content
Surf Wiki
Save to docs
general/convex-optimization

From Surf Wiki (app.surf) — the open knowledge base

Geometric programming

Optimization problem


Summary

Optimization problem

A geometric program (GP) is an optimization problem of the form : \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} where f_0,\dots,f_m are posynomials and g_1,\dots,g_p are monomials. In the context of geometric programming (unlike standard mathematics), a monomial is a function from \mathbb{R}_{++}^n to \mathbb{R} defined as

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

where c 0 \ and a_i \in \mathbb{R} . A posynomial is any sum of monomials.{{cite book

Geometric programming is closely related to convex optimization: any GP can be made convex by means of a change of variables. GPs have numerous applications, including component sizing in IC design, aircraft design, maximum likelihood estimation for logistic regression in statistics, and parameter tuning of positive linear systems in control theory.

Convex form

Geometric programs are not in general convex optimization problems, but they can be transformed to convex problems by a change of variables and a transformation of the objective and constraint functions. In particular, after performing the change of variables y_i = \log(x_i) and taking the log of the objective and constraint functions, the functions f_i, i.e., the posynomials, are transformed into log-sum-exp functions, which are convex, and the functions g_i, i.e., the monomials, become affine. Hence, this transformation transforms every GP into an equivalent convex program. In fact, this log-log transformation can be used to convert a larger class of problems, known as log-log convex programming (LLCP), into an equivalent convex form.

Software

Several software packages exist to assist with formulating and solving geometric programs.

  • MOSEK is a commercial solver capable of solving geometric programs as well as other non-linear optimization problems.
  • CVXOPT is an open-source solver for convex optimization problems.
  • GPkit is a Python package for cleanly defining and manipulating geometric programming models. There are a number of example GP models written with this package here.
  • GGPLAB is a MATLAB toolbox for specifying and solving geometric programs (GPs) and generalized geometric programs (GGPs).
  • CVXPY is a Python-embedded modeling language for specifying and solving convex optimization problems, including GPs, GGPs, and LLCPs.

References

References

  1. S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi. ''[https://web.stanford.edu/~boyd/papers/gp_tutorial.html A Tutorial on Geometric Programming].'' Retrieved 20 October 2019.
  2. M. Hershenson, S. Boyd, and T. Lee. ''[https://web.stanford.edu/~boyd/papers/opamp.html Optimal Design of a CMOS Op-amp via Geometric Programming].'' Retrieved 8 January 2019.
  3. S. Boyd, S. J. Kim, D. Patil, and M. Horowitz. ''[https://web.stanford.edu/~boyd/papers/gp_digital_ckt.html Digital Circuit Optimization via Geometric Programming].'' Retrieved 20 October 2019.
  4. W. Hoburg and P. Abbeel. ''[https://people.eecs.berkeley.edu/~pabbeel/papers/2014-AIAA-GP-aircraft-design.pdf Geometric programming for aircraft design optimization].'' AIAA Journal 52.11 (2014): 2414-2426.
  5. (2020). "Geometric Programming for Optimal Positive Linear Systems". IEEE Transactions on Automatic Control.
  6. A. Agrawal, S. Diamond, and S. Boyd. ''[https://arxiv.org/abs/1812.04074 Disciplined Geometric Programming.]'' Retrieved 8 January 2019.
Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Geometric programming — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report