Open Optimization Library
Easy-to-use High-level Optimization Codes
The Open Optimization Library (OOL) is a set of
optimization codes written in C, under the GNU Scientific Library
(GSL) standards. All the algorithms, implemented in OOL, were
published in well known optimization journals. Initially, we present
methods for minimization of functions subject to simple (box)
Our aim is to provide an open-source optimization
library, made of classic and modern constrained optimization methods,
suited to solving real practical applications. In this way, our
library is GSL compliant. We hope that this alliance will provide
an almost complete and usable scientific-code development environment.
Moreover, there are the benefits of using a free scientific library
(as described in the GSL site) under the GNU General Public
- it allows easier collaboration, as the library is
freely available to everyone;
- softwares using the library must be, under the same principles,
released publicly as source-code;
- you can adapt the source code to your needs;
- it respects your privacy - it does not impose any conditions on
- you can contribute back improvements to the user community.
So far, the library implements three methods for
minimization of differentiable functions subject to simple bound
- PGRAD — This is the "projected gradient method", as
described in Kelley (1999). As this method is
the natural generalisation of the gradient method from
unconstrained optimization, it is not intended to be used for
- SPG — This is the "Spectral Projected Gradient Method"
introduced by Birgin, Martínez e Raydan
(2000) and based on the unconstrained algorithms of Barzilai and Borwein (1988) and Raydan (1993).
- GENCAN — This algorithm, introduced in Birgin and Martínez (2002), is an active-set
method, which combines an unconstrained method with a technique
for dropping constraints from the working set.
HOW TO HELP
There are many ways to contribute to this
project. Below, we suggest some.
- Use the library
- Report bugs
- Report successes in using the library to solve relevant and/or
- Suggest enhancements, new features, new methods
- Test the library on non-x86 plataforms
- Submit patches
- Implement optimization methods
- Write interfaces to other libraries
- Write wrapper to other languages (C++, Fortran, Java, ...)
- Write/improve/revise documentation, user's guide, developer's
- Promote the library
OOL is developed as a free software, released under
the terms of the GNU
Public License (GPL).
The current realese is 0.2.0. For information
concerning download, please look at the OOL resource page at
There is a pre-released of the Reference
Manual: [HTML] [PS] [PDF].
For more information about OOL, please contact
any of the authors:
- J. Barzilai and
J. M. Borwein, "Two point step size gradient methods", IMA
Journal of Numerical Analysis, 8, pp 141–148
- E.G. Birgin and
J.M. Martínez, "Large-scale active-set box-constrained
optimization method with spectral projected gradients",
Computational Optimization and Applications, 23,
pp. 101–125 (2002).
- E.G. Birgin, J.M. Martínez
and M. Raydan, "Nonmonotone Spectral Projected Gradient Methods on
Convex Sets", SIAM Journal on Optimization, 10, pp
- C.T. Kelley, "Iterative Methods
for Optimization", SIAM (1999).
- M. Raydan, "On the Barzilai
and Borwein choice of steplengths for the gradient method", IMA
Journal of Numerical Analysis, 13, pp 321–326