Given a transformation between input and output values, described by a
mathematical function ''f'',
optimization
Mathematical optimization (alternatively spelled ''optimisation'') 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 subfi ...
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 mathematics, computer science and economics, an optimization problem is the problem of finding the ''best'' solution from all feasible solutions.
Optimization problems can be divided into two categories, depending on whether the variables ...
, in this case a minimization problem, can be represented in the following way
:''Given:'' a
function ''f'' : ''A''
R from some
set ''A'' to the
real number
In mathematics, a real number is a number that can be used to measurement, measure a ''continuous'' one-dimensional quantity such as a distance, time, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small var ...
s
:''Search for:'' an element ''x''
0 in ''A'' such that ''f''(''x''
0) ≤ ''f''(''x'') for all ''x'' in ''A''.
In continuous optimization, ''A'' is some
subset
In mathematics, set ''A'' is a subset of a set ''B'' if all elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are unequal, then ''A'' is a proper subset o ...
of the
Euclidean space
Euclidean space is the fundamental space of geometry, intended to represent physical space. Originally, that is, in Euclid's ''Elements'', it was the three-dimensional space of Euclidean geometry, but in modern mathematics there are Euclidean sp ...
R
''n'', often specified by a set of ''
constraint
Constraint may refer to:
* Constraint (computer-aided design), a demarcation of geometrical characteristics between two or more entities or solid modeling bodies
* Constraint (mathematics), a condition of an optimization problem that the solution ...
s'', equalities or inequalities that the members of ''A'' have to satisfy. In combinatorial optimization, ''A'' is some
subset
In mathematics, set ''A'' is a subset of a set ''B'' if all elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are unequal, then ''A'' is a proper subset o ...
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
:
Software libraries
:
Proprietary software
*
AIMMS – optimization modeling system, including GUI building facilities.
*
ALGLIB – dual licensed (GPL/commercial) constrained quadratic and nonlinear optimization library with C++ and C# interfaces.
*
Altair HyperStudy – design of experiments and multi-disciplinary design optimization.
*
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 ...
– modelling language for large-scale linear, mixed integer and nonlinear optimization.
*
ANTIGONE
In Greek mythology, Antigone ( ; Ancient Greek: Ἀντιγόνη) is the daughter of Oedipus and either his mother Jocasta or, in another variation of the myth, Euryganeia. She is a sister of Polynices, Eteocles, and Ismene.Roman, L., & Roma ...
– a
deterministic global optimization MINLP solver.
*
APMonitor – modeling language and optimization suite for large-scale, nonlinear, mixed integer, differential and algebraic equations with interfaces to MATLAB, Python, and Julia.
*
Artelys Knitro
Artelys Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems.
KNITRO – (the original solver name) short for "Nonlinear Interior point Trust Region Optimization" (the "K" is silent) – was ...
– large scale nonlinear optimization for continuous and mixed-integer programming.
*
ASTOS – AeroSpace Trajectory Optimization Software for launcher, re-entry and generic aerospace problems.
*
BARON – optimization of algebraic nonlinear and mixed-integer nonlinear problems.
*
COMSOL Multiphysics – a cross-platform
finite element
The finite element method (FEM) is a popular method for numerically solving differential equations arising in engineering and mathematical models, mathematical modeling. Typical problem areas of interest include the traditional fields of struct ...
analysis, solver and
multiphysics simulation software
Simulation software is based on the process of modeling a real phenomenon with a set of mathematical formulas. It is, essentially, a program that allows the user to observe an operation through simulation without actually performing that operation. ...
.
*
CPLEX – integer, linear and quadratic programming.
*
FEATool Multiphysics – FEA GUI Toolbox for MATLAB
*
FICO Xpress – integer, linear and quadratic and nonlinear programming.
*
FortMP
FortMP is a software package for solving large-scale optimization problems. It solves linear programming
Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost ...
– integer, linear and quadratic programming.
FortranCalculus Compiler– higher level language for Continuous Modeling, Simulation and Optimization. Solves Constrained, Implicit, Non-Linear, Algebraic and/or Ordinary Differential Equations using Solvers stored in a library. Most solvers use
Automatic Differentiation to calculate the Jacobian or Hessian matrix.
*
FortSP – stochastic programming.
*
GAMS – General Algebraic Modeling System.
*
:de:Gurobi – supports a range of optimization paradigms.
*
HEEDS MDO – multidisciplinary design optimization using SHERPA, a hybrid, adaptive optimization algorithm.
*
IMSL Numerical Libraries – linear, quadratic, nonlinear, and sparse QP and LP optimization algorithms implemented in standard programming languages C, Java, C# .NET, Fortran, and Python.
*
IOSO – (Indirect Optimization on the basis of Self-Organization) a multiobjective, multidimensional nonlinear optimization technology.
*
Kimeme – an open platform for multi-objective optimization and multidisciplinary design optimization.
*
LINDO - (Linear, Interactive, and Discrete Optimizer) a software package for linear programming, integer programming,
nonlinear programming, stochastic programming, and global optimization. The "What's Best!" Excel add-in performs linear, integer, and nonlinear optimization using LINDO.
*
LIONsolver – an integrated software for
data mining,
analytics
Analytics is the systematic computational analysis of data or statistics. It is used for the discovery, interpretation, and communication of meaningful patterns in data. It also entails applying data patterns toward effective decision-making. It ...
,
modeling Learning and Intelligent OptimizatioN and reactive
business intelligence
Business intelligence (BI) comprises the strategies and technologies used by enterprises for the data analysis and management of business information. Common functions of business intelligence technologies include reporting, online analytical pr ...
approach.
*
modeFRONTIER
modeFRONTIER is a multidisciplinary design optimization (MDO) platform developed by the Italian software house ESTECO SpA. Its workflow based environment, and multi-objective optimization algorithms are used for streamlining the engineering design ...
– an integration platform for multi-objective and multi-disciplinary 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
''Acer'' () is a genus of trees and shrubs commonly known as maples. The genus is placed in the family Sapindaceae.Stevens, P. F. (2001 onwards). Angiosperm Phylogeny Website. Version 9, June 2008 nd more or less continuously updated since ht ...
– linear, quadratic, and nonlinear, continuous and integer optimization. Constrained and unconstrained. Global optimization with add-on toolbox.
*
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, implementa ...
– linear, integer, quadratic, and nonlinear problems with
Optimization Toolbox
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 199 ...
; multiple maxima, multiple minima, and non-smooth optimization problems; estimation and optimization of model parameters.
*
MIDACO MIDACO ( Mixed Integer Distributed Ant Colony Optimization) is a software package for numerical optimization based on evolutionary computing.
MIDACO was created in collaboration of
European Space Agency and EADS Astrium to solve constrained mixed ...
a lightweight software tool for single- and multi-objective
optimization
Mathematical optimization (alternatively spelled ''optimisation'') 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 subfi ...
based on
evolutionary computing. Written in C/C++ and Fortran with gateways to Excel, VBA, Java, Python, Matlab, Octave, R, C# and Julia.
*
Mathematica
Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimi ...
– large-scale multivariate constrained and unconstrained, linear, quadratic and nonlinear, continuous and integer optimization.
*
ModelCenter – a graphical environment for integration, automation, and design optimization.
*
MOSEK – linear, quadratic, conic and convex nonlinear, continuous and integer optimization.
*
NAG – linear, quadratic, nonlinear, sums of squares of linear or nonlinear functions; linear, sparse linear, nonlinear, bounded or no constraints; local and global optimization; continuous or integer problems.
*
NMath – linear, quadratic and nonlinear programming.
*
Octeract Engine
Octeract Engine is a proprietary deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP).. It claims to use MPI as a means of accelerating solution times. Up to now there hasn't been any publication supporti ...
– a
deterministic global optimization MINLP solver. Octeract Engine Community is free to use, and paid plans exist for additional features.
*
OptimJ – Java-based modeling language. Premium Edition includes support for Mosek and CPLEX solvers.
*
Optimus platform
Optimus is a Process Integration and Design Optimization (PIDO) platform developed by Noesis Solutions. Noesis Solutions takes part in key research projects, such as PHAROS and MATRIX.
Optimus allows the integration of multiple engineering ...
– a process integration and design optimization platform developed by Noesis Solutions.
*
optiSLang
optiSLang is a software platform for CAE-based sensitivity analysis, multi-disciplinary optimization (MDO) and robustness evaluation. It is developed by Dynardo GmbH and provides a framework for numerical Robust Design Optimization (RDO) and s ...
– software solutions for CAE-based sensitivity analysis, optimization and robustness evaluation.
*
OptiY - a design environment providing modern optimization strategies and state of the art probabilistic algorithms for uncertainty, reliability, robustness, sensitivity analysis, data-mining and meta-modeling.
*
OptiStruct
Altair Engineering Inc. is an American multinational information technology company headquartered in Troy, Michigan. It provides software and cloud solutions for simulation, IoT, high performance computing (HPC), data analytics, and artificia ...
– award-winning CAE technology for conceptual design synthesis and structural optimization.
*
PottersWheel – parameter estimation in ordinary differential equations (MATLAB toolbox, free for academic use).
*
pSeven
pSeven is a DSE (Design Space Exploration) software platform developed by DATADVANCE, extending design, simulation and analysis capabilities and assisting in faster design decisions. It provides integration with third party CAD and CAE software ...
— software platform for automation of engineering simulation and analysis, multidisciplinary optimization and data mining, developed by
DATADVANCE
DATADVANCE Is a software development company, evolved out of a collaborative research program between Airbus and Institute for Information Transmission Problems of the Russian Academy of Sciences (IITP RAS).
Product
pSeven Core, embedded in ...
.
*
SAS
SAS or Sas may refer to:
Arts, entertainment, and media
* ''SAS'' (novel series), a French book series by Gérard de Villiers
* ''Shimmer and Shine'', an American animated children's television series
* Southern All Stars, a Japanese rock ba ...
– a software suite developed by SAS Institute for advanced analytics (statistics, forecasting, machine learning, optimization, etc.), business intelligence, customer intelligence, data management, risk management, and many more.
*
SmartDO
SmartDO is a multidisciplinary design optimization software, based on the Direct Global Search technology developed and marketed by FEA-Opt Technology. SmartDO specialized in the CAE-Based optimization, such as CAE ( computer-aided engineering) ...
– multidisciplinary global design optimization, specialized in computer-aided engineering (CAE). using the direct global search approaches.
*
SNOPT – large-scale optimization problems.
*
The Unscrambler
The Unscrambler X is a commercial software product for multivariate data analysis, used for calibration of multivariate data which is often in the application of analytical data such as near infrared spectroscopy and Raman spectroscopy, and deve ...
X – product formulation and process optimization software.
*
TOMLAB – supports global optimization, integer programming, all types of least squares, linear, quadratic and unconstrained programming for
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, implementa ...
. TOMLAB supports solvers like
CPLEX,
SNOPT,
KNITRO and
MIDACO MIDACO ( Mixed Integer Distributed Ant Colony Optimization) is a software package for numerical optimization based on evolutionary computing.
MIDACO was created in collaboration of
European Space Agency and EADS Astrium to solve constrained mixed ...
.
*
VisSim
VisSim is a visual block diagram program for simulation of dynamical systems and model-based design of embedded systems, with its own visual language. It is developed by Visual Solutions of Westford, Massachusetts. Visual Solutions was acquired ...
– a visual
block diagram language for simulation and optimization of
dynamical system
In mathematics, a dynamical system is a system in which a function describes the time dependence of a point in an ambient space. Examples include the mathematical models that describe the swinging of a clock pendulum, the flow of water i ...
s.
*
WORHP
WORHP ( "warp", an acronym for "We Optimize Really Huge Problems"), also referred to as eNLP (European NLP solver) by ESA, is a mathematical software library for numerically solving large scale continuous nonlinear optimization problems.
WO ...
– a large-scale sparse solver for continuous nonlinear optimization.
Freeware/free for academic use
*
AIMMS
*
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 – free for academic and commercial use alike, with
Julia
Julia is usually a feminine given name. It is a Latinate feminine form of the name Julio and Julius. (For further details on etymology, see the Wiktionary entry "Julius".) The given name ''Julia'' had been in use throughout Late Antiquity (e ...
,
Python and
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, implementa ...
integrations.
*
ASTOS
*
CPLEX
*
Couenne – An open source solver for the deterministic global optimization of MINLPs licensed under the Eclipse Public License.
*
FICO Xpress
*
Galahad library
*
GEKKO Python
*
LIONsolver
*
MIDACO MIDACO ( Mixed Integer Distributed Ant Colony Optimization) is a software package for numerical optimization based on evolutionary computing.
MIDACO was created in collaboration of
European Space Agency and EADS Astrium to solve constrained mixed ...
– a software package for numerical
optimization
Mathematical optimization (alternatively spelled ''optimisation'') 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 subfi ...
based on
evolutionary computing.
*
MINTO –
integer programming
An integer programming problem is a mathematical optimization or feasibility program in which some or all of the variables are restricted to be integers. In many settings the term refers to integer linear programming (ILP), in which the objective ...
solver using branch and bound algorithm; freeware for personal use.
*
MOSEK – a large scale optimization software. Solves linear, quadratic, conic and convex nonlinear, continuous and integer optimization.
*
OptimJ – Java-based modeling language; the free edition includes support for lp_solve,
GLPK and
LP or
MPS
MPS, M.P.S., MPs, or mps may refer to:
Science and technology
* Mucopolysaccharidosis, genetic lysosomal storage disorder
* Mononuclear phagocyte system, cells in mammalian biology
* Myofascial pain syndrome
* Metallopanstimulin
* Potassium perox ...
file formats.
*
PottersWheel – parameter estimation in ordinary differential equations (free MATLAB toolbox for academic use).
*
Pyomo - collection of Python software packages for formulating optimization models.
*
WORHP
WORHP ( "warp", an acronym for "We Optimize Really Huge Problems"), also referred to as eNLP (European NLP solver) by ESA, is a mathematical software library for numerically solving large scale continuous nonlinear optimization problems.
WO ...
See also
*
Comparison of optimization software
*
List of computer algebra systems
The following tables provide a comparison of computer algebra systems (CAS). A CAS is a package comprising a set of algorithms for performing symbolic manipulations on algebraic objects, a language to implement them, and an environment in which to ...
*
List of constraint programming languages
*
List of numerical libraries
This is a list of numerical libraries, which are libraries used in software development for performing numerical calculations. It is not a complete listing but is instead a list of numerical libraries with articles on Wikipedia, with few exceptio ...
*
List of optimization algorithms
The following is a list of well-known algorithms along with one-line descriptions for each.
Automated planning
Combinatorial algorithms
General combinatorial algorithms
* Brent's algorithm: finds a cycle in function value iterations using on ...
*
List of SMT solvers
In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability problem (SAT) to more complex formulas involvi ...
References
{{Mathematical optimization software
*
Optimization software