GGPLAB: A Simple Matlab Toolbox for Geometric Programming
Version 1.00 (May 22, 2006)
GGPLAB is a Matlab-based toolbox for specifying and solving
geometric programs (GPs) and generalized geometric programs (GGPs).
It is intended to complement the survey paper A Tutorial on
Geometric Programming, and the book Convex Optimization.
GGPLAB consists of
- GPCVX, a primal-dual interior-point solver for GP (in convex
form) and a wrapper, GPPOSY, that accepts GPs in posynomial
form.
- A library of objects, such as monomials, posynomials, and
generalized posynomials, to support the specification of GPs and
GGPs.
- A variety of examples.
Some caveats:
- The convex optimization toolbox CVX now supports GP. We
recommend CVX for large or complex problems; we recommend GGPLAB,
on the other hand, for learning the basics of GP.
- The solver GPCVX supports sparse problems, but is not designed
for very large scale problems.
- Object manipulation overhead can make GGPLAB slow on larger
problems.
- GGPLAB does not support dual variables. (The solver GPCVX,
however, does.)
- To use GGPLAB you need Matlab 6.1 or later.
The GGPLAB toolbox includes a variety of worked-out examples to
help you get started and learn about geometric programming and its
applications. Some examples reproduce figures from the book Convex
Optimization or referenced papers. All of these examples can also
be found in the CVX
library.
You can browse through the examples library now without having to
download and install GGPLAB. Of course, if you wish to run any of
the examples, you will have to download the GGPLAB toolbox.
GGPLAB was designed and implemented by Almir Mutapcic (object
library), Kwangmoo
Koh (solver), Seungjean Kim (solver),
Lieven
Vandenberghe (original version of solver), and Stephen Boyd (general trouble
maker). Please report any bugs to almirm@gmail.com (objects) or
deneb1@stanford.edu
(solver).
GGPLAB is distributed under the GNU General Public
License.
The user guides are included in the toolbox, so you don't have to
download them separately.
Back to
Boyd's research group page.