IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
for large scale
nonlinear optimization of continuous systems.
It is written in
C++ (after migrating from
Fortran and
C) and is released under the
EPL (formerly
CPL). IPOPT implements a
primal-dual interior point method, and uses line searches based on
Filter methods (
Fletcher and
Leyffer).
IPOPT can be called from various modeling environments:
C,
C++,
Fortran,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
,
R,
Python, and others.
IPOPT is part of the
COIN-OR project.
IPOPT is designed to exploit 1st derivative (
gradient) and 2nd derivative (
Hessian) information if provided (usually via
automatic differentiation routines in modeling environments such as
AMPL
AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems).
It was developed ...
). If no Hessians are provided, IPOPT will approximate them using a
quasi-Newton methods, specifically a
BFGS update.
IPOPT was originally developed by Ph.D. studen
Andreas Wächterand Prof
Lorenz T. Bieglerof the Department of Chemical Engineering at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
. Their work was recognized with th
INFORMS Computing Society Prizein 2009.
Arvind Raghunathan later created an extension to IPOPT for
Mathematical programming with equilibrium constraints (MPEC). This version of IPOPT is generally known as IPOPT-C (with the 'C' standing for 'complementarity'). While in theory any
mixed-integer program can be recast as an MPEC, it may or may not be solvable with IPOPT-C. Solution of MINLPs (Mixed-Integer Nonlinear Programs) using IPOPT is still being explored.
Carl Lairdand Andreas Wächter are the developers of IPOPT 3.0, which is a re-implementation of IPOPT in
C++. Wächter and Laird were awarded the 2011
J. H. Wilkinson Prize for Numerical Software for this development.
See also
*
AIMMS
*
AMPL
AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems).
It was developed ...
*
APMonitor
*
GAMS
*
MATLAB
References
External links
IPOPT home page
Numerical software
Mathematical optimization software
Optimization algorithms and methods
{{Compu-library-stub