List of optimization software

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "List of optimization software" – news · newspapers · books · scholar · JSTOR (August 2013) (Learn how and when to remove this message)

|

Given a transformation between input and output values, described by a mathematical function, optimization deals with generating and selecting the 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 could be design parameters for a motor, the output could be the power consumption. For another optimization, the inputs could be business choices and the output could be the profit obtained.

An optimization problem, (in this case a minimisation problem), can be represented in the following way:

Given: a function f : A -> {\displaystyle \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, or sets of integers.

The use of optimisation software requires that the function f is defined in a suitable programming language and connected at compilation or run time to the optimisation software. The optimisation 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 optimisation software modules can be easily tested on the same function f, or a given optimisation software can be used for different functions f.

The following tables provide a list of notable optimisation software organised according to license and business model type.

## Free and open-source software

[edit]

### Applications

[edit]

Name  | License  | Description

|
|

ADMB | BSD | nonlinear optimization framework using automatic differentiation.
ASCEND | GPL | mathematical modelling chemical process modelling system.
CUTEr | GPL  | testing environment for optimization and linear algebra solvers.
GNU Octave | GPL  | software package using a high-level programming language, primarily intended for numerical computations; it is mostly compatible with MATLAB.
Scilab | CeCILL | cross-platform numerical computational package and a high-level, numerically oriented programming language with a numerical optimization framework.

### Software libraries

[edit]

Name  | License  | Description

|
|

ALGLIB | GPL  | dual licensed (GPL/commercial) optimization library (LP, QP and nonlinear programming problems), optionally using automatic differentiation. Cross-language: C++, C#.
COIN-OR | EPL 1.0 | integer programming, linear programming, nonlinear programming.
Dlib | BSL‑1.0 | unconstrained/box-constrained nonlinear/QP optimization library written in C++.
GEKKO | MIT | machine learning and optimization of mixed-integer and differential algebraic equations in Python.
GLPK | GPL  | GNU Linear Programming Kit with C API.
HiGHS | MIT | linear programming (LP), mixed integer programming (MIP), and convex quadratic programming (QP).[1]
IPOPT | EPL (was CPL)  | large scale nonlinear optimizer for continuous systems (requires gradient), C++ (formerly Fortran and C). It became a part of COIN-OR.[2]
MINUIT (now MINUIT2) | LGPL  | unconstrained optimizer internally developed at CERN.
OpenMDAO | Apache License | Multidisciplinary Design, Analysis, and Optimization (MDAO) framework, written in Python. The development is led out of the NASA Glenn Research Center, with support from the NASA Langley Research Center.
SCIP | Apache License  | solver for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP).
SciPy | BSD  | general numeric package for Python, with some support for optimization.

## Proprietary software

[edit]

