A geometric program (GP) is an
optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
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.
[S. Boyd, S. J. Kim, L. Vandenberghe, and A. Hassibi. ]
A Tutorial on Geometric Programming
'' Retrieved 20 October 2019.
Geometric programming is
closely related to
convex optimization
Convex optimization is a subfield of mathematical optimization that studies the problem of minimizing convex functions over convex sets (or, equivalently, maximizing concave functions over convex sets). Many classes of convex optimization problems ...
: 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
In statistics, maximum likelihood estimation (MLE) is a method of estimation theory, estimating the Statistical parameter, parameters of an assumed probability distribution, given some observed data. This is achieved by Mathematical optimization, ...
for
logistic regression
In statistics, a logistic model (or logit model) is a statistical model that models the logit, log-odds of an event as a linear function (calculus), linear combination of one or more independent variables. In regression analysis, logistic regres ...
in
statistics
Statistics (from German language, German: ', "description of a State (polity), state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of data. In applying statistics to a s ...
, and parameter tuning of positive
linear systems in
control theory
Control theory is a field of control engineering and applied mathematics that deals with the control system, control of dynamical systems in engineered processes and machines. The objective is to develop a model or algorithm governing the applic ...
.
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
Affine may describe any of various topics concerned with connections or affinities.
It may refer to:
* Affine, a Affinity_(law)#Terminology, relative by marriage in law and anthropology
* Affine cipher, a special case of the more general substi ...
. 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. ]
Disciplined Geometric Programming.
' Retrieved 8 January 2019.
Software
Several software packages exist to assist with formulating and solving geometric programs.
MOSEKis a commercial solver capable of solving geometric programs as well as other non-linear optimization problems.
CVXOPTis an open-source solver for convex optimization problems.
GPkitis a Python package for cleanly defining and manipulating geometric programming models. There are a number of example GP models written with this packag
hereGGPLABis a MATLAB toolbox for specifying and solving geometric programs (GPs) and generalized geometric programs (GGPs).
is a Python-embedded modeling language for specifying and solving convex optimization problems, including GPs, GGPs, and LLCPs.
See also
*
Signomial
*
Clarence Zener
References
{{reflist
Convex optimization