List of optimization software

From Wikipedia, the free encyclopedia - View original article

Jump to: navigation, search

Given a transformation between input and output values, described by a mathematical function f, optimization deals with generating and selecting a best solution from some set of available alternatives, by systematically choosing input values from within an allowed set, computing the output of the function, and recording the best output values found during the process. Many real-world problems can be modeled in this way. For example, the inputs can be design parameters of a motor, the output can be the power consumption, or the inputs can be business choices and the output can be the obtained profit.

An optimization problem, in this case a minimization problem, can be represented in the following way

Given: a function f : A \to R from some set A to the real numbers
Search for: an element x0 in A such that f(x0) ≤ f(x) for all x in A.

In continuous optimization, A is some subset of the Euclidean space Rn, often specified by a set of constraints, equalities or inequalities that the members of A have to satisfy. In combinatorial optimization, A is some subset of a discrete space, like binary strings, permutations, sets of integers.

The use of optimization software requires that the function f is defined in a suitable programming language and connected at compile or run time to the optimization software. The optimization software will deliver input values in A, the software module realizing f will deliver the computed value f(x) and, in some cases, additional information about the function like derivatives.

In this manner, a clear separation of concerns is obtained: different optimization software modules can be easily tested on the same function f, or a given optimization software can be used for different functions f.

The following tables provide a list of optimization software organized according to license and business model type.

Free and Open Source software[edit]

NameLicenseBrief info
ADMBBSDnonlinear optimization framework, using automatic differentiation
APMonitorBSDMATLAB Toolbox and Python APIs to Mixed Integer Nonlinear Programming Solvers
ASCENDGPLmathematical modelling system
CONDORGPLNon-linear Continuous Objective Function for small dimension (n<20) with linear and non-linear constraints. Only the value of the objective function is used. Stand-Alone C++ code.
COIN-OR SYMPHONYGPLinteger programming
CUTErGPLtesting environment for optimization and linear algebra solvers
IPOPTCPLlarge scale nonlinear optimization for continuous system
JOptimizerASLopen source java library for convex optimization
OpenOptBSDfree numerical optimization framework for solving NLP, LP, MIP, QP, with automatic differentiation features.
OpenSolverGPLopen source Excel addin for solving LP and MIP problems
OPTI ToolboxBSDMATLAB Toolbox for solving linear, nonlinear, continuous and discrete optimization problems.
MOEA FrameworkLGPLopen source Java library for multiobjective optimization
UFFLPGPLopen source. An easy API for Mixed, Integer and Linear Programming

Proprietary software[edit]