* AIMMS – optimisation modelling system, including GUI building facilities.
* ALGLIB – dual licensed (GPL/commercial) constrained quadratic and nonlinear optimisation library with C++ and C# interfaces.
* Altair HyperStudy – design of experiments and multidisciplinary design optimisation.
* AMPL – modelling language for large-scale linear, mixed integer and nonlinear optimisation.
* ANTIGONE – a deterministic global optimization MINLP solver.
* APMonitor – modelling language and optimisation suite for large-scale, nonlinear, mixed integer, differential, and algebraic equations with interfaces to MATLAB, Python, and Julia.
* Artelys Knitro – large scale nonlinear optimisation for continuous and mixed-integer programming.
* ASTOS – AeroSpace Trajectory Optimisation Software for launch, re-entry, and generic aerospace problems.
* BARON – optimisation of algebraic nonlinear and mixed-integer nonlinear problems.
* COMSOL Multiphysics – a cross-platform finite element analysis, solver and multiphysics simulation software.
* CPLEX – solver for linear and quadratic programming with continuous or integer variables (MIP).
* FEATool Multiphysics – FEA GUI Toolbox for MATLAB.
* FICO Xpress – solver for linear and quadratic programming with continuous or integer variables (MIP).
* FortMP – linear and quadratic programming.
* FortSP – stochastic programming.
* GAMS – General Algebraic Modeling System.
* Gurobi Optimizer – solver for linear and quadratic programming with continuous or integer variables (MIP).
* HEEDS MDO – multidisciplinary design optimisation using SHERPA, a hybrid, adaptive optimisation algorithm.
* IMSL Numerical Libraries – linear, quadratic, nonlinear, and sparse QP and LP optimisation algorithms implemented in standard programming languages C, Java, C# .NET, Fortran, and Python.
* IOSO – (Indirect Optimisation on the basis of Self-Organisation) a multi-objective, multidimensional nonlinear optimisation technology.
* Kimeme – an open platform for multi-objective optimisation and multidisciplinary design optimisation.
* LINDO – (Linear, Interactive, and Discrete Optimiser) a software package for linear programming, integer programming, nonlinear programming, stochastic programming, and global optimisation. The "What's Best!" Excel add-in performs linear, integer, and nonlinear optimization using LINDO.
* LIONsolver – an integrated software for data mining, analytics, modelling Learning and Intelligent OptimizatioN and reactive business intelligence approach.
* modeFRONTIER – an integration platform for multi-objective and multidisciplinary optimization, which provides a seamless coupling with third party engineering tools, enables the automation of the design simulation process, and facilitates analytic decision-making.
* Maple – linear, quadratic, and nonlinear, continuous and integer optimisation. Constrained and unconstrained. Global optimization with add-on toolbox.
* MATLAB – linear, integer, quadratic, and nonlinear problems with Optimization Toolbox; multiple maxima, multiple minima, and non-smooth optimisation problems; estimation and optimisation of model parameters.
* MIDACO a lightweight software tool for single- and multi-objective optimization based on evolutionary computing. Written in C/C++ and Fortran with gateways to Excel, VBA, Java, Python, Matlab, Octave, R, C#, and Julia.
* Mathematica – large-scale multivariate constrained and unconstrained, linear, quadratic and nonlinear, continuous, and integer optimisation.
* ModelCenter – a graphical environment for integration, automation, and design optimisation.
* MOSEK – linear, quadratic, conic and convex nonlinear, continuous, and integer optimisation.
* NAG – linear, quadratic, nonlinear, sums of squares of linear or nonlinear functions; linear, sparse linear, nonlinear, bounded or no constraints; local and global optimisations; continuous or integer problems.
* NMath – linear, quadratic and nonlinear programming.
* Octeract Engine – a deterministic global optimization MINLP solver. Plans exist for additional features.
* OptimJ – Java-based modelling language. Premium Edition includes support for Mosek and CPLEX solvers.
* Optimus platform – a process integration and design optimisation platform developed by Noesis Solutions.
* optiSLang – software solutions for CAE-based sensitivity analysis, optimisation, and robustness evaluation.
* OptiY – a design environment providing modern optimisation strategies and state of the art probabilistic algorithms for uncertainty, reliability, robustness, sensitivity analysis, data-mining, and meta modelling.
* OptiStruct – award-winning CAE technology for conceptual design synthesis and structural optimisation.
* OptQuest – metaheuristics-based optimization plugin for simulation-based optimization in conjunction with discrete-event simulation software.
* PottersWheel – parameter estimation in ordinary differential equations (MATLAB toolbox, free for academic use).
* pSeven – software platform for automation of engineering simulation and analysis, multidisciplinary optimisation and data mining, developed by DATADVANCE.
* SAS – a software suite developed by SAS Institute for advanced analytics (statistics, forecasting, machine learning, optimisation, etc.), business intelligence, customer intelligence, data management, risk management, and many more.
* SmartDO – multidisciplinary global design optimisation, specialised in computer-aided engineering (CAE). using the direct global search approaches.
* SNOPT – large-scale optimisation problems.
* The Unscrambler – product formulation and process optimisation software.
* TOMLAB – supports global optimisation, integer programming, all types of least squares, linear, quadratic, and unconstrained programming for MATLAB. TOMLAB supports solvers like CPLEX, SNOPT, KNITRO and MIDACO.
* VisSim – a visual block diagram language for simulation and optimisation of dynamical systems.
* WORHP – a large-scale sparse solver for continuous nonlinear optimisation.

## Freeware/free for academic use

[edit]

