IPOPT is an open source software package for large-scale nonlinear
optimization (NLP). It can be used to solve optimization problems of the form
xL <= x <= xU
where x are the optimization variables (possibly with lower and
upper bounds xL and xU
), f(x) is the objective function, and c(x) are constraints.
The functions f(x) and c(x) can be nonlinear. (Note
that nonlinear inequality constraints can be formulated in the above statement
using slack variables). IPOPT aims to find a local solution of such
The IPOPT distribution can be used to generate a library that can be linked
to one's own FORTRAN or C code, as well as a solver executable for the AMPL modeling language. It also includes
an interface to CUTEr. IPOPT can be used on Linux/UNIX platforms and Windows.
IPOPT is also available as NLP solver at the NEOS Server at Argonne National Laboratories. There you can submit and solve your AMPL and GAMS models online.
And to say it once technically: IPOPT implements an interior point
line search filter method.
IPOPT is written in Fortran 77 (and a little bit of C) and is released as open source code under the Common Public License (CPL). It is available from the COIN-OR repository. You can obtain the source code in form of a tarball.
As open source software, the source code for IPOPT is provided without charge. You are free to use it, also for commercial purposes. You are also free to modify the source code (with the restriction that you need to make your changes public if you decide to distribute your version in any way, e.g. as an executable); for details see the LICENSE file. And we are certainly very keen on feedback from users, including contributions!
In order to compile IPOPT, certain third party code is required (such as some linear algebra routines, or the AMPL Solver Library). Those are available under different conditions/licenses.
We provide this program in the hope that it may be useful to others, and we would very much like to hear about your experience with it. If you found it helpful and are using it within our software, we would like to include you in our user list below.
Since a lot of time and effort has gone into IPOPT's development, please cite the following publication if you are using IPOPT for your own
A. Wächter and L. T. Biegler,
On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming,
Mathematical Programming 106(1), pp. 25-57, 2006
If you have any questions or comments please send a message to the mailing list. (Note: You need to subscribe to the mailing list before you can post a message.) However, note that the Fortran version is no longer maintained and compilation or execution problems are not fixed.
Copyright (C) 2002, 2004, 2005 Carnegie Mellon University, IBM, and others.
All Rights Reserved.
This code is published under the Common Public License.