scispace - formally typeset
Open AccessJournal ArticleDOI

A tutorial on geometric programming

Reads0
Chats0
TLDR
This tutorial paper collects together in one place the basic background material needed to do GP modeling, and shows how to recognize functions and problems compatible with GP, and how to approximate functions or data in a formcompatible with GP.
Abstract
A geometric program (GP) is a type of mathematical optimization problem characterized by objective and constraint functions that have a special form. Recently developed solution methods can solve even large-scale GPs extremely efficiently and reliably; at the same time a number of practical problems, particularly in circuit design, have been found to be equivalent to (or well approximated by) GPs. Putting these two together, we get effective solutions for the practical problems. The basic approach in GP modeling is to attempt to express a practical problem, such as an engineering analysis or design problem, in GP format. In the best case, this formulation is exact; when this is not possible, we settle for an approximate formulation. This tutorial paper collects together in one place the basic background material needed to do GP modeling. We start with the basic definitions and facts, and some methods used to transform problems into GP format. We show how to recognize functions and problems compatible with GP, and how to approximate functions or data in a form compatible with GP (when this is possible). We give some simple and representative examples, and also describe some common extensions of GP, along with methods for solving (or approximately solving) them.

read more

Content maybe subject to copyright    Report

Optim Eng (2007) 8: 67–127
DOI 10.1007/s11081-007-9001-7
EDUCATIONAL SECTION
A tutorial on geometric programming
Stephen Boyd ·Seung-Jean Kim ·
Lieven Vandenberghe ·Arash Hassibi
Received: 17 March 2005 / Revised: 15 September 2005 /
Published online: 10 April 2007
© Springer Science+Business Media, LLC 2007
Abstract A geometric program (GP) is a type of mathematical optimization problem
characterized by objective and constraint functions that have a special form. Recently
developed solution methods can solve even large-scale GPs extremely efficiently and
reliably; at the same time a number of practical problems, particularly in circuit de-
sign, have been found to be equivalent to (or well approximated by) GPs. Putting
these two together, we get effective solutions for the practical problems. The basic
approach in GP modeling is to attempt to express a practical problem, such as an en-
gineering analysis or design problem, in GP format. In the best case, this formulation
is exact; when this is not possible, we settle for an approximate formulation. This
tutorial paper collects together in one place the basic background material needed
to do GP modeling. We start with the basic definitions and facts, and some methods
used to transform problems into GP format. We show how to recognize functions and
problems compatible with GP, and how to approximate functions or data in a form
compatible with GP (when this is possible). We give some simple and representative
examples, and also describe some common extensions of GP, along with methods for
solving (or approximately solving) them.
S. Boyd · S.-J. Kim (
)
Information Systems Laboratory, Department of Electrical Engineering, Stanford University,
Stanford, CA 94305, USA
e-mail: sjkim@stanford.edu
S. Boyd
e-mail: boyd@stanford.edu
L. Vandenberghe
Department of Electrical Engineering, University of California, Los Angeles, CA 90095, USA
e-mail: vandenbe@ucla.edu
A. Hassibi
Clear Shape Technologies, Inc., Sunnyvale, CA 94086, USA
e-mail: arash@clearshape.com

68 S. Boyd et al.
Keywords Convex optimization · Geometric programming ·
Generalized geometric programming · Interior-point methods
1 The GP modeling approach
A geometric program (GP) is a type of mathematical optimization problem charac-
terized by objective and constraint functions that have a special form. The importance
of GPs comes from two relatively recent developments:
New solution methods can solve even large-scale GPs extremely efficiently and
reliably.
A number of practical problems, particularly in electrical circuit design, have re-
cently been found to be equivalent to (or well approximated by) GPs.
Putting these two together, we get effective solutions for the practical problems. Nei-
ther of these developments is widely known, at least not yet. Nor is the story over:
Further improvements in GP solution methods will surely be developed, and, we be-
lieve, many more practical applications of GP will be discovered. Indeed, one of our
principal aims is to broaden knowledge and awareness of GP among potential users,
to help accelerate the hunt for new practical applications of GP.
The basic approach is to attempt to express a practical problem, such as an engi-
neering analysis or design problem, in GP format. In the best case, this formulation is
exact; when this isn’t possible, we settle for an approximate formulation. Formulating
a practical problem as a GP is called GP modeling. If we succeed at GP modeling,
we have an effective and reliable method for solving the practical problem.
We will see that GP modeling is not just a matter of using some software package
or trying out some algorithm; it involves some knowledge, as well as creativity, to be
done effectively. Moreover, success isn’t guaranteed: Many problems simply cannot
be represented, or even approximated, as GPs. But when we do succeed, the results
are very useful and impressive, since we can reliably solve even large-scale instances
of the practical problem.
It’s useful to compare GP modeling and modeling via general purpose nonlinear
optimization (also called nonlinear programming, or NLP). NLP modeling is rela-
tively easy, since the objective and constraint functions can be any nonlinear func-
tions. In contrast, GP modeling can be much trickier, since we are rather constrained
in the form the objective and constraint functions can take. Solving a GP is very easy;
but solving a general NLP is far trickier, and always involves some compromise (such
as accepting a local instead of a global solution). When we do GP modeling, we are
limiting the form of the objective and constraint functions. In return for accepting
this limitation, though, we get the benefit of extremely efficient and reliable solution
methods, that scale gracefully to large-scale problems.
A good analogy can be made with linear programming (LP). A linear program is
an optimization problem with an even stricter limitation on the form of the objective
and constraint functions (i.e., they must be linear). Despite what appears to be a very
restrictive form, LP modeling is widely used, in many practical fields, because LPs
can be solved with great reliability and efficiency. (This analogy is no accident—LPs
and GPs are both part of the larger class of convex optimization problems.)

A tutorial on geometric programming 69
This tutorial paper collects together in one place the basic background material
needed to do GP modeling. We start with the basic definitions and facts, and some
methods used to transform problems into GP format. We show how to recognize
functions and problems compatible with GP, and how to approximate functions or
data in a form compatible with GP (when this is possible). We give some simple and
representative examples, and also describe some common extensions of GP, along
with methods for solving (or approximately solving) them. This paper does not cover
the detailed theory of GPs (such as optimality conditions or duality) or algorithms
for solving GPs; our focus is on GP modeling.
This tutorial paper is organized as follows. In Sect. 2, we describe the basic form of
a GP and some simple extensions, and give a brief discussion of how GPs are solved.
We consider feasibility analysis, trade-off analysis, and sensitivity analysis for GPs
in Sect. 3, illustrated with simple numerical examples. In Sect. 4, we give two longer
examples to illustrate GP modeling, one from wireless communications, and the other
from semiconductor device engineering. We move on to generalized geometric pro-
gramming (GGP), a significant extension of GP, in Sect. 5, and give a number of ex-
amples from digital circuit design and mechanical engineering in Sect. 6. In Sect. 7,
we describe several more advanced techniques and extensions of GP modeling, and
in Sect. 8 we describe practical methods for fitting a function or some given data in a
form that is compatible with GP. In Sect. 9 we describe some extensions of GP that
result in problems that, unlike GP and GGP, are difficult to solve, as well as some
heuristic and nonheuristic methods that can be used to solve them. We conclude the
tutorial with notes and references in Sect. 10.
2 Basic geometric programming
2.1 Monomial and posynomial functions
Let x
1
,...,x
n
denote n real positive variables, and x = (x
1
,...,x
n
) a vector with
components x
i
. A real valued function f of x, with the form
f(x)=cx
a
1
1
x
a
2
2
···x
a
n
n
, (1)
where c>0 and a
i
R, is called a monomial function, or more informally, a mono-
mial (of the variables x
1
,...,x
n
). We refer to the constant c as the coefficient of the
monomial, and we refer to the constants a
1
,...,a
n
as the exponents of the monomial.
As an example, 2.3x
2
1
x
0.15
2
is a monomial of the variables x
1
and x
2
, with coefficient
2.3 and x
2
-exponent 0.15.
Any positive constant is a monomial, as is any variable. Monomials are closed
under multiplication and division: if f and g are both monomials then so are fg
and f/g. (This includes scaling by any positive constant.) A monomial raised to any
power is also a monomial:
f(x)
γ
=(cx
a
1
1
x
a
2
2
···x
a
n
n
)
γ
=c
γ
x
γa
1
1
x
γa
2
2
···x
γa
n
n
.
The term ‘monomial’, as used here (in the context of geometric programming)
is similar to, but differs from the standard definition of ‘monomial’ used in algebra.