* AIMMS
* AMPL
* APMonitor – free for academic and commercial use alike, with Python and MATLAB integrations.
* ASTOS
* CPLEX
* Couenne – An open source solver for the deterministic global optimisation of MINLPs licensed under the Eclipse Public License.
* FICO Xpress
* Galahad library
* Gekko
* Gurobi Optimizer \- free for academic users
* LIONsolver
* MIDACO – a software package for numerical optimization based on evolutionary computing.
* MINTO – integer programming solver using branch and bound algorithm; freeware for personal use.
* MOSEK – a large scale optimisation software. Solves linear, quadratic, conic and convex nonlinear, continuous and integer optimisation.
* OptimJ – Java-based modelling language; the free edition includes support for lp_solve, GLPK and LP or MPS file formats.
* PottersWheel – parameter estimation in ordinary differential equations (free MATLAB toolbox for academic use).
* Pyomo – collection of Python software packages for formulating optimisation models.
* UFO Fortran package for numerical optimisation
* WORHP

## See also

[edit]

* Comparison of optimization software
* List of computer algebra systems
* List of constraint programming languages
* List of numerical libraries
* List of optimization algorithms
* List of SMT solvers

## References

[edit]

1. ^ Hall, Julian (21 September 2020). HiGHS: High-performance open-source software for linear optimization (PDF). Edinburgh, United Kingdom: University of Edinburgh. Retrieved 2022-02-27. Presentation.
2. ^ "Projects". COIN-OR: Computational Infrastructure for Operations Research. 8 October 2014. Retrieved 10 March 2021.

* v
* t
* e

Mathematical optimization software

Data formats|

* Mathematica
* MPS
* nl
* sol

Modeling tools|

* AIMMS
* AMPL
* APMonitor
* ECLiPSe-CLP
* Gekko
* GAMS
* GNU MathProg
* JuMP
* LINDO
* OPL
* Mathematica
* MiniZinc
* OptimJ
* PuLP
* Pyomo
* TOMLAB
* Xpress Mosel
* ZIMPL

Solvers|

| LP, MILP∗|

* APOPT∗
* ANTIGONE∗
* Artelys Knitro∗
* BCP∗
* CLP
* CBC∗
* CPLEX∗
* FortMP∗
* GCG∗
* GLOP∗
* GLPK/GLPSOL∗
* Gurobi Optimizer∗
* HiGHS∗
* LINDO∗
* Lp_solve
* LOQO
* Mathematica
* MINOS
* MINTO∗
* MOSEK∗
* NAG
* SCIP∗
* SoPlex
* Octeract Engine∗
* SYMPHONY∗
* Xpress Optimizer∗

|

QP, MIQP∗|

* APOPT∗
* ANTIGONE∗
* Artelys Knitro∗
* CBC∗
* CLP
* CPLEX∗
* FortMP∗
* HiGHS
* Gurobi Optimizer∗
* IPOPT
* LINDO∗
* Mathematica
* MINOS
* MOSEK∗
* NAG
* Octeract Engine∗
* SCIP∗
* Xpress Optimizer∗

QCP, MIQCP∗|

* APOPT∗
* ANTIGONE∗
* Artelys Knitro∗
* CPLEX∗
* Gurobi Optimizer∗
* IPOPT
* LINDO∗
* Mathematica
* MINOS
* MOSEK∗
* NAG
* SCIP∗
* Octeract Engine∗
* Xpress Optimizer∗
* Xpress NonLinear∗

SOCP, MISOCP∗|

* Artelys Knitro∗
* CPLEX∗
* Gurobi Optimizer∗
* LINDO∗
* LOQO
* Mathematica
* MOSEK∗
* NAG
* SCIP∗
* Xpress Optimizer∗

SDP, MISDP∗|

* Mathematica
* MOSEK
* NAG

NLP, MINLP∗|

* AOA∗
* APOPT∗
* ANTIGONE∗
* Artelys Knitro∗
* BARON∗
* Couenne∗
* Galahad library
* Gurobi Optimizer∗
* IPOPT
* LINDO∗
* LOQO
* MIDACO∗
* MINOS
* NAG
* NLPQLP
* NPSOL
* SCIP∗
* SNOPT∗
* Octeract Engine∗
* WORHP
* Xpress NonLinear∗

GO|

* ANTIGONE∗
* BARON
* Couenne∗
* Mathematica
* LINDO
* SCIP
* Octeract Engine

CP|

* Artelys Kalis
* Comet
* CPLEX CP Optimizer
* Gecode
* Mathematica
* JaCoP
* Xpress Kalis

* List of optimization software
* Comparison of optimization software

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template