geometric programming

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

| author = Richard J. Duffin

|author2=Elmor L. Peterson |author3=Clarence Zener

| title = Geometric Programming

| publisher = John Wiley and Sons

| year = 1967

| pages = 278

| isbn = 0-471-22370-0

}}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.

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,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. 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. aircraft design,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. maximum likelihood estimation for logistic regression in statistics, and parameter tuning of positive linear systems in control theory.{{Cite journal|last1=Ogura|first1=Masaki|last2=Kishida|first2=Masako|last3=Lam|first3=James|date=2020|title=Geometric Programming for Optimal Positive Linear Systems|url=https://ieeexplore.ieee.org/document/8936427|journal=IEEE Transactions on Automatic Control|volume=65|issue=11|pages=4648–4663|doi=10.1109/TAC.2019.2960697|issn=0018-9286|arxiv=1904.12976|s2cid=140222942 }}

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.A. Agrawal, S. Diamond, and S. Boyd. [https://arxiv.org/abs/1812.04074 Disciplined Geometric Programming.] Retrieved 8 January 2019.

Software

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

  • [https://www.mosek.com/ MOSEK] is a commercial solver capable of solving geometric programs as well as other non-linear optimization problems.
  • [http://cvxopt.org/ CVXOPT] is an open-source solver for convex optimization problems.
  • [https://github.com/convexengineering/gpkit 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 [https://github.com/convexengineering/gplibrary here].
  • [https://web.stanford.edu/~boyd/ggplab/ GGPLAB] is a MATLAB toolbox for specifying and solving geometric programs (GPs) and generalized geometric programs (GGPs).
  • [https://www.cvxpy.org/tutorial/dgp/index.html CVXPY] is a Python-embedded modeling language for specifying and solving convex optimization problems, including GPs, GGPs, and LLCPs.

See also

References