List of optimization software

Last updated

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 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.

Contents

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

Given: a function f : AR 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 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 notable optimization software organized according to license and business model type.

Free and open-source software

Applications

NameLicenseDescription
ADMB BSD nonlinear optimization framework, using automatic differentiation.
ASCEND GPL mathematical modelling chemical process modelling system.
CUTEr GPLtesting environment for optimization and linear algebra solvers.
GNU Octave GPLsoftware package featuring a high-level programming language, primarily intended for numerical computations; well recognized free alternative to MATLAB.
Octeract Engine CommunityOcteract EULAparallel deterministic global MINLP solver. Octeract Engine Community is a full version of the solver that is free to use for any purpose.
Scilab CeCILL cross-platform numerical computational package and a high-level, numerically oriented programming language with free numerical optimization framework.

Software libraries

NameLicenseDescription
ALGLIB GPLdual 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 GPLGNU 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)LGPLunconstrained 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.
OptaPlannerApache License Java constraint solver with construction heuristics and metaheuristics. Integrates with Spring Boot and Quarkus. Runs on Kotlin and Scala too.
SCIP Apache Licensesolver for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP).
SciPy BSDgeneral numeric package for Python, with some support for optimization.

Proprietary software

Freeware/free for academic use

See also

Related Research Articles

<span class="mw-page-title-main">Mathematical optimization</span> Study of mathematical algorithms for optimization problems

Mathematical optimization or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfields: discrete optimization and continuous optimization. Optimization problems arise in all quantitative disciplines from computer science and engineering to operations research and economics, and the development of solution methods has been of interest in mathematics for centuries.

Multi-disciplinary design optimization (MDO) is a field of engineering that uses optimization methods to solve design problems incorporating a number of disciplines. It is also known as multidisciplinary system design optimization (MSDO), and multidisciplinary design analysis and optimization (MDAO).

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 of an objective function over a set of unknown real variables and conditional to the satisfaction of a system of equalities and inequalities, collectively termed constraints. It is the sub-field of mathematical optimization that deals with problems that are not linear.

<span class="mw-page-title-main">AMPL</span>

AMPL is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing . It was developed by Robert Fourer, David Gay, and Brian Kernighan at Bell Laboratories. AMPL supports dozens of solvers, both open source and commercial software, including CBC, CPLEX, FortMP, MOSEK, MINOS, IPOPT, SNOPT, KNITRO, and LGO. Problems are passed to solvers as nl files. AMPL is used by more than 100 corporate clients, and by government agencies and academic institutions.

The general algebraic modeling system (GAMS) is a high-level modeling system for mathematical optimization. GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems. The system is tailored for complex, large-scale modeling applications and allows the user to build large maintainable models that can be adapted to new situations. The system is available for use on various computer platforms. Models are portable from one platform to another.

CUTEr is an open source testing environment for optimization and linear algebra solvers. CUTEr provides a collection of test problems along with a set of tools to help developers design, compare, and improve new and existing test problem solvers.

Sequential quadratic programming (SQP) is an iterative method for constrained nonlinear optimization which may be considered a quasi-Newton method. SQP methods are used on mathematical problems for which the objective function and the constraints are twice continuously differentiable, but not necessarily convex.

The TOMLAB Optimization Environment is a modeling platform for solving applied optimization problems in MATLAB.

<span class="mw-page-title-main">Zuse Institute Berlin</span> Research institute for applied mathematics and computer science in Berlin, Germany

The Zuse Institute Berlin is a research institute for applied mathematics and computer science on the campus of Freie Universität Berlin in Dahlem, Berlin, Germany.

MOSEK is a software package for the solution of linear, mixed-integer linear, quadratic, mixed-integer quadratic, quadratically constrained, conic and convex nonlinear mathematical optimization problems. The applicability of the solver varies widely and is commonly used for solving problems in areas such as engineering, finance and computer science.

AIMMS is a prescriptive analytics software company with offices in the Netherlands, United States and Singapore.

APOPT is a software package for solving large-scale optimization problems of any of these forms:

Optimization Toolbox is an optimization software package developed by MathWorks. It is an add-on product to MATLAB, and provides a library of solvers that can be used from the MATLAB environment. The toolbox was first released for MATLAB in 1990.

LINDO is a software package for linear programming, integer programming, nonlinear programming, stochastic programming and global optimization.

<span class="mw-page-title-main">OptiSLang</span>

optiSLang is a software platform for CAE-based sensitivity analysis, multi-disciplinary optimization (MDO) and robustness evaluation. It was originally developed by Dynardo GmbH and provides a framework for numerical Robust Design Optimization (RDO) and stochastic analysis by identifying variables which contribute most to a predefined optimization goal. This includes also the evaluation of robustness, i.e. the sensitivity towards scatter of design variables or random fluctuations of parameters. In 2019, Dynardo GmbH was acquired by Ansys.

Deterministic global optimization is a branch of numerical optimization which focuses on finding the global solutions of an optimization problem whilst providing theoretical guarantees that the reported solution is indeed the global one, within some predefined tolerance. The term "deterministic global optimization" typically refers to complete or rigorous optimization methods. Rigorous methods converge to the global optimum in finite time. Deterministic global optimization methods are typically used when locating the global solution is a necessity, when it is extremely difficult to find a feasible solution, or simply when the user desires to locate the best possible solution to a problem.

Artelys Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems.

ANTIGONE, is a deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP).

Octeract Engine is a proprietary massively parallel deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP) and the current world record holder in MINLP performance.

References

  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.