70 S. Boyd et al.
In algebra, a monomial has the form (1), but the exponents a
i
must be nonnegative
integers, and the coefficient c is one. Throughout this paper, ‘monomial’ will refer to
the definition given above, in which the coefficient can be any positive number, and
the exponents can be any real numbers, including negative and fractional.
A sum of one or more monomials, i.e., a function of the form
f(x)=
K
k=1
c
k
x
a
1k
1
x
a
2k
2
···x
a
nk
n
, (2)
where c
k
> 0, is called a posynomial function or, more simply, a posynomial (with
K terms, in the variables x
1
,...,x
n
). The term ‘posynomial’ is meant to suggest a
combination of ‘positive’ and ‘polynomial’.
Any monomial is also a posynomial. Posynomials are closed under addition, mul-
tiplication, and positive scaling. Posynomials can be divided by monomials (with the
result also a posynomial): If f is a posynomial and g is a monomial, then f/g is a
posynomial. If γ is a nonnegative integer and f is a posynomial, then f
γ
always
makes sense and is a posynomial (since it is the product of γ posynomials).
Let us give a few examples. Suppose x, y, and z are (positive) variables. The
functions (or expressions)
2x, 0.23, 2z
x/y, 3x
2
y
.12
z
are monomials (hence, also posynomials). The functions
0.23 +x/y, 2(1 +xy)
3
, 2x +3y +2z
are posynomials but not monomials. The functions
1.1, 2(1 +xy)
3.1
, 2x +3y 2z, x
2
+tan x
are not posynomials (and therefore, not monomials).
2.2 Standard form geometric program
A geometric program (GP) is an optimization problem of the form
minimize f
0
(x)
subject to f
i
(x) 1,i=1,...,m,
g
i
(x) =1,i=1,...,p,
(3)
where f
i
are posynomial functions, g
i
are monomials, and x
i
are the optimization
variables. (There is an implicit constraint that the variables are positive, i.e., x
i
> 0.)
We refer to the problem (3) as a geometric program in standard form, to distinguish
it from extensions we will describe later. In a standard form GP, the objective must
be posynomial (and it must be minimized); the equality constraints can only have the
form of a monomial equal to one, and the inequality constraints can only have the
form of a posynomial less than or equal to one.

A tutorial on geometric programming 71
As an example, consider the problem
minimize x
1
y
1/2
z
1
+2.3xz +4xyz
subject to (1/3)x
2
y
2
+(4/3)y
1/2
z
1
1,
x +2y +3z 1,
(1/2)xy =1,
with variables x, y and z. This is a GP in standard form, with n =3 variables, m =2
inequality constraints, and p =1 equality constraints.
We can switch the sign of any of the exponents in any monomial term in the
objective or constraint functions, and still have a GP. For example, we can change the
objective in the example above to x
1
y
1/2
z
1
+2.3xz
1
+4xyz, and the resulting
problem is still a GP (since the objective is still a posynomial). But if we change
the sign of any of the coefficients, or change any of the additions to subtractions,
the resulting problem is not a GP. For example, if we replace the second inequality
constraint with x +2y 3z 1, the resulting problem is not a GP (since the left-hand
side is no longer a posynomial).
The term geometric program was introduced by Duffin, Peterson, and Zener in
their 1967 book on the topic (Duffin et al. 1967). It’s natural to guess that the name
comes from the many geometrical problems that can be formulated as GPs. But in
fact, the name comes from the geometric-arithmetic mean inequality, which played a
central role in the early analysis of GPs.
It is important to distinguish between geometric programming, which refers to
the family of optimization problems of the form (3), and geometric optimization,
which usually refers to optimization problems involving geometry. Unfortunately,
this nomenclature isn’t universal: a few authors use ‘geometric programming’ to
mean optimization problems involving geometry, and vice versa.
2.3 Simple extensions of GP
Several extensions are readily handled. If f is a posynomial and g is a monomial, then
the constraint f(x)g(x) can be handled by expressing it as f(x)/g(x)1 (since
f/g is posynomial). This includes as a special case a constraint of the form f(x)a,
where f is posynomial and a>0. In a similar way if g
1
and g
2
are both monomial
functions, then we can handle the equality constraint g
1
(x) =g
2
(x) by expressing it
as g
1
(x)/g
2
(x) = 1 (since g
1
/g
2
is monomial). We can maximize a nonzero mono-
mial objective function, by minimizing its inverse (which is also a monomial).
As an example, consider the problem
maximize x/y
subject to 2 x 3,
x
2
+3y/z
y,
x/y =z
2
,
(4)

Citations
More filters
Journal ArticleDOI

Aiding a Disaster Spot via Multi-UAV-Based IoT Networks: Energy and Mission Completion Time-Aware Trajectory Optimization

