Geometric programming

From Wikipedia, the free encyclopedia

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

Minimize subject to
where are posynomials and are monomials.

In the context of geometric programming (unlike all other disciplines), a monomial is a function defined as

where and .

GPs have numerous applications, such as component sizing in IC design[1] 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, defining , the monomial , where . Similarly, if is the posynomial

then , where and . After the change of variables, a posynomial becomes a sum of exponentials of affine functions.

Software

Several software packages and libraries 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.

See also

Footnotes

  1. ^ http://www.stanford.edu/~boyd/papers/opamp.html

References

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

External links

  • S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi, A Tutorial on Geometric Programming
  • S. Boyd, S. J. Kim, D. Patil, and M. Horowitz Digital Circuit Optimization via Geometric Programming
Retrieved from "https://en.wikipedia.org/w/index.php?title=Geometric_programming&oldid=830255767"
This content was retrieved from Wikipedia : http://en.wikipedia.org/wiki/Geometric_programming
This page is based on the copyrighted Wikipedia article "Geometric programming"; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA). You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA