IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
for large scale
nonlinear optimization
In mathematics, nonlinear programming (NLP) is the process of solving an optimization problem where some of the constraints or the objective function are nonlinear. An optimization problem is one of calculation of the extrema (maxima, minima or sta ...
of continuous systems. It is written in
Fortran and
C and is released under the
EPL (formerly
CPL). IPOPT implements a
primal-dual interior point method
Interior-point methods (also referred to as barrier methods or IPMs) are a certain class of algorithms that solve linear and nonlinear convex optimization problems.
An interior point method was discovered by Soviet mathematician I. I. Dikin in 1 ...
, and uses line searches based on
Filter methods (
Fletcher
Fletcher may refer to:
People
* Fletcher (occupation), a person who fletches arrows, the origin of the surname
* Fletcher (singer) (born 1994), American actress and singer-songwriter
* Fletcher (surname)
* Fletcher (given name)
Places
United ...
and
Leyffer). IPOPT can be called from various modeling environments and
C.
IPOPT is part of the
COIN-OR
Computational Infrastructure for Operations Research (COIN-OR), is a project that aims to "create for mathematical software what the open literature is for mathematical theory." The open literature (e.g., a research journal) provides the operat ...
project.
IPOPT is designed to exploit 1st and 2nd derivative (
Hessians) information if provided (usually via
automatic differentiation
In mathematics and computer algebra, automatic differentiation (AD), also called algorithmic differentiation, computational differentiation, auto-differentiation, or simply autodiff, is a set of techniques to evaluate the derivative of a function ...
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 (i.e., large-scale optimization and scheduling-type problems).
It was developed b ...
). If no Hessians are provided, IPOPT will approximate them using a
quasi-Newton method Quasi-Newton methods are methods used to either find zeroes or local maxima and minima of functions, as an alternative to Newton's method. They can be used if the Jacobian or Hessian is unavailable or is too expensive to compute at every iteration. ...
s, 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. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
. 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 Mathematical programming with equilibrium constraints (MPEC) is the study of
constrained optimization problems where the constraints include variational inequalities or complementarities. MPEC is related to the Stackelberg game.
MPEC is used ...
(MPEC
This version of IPOPT is generally known as IPOPT-C (with the 'C' standing for 'complementarity'). While in theory any
Mixed integer programming, 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 explore
Carl Laird
and Andreas Wächter are the developers of IPOPT 3.0, which is a re-implementation of IPOPT in C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. Wächter and Laird were awarded the 2011 J. H. Wilkinson Prize for Numerical Software
The J. H. Wilkinson Prize for Numerical Software is awarded every four years to honor outstanding contributions in the field
of numerical software. The award is named to commemorate the outstanding contributions of James H. Wilkinson in the same f ...
for this development.
See also
*
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, China and Singapore.
It has two main product offerings that provide modeling and ...
*
AMPL
AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems).
It was developed b ...
*
APMonitor
Advanced process monitor (APMonitor) is a modeling language for differential algebraic ( DAE) equations. It is a free web-service or local server for solving representations of physical systems in the form of implicit DAE models. APMonitor is s ...
*
GAMS
Gams is a municipality in the ''Wahlkreis'' (constituency) of Werdenberg in the canton of St. Gallen in Switzerland.
History
Gams is first mentioned in 835 as ''Campesias''. In 1210 it was mentioned as ''Chames'', in 1236 as ''Gamps''. Unti ...
*
MATLAB
MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
References
External links
IPOPT home page
Numerical software
Mathematical optimization software
Optimization algorithms and methods
{{Compu-library-stub