TL;DR: In this article , the authors considered data dissemination in post-disaster areas, where all Internet of Things (IoT) nodes may not have data needs all the time, and formulated a data dissemination problem using multiple UAVs in a postdisaster area while optimizing their trajectory, mission completion time and energy consumption.
Posted Content

Joint Radio Resource Allocation, 3D Placement and User Association of Aerial Base Stations in IoT Networks

TL;DR: A novel method for joint radio resource allocation (RRA), three-dimensional placement (3DP), and user association of aerial base stations (ABSs) as a main problem in the internet of things (IoT) networks is proposed.
Journal ArticleDOI

Geometric Programming for Design and Cost Optimization:With Illustrative Case Study Problems and Solutions

TL;DR: The primal-dual relationships are used to illustrate how to determine the primal variables from the dual solution and can be used to determine additional dual equations when the degrees of difficulty are positive.
Book ChapterDOI

Term and volatility structures

TL;DR: A review and a comparison of the methods that have been suggested to construct the term structure associated with a given collection of fixed income financial instruments can be found in this article, which addresses the problem of determining the associated volatility structure that has been given only scant attention in the literature.
References
More filters
Book

Convex Optimization

TL;DR: In this article, the focus is on recognizing convex optimization problems and then finding the most appropriate technique for solving them, and a comprehensive introduction to the subject is given. But the focus of this book is not on the optimization problem itself, but on the problem of finding the appropriate technique to solve it.
Book

Numerical Optimization

TL;DR: Numerical Optimization presents a comprehensive and up-to-date description of the most effective methods in continuous optimization, responding to the growing interest in optimization in engineering, science, and business by focusing on the methods that are best suited to practical problems.
Book

Nonlinear Programming

Book

Linear and nonlinear programming

TL;DR: Strodiot and Zentralblatt as discussed by the authors introduced the concept of unconstrained optimization, which is a generalization of linear programming, and showed that it is possible to obtain convergence properties for both standard and accelerated steepest descent methods.
Frequently Asked Questions (14)
Q1. What contributions have the authors mentioned in the paper "A tutorial on geometric programming" ?

This tutorial paper collects together in one place the basic background material needed to do GP modeling. The authors show how to recognize functions and problems compatible with GP, and how to approximate functions or data in a form compatible with GP ( when this is possible ). The authors give some simple and representative examples, and also describe some common extensions of GP, along with methods for solving ( or approximately solving ) them. 

The main trick to solving a GP efficiently is to convert it to a nonlinear but convex optimization problem, i.e., a problem with convex objective and inequality constraint functions, and linear equality constraints. 

One useful extension of monomial fitting is to include a constant offset, i.e., to fit the data (x(i), f (i)) to a model of the formf (x) = b + cxa11 · · ·xann ,where b ≥ 0 is another model parameter. 

The wire segment resistance and capacitance are both posynomial functions of the wire widths wi , which will be their design variables. 

Another common method for finding the trade-off curve (or surface) of the objective and one or more constraints is the weighted sum method. 

The constraint that the truss should be strong enough to carry the load F1 means that the stress caused by the external force F1 must not exceed a given maximum value. 

Applications of geometric programming in other fields include:• Chemical engineering (Clasen 1984; Salomone and Iribarren 1993; Salomone et al. 

The authors illustrate posynomial fitting using the same data points as those used in the max-monomial fitting example given in Sect. 8.4. The authors used a Gauss-Newton method to find K-term posynomial approximations, ĥK(x), for K = 3, 5, 7, which (locally, at least) minimize the sum of the squares of the relative errors. 

The optimal trade-off curve (or surface) can be found by solving the perturbed GP (12) for many values of the parameter (or parameters) to be varied. 

This analysis suggests that the authors can handle composition of a generalized posynomial with any function whose series expansion has no negative coefficients, at least approximately, by truncating the series. 

This is a nonlinear least-squares problem, which can be solved (usually) using methods such as the Gauss-Newton method (Bertsekas 1999; Luenberger 1984; Nocedal and Wright 1999). 

8.2 Local monomial approximationThe authors consider the problem of finding a monomial approximation of a differentiable positive function f near a point x (with xi > 0). 

The authors first describe the method for the case with only one generalized posynomial equality constraint (since it is readily generalizes to the case of multiple generalized posynomial equality constraints). 

The interesting part here is the converse for generalized posynomials, i.e., the observation that if F can be approximated by a convex function, then f can be approximated by a generalized posynomial.