Jump to content

Geometric programming

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Akshayka (talk | contribs) at 20:51, 10 January 2019 (Fix incorrect notation in Convex Form section, and add an inline citation.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A geometric program (GP) is an optimization problem of the form

where are posynomials and are monomials. In the context of geometric programming (unlike standard mathematics), a monomial is a function from to defined as

where and . A posynomial is any sum of monomials. [1]

GPs have numerous applications, such as component sizing in IC design[2][3] and parameter estimation via logistic regression in statistics. The maximum likelihood estimator in logistic regression is a GP.

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 and taking the log of the objective and constraint functions, the functions , i.e., the posynomials, are transformed into log-sum-exp functions, which are convex, and the functions , i.e., the monomials, become affine. Hence, this transformation transforms every GP into an equivalent convex program. [4]

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 log-log convex programs. [5]

See also

References

  1. ^ S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi. A Tutorial on Geometric Programming. Retrieved 8 January 2019.
  2. ^ M. Hershenson, S. Boyd, and T. Lee. 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. Digital Circuit Optimization via Geometric Programming. Retrieved 8 January 2019.
  4. ^ S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi. A Tutorial on Geometric Programming. Retrieved 8 January 2019.
  5. ^ A. Agrawal, S. Diamond, and S. Boyd. Disciplined Geometric Programming. Retrieved 8 January 2019.

Further Reading

  • Richard J. Duffin; Elmor L. Peterson; Clarence Zener (1967). Geometric Programming. John Wiley and Sons. p. 278. ISBN 0-471-22370-0.