A geometric program (GP) is an optimization problem of the form
where f 0 , … , f m {\displaystyle f_{0},\dots ,f_{m}} are posynomials and g 1 , … , g p {\displaystyle g_{1},\dots ,g_{p}} are monomials. In the context of geometric programming (unlike standard mathematics), a monomial is a function from R + + n {\displaystyle \mathbb {R} _{++}^{n}} to R {\displaystyle \mathbb {R} } defined as
where c > 0 {\displaystyle c>0\ } and a i ∈ R {\displaystyle a_{i}\in \mathbb {R} } . A posynomial is any sum of monomials.
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.