HOME

TheInfoList



OR:

Given a transformation between input and output values, described by a
mathematical function In mathematics, a function from a set to a set assigns to each element of exactly one element of .; the words map, mapping, transformation, correspondence, and operator are often used synonymously. The set is called the domain of the functi ...
''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'' \to R from some
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
''A'' to the
real number In mathematics, a real number is a number that can be used to measure a ''continuous'' one-dimensional quantity such as a distance, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small variations. Every ...
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 of ...
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 Euclidea ...
R''n'', 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 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 of ...
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 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 ...
– optimization modeling system, including GUI building facilities. *
ALGLIB ALGLIB is a cross-platform open source numerical analysis and data processing library. It can be used from several programming languages (C++, C#, VB.NET, Python, Delphi). ALGLIB started in 1999 and has a long history of steady development wi ...
– 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 ...
– 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., ...
– a deterministic global optimization MINLP solver. *
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 ...
– 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) – w ...
– large scale nonlinear optimization for continuous and mixed-integer programming. *
ASTOS ASTOS is a tool dedicated to mission analysis, Trajectory optimization, vehicle design and simulation for space scenarios, i.e. launch, re-entry missions, orbit transfers, Earth observation, navigation, coverage and re-entry safety assessments ...
– AeroSpace Trajectory Optimization Software for launcher, re-entry and generic aerospace problems. *
BARON Baron is a rank of nobility or title of honour, often hereditary, in various European countries, either current or historical. The female equivalent is baroness. Typically, the title denotes an aristocrat who ranks higher than a lord or kn ...
– optimization of algebraic nonlinear and mixed-integer nonlinear problems. *
COMSOL Multiphysics COMSOL Multiphysics is a finite element analysis, solver, and simulation software package for various physics and engineering applications, especially coupled phenomena and multiphysics. The software facilitates conventional physics-based us ...
– a cross-platform finite element 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 IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
– integer, linear and quadratic programming. * FEATool Multiphysics – FEA GUI Toolbox for MATLAB *
FICO Xpress The FICO Xpress optimizer is a commercial optimization solver for linear programming (LP), mixed integer linear programming (MILP), convex quadratic programming (QP), convex quadratically constrained quadratic programming (QCQP), second-order ...
– integer, linear and quadratic and nonlinear programming. * FortMP – 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 FortSP is a software package for solving stochastic programming (SP) problems. It solves scenario-based SP problems with recourse as well as problems with chance constraints and integrated chance constraints. FortSP is available as a standalone e ...
– 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 IMSL (International Mathematics and Statistics Library) is a commercial collection of software libraries of numerical analysis functionality that are implemented in the computer programming languages C, Java, C#.NET, and Fortran. A Python int ...
– linear, quadratic, nonlinear, and sparse QP and LP optimization algorithms implemented in standard programming languages C, Java, C# .NET, Fortran, and Python. *
IOSO IOSO (Indirect Optimization on the basis of Self-Organization) is a multiobjective, multidimensional nonlinear optimization technology. IOSO approach IOSO Technology is based on the response surface methodology approach. At each IOSO iteration ...
– (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 Lindo is a surname. Notable people with the surname include: * Abigail Lindo (1803–1848), British lexicographer * Allan Lindo, more commonly known as apl.de.ap (born 1974), Filipino-American musician * Dean Lindo (born 1932), Belizean attorney * ...
- (Linear, Interactive, and Discrete Optimizer) a software package for linear programming, integer programming,
nonlinear programming 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 ...
, stochastic programming, and global optimization. The "What's Best!" Excel add-in performs linear, integer, and nonlinear optimization using LINDO. *
LIONsolver LIONsolver is an integrated software for data mining, business intelligence, analytics, and modeling and reactive business intelligence approach. A non-profit version is also available as LIONoso. LIONsolver is used to build models, visualize t ...
– 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 ...
approach. * modeFRONTIER – 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 h ...
– 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, implementat ...
– linear, integer, quadratic, and nonlinear problems with Optimization Toolbox; multiple maxima, multiple minima, and non-smooth optimization problems; estimation and optimization of model parameters. * MIDACO 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 In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, th ...
. 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, optimiza ...
– 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 NMath is a numerical package for the Microsoft .NET Framework. It is developed by CenterSpace Software. Version 1.0 was released in March, 2003 as NMath Core. The current version is called NMath 7.1, released in December, 2019. NMath is built o ...
– linear, quadratic and nonlinear programming. * Octeract Engine – 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 – a process integration and design optimization platform developed by Noesis Solutions. * optiSLang – 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 – award-winning CAE technology for conceptual design synthesis and structural optimization. *
PottersWheel PottersWheel is a MATLAB toolbox for mathematical modeling of time-dependent dynamical systems that can be expressed as chemical reaction networks or ordinary differential equations (ODEs). It allows the automatic calibration of model parameter ...
– parameter estimation in ordinary differential equations (MATLAB toolbox, free for academic use). * pSeven — software platform for automation of engineering simulation and analysis, multidisciplinary optimization and data mining, developed by DATADVANCE. * SAS – 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 – multidisciplinary global design optimization, specialized in computer-aided engineering (CAE). using the direct global search approaches. *
SNOPT SNOPT, for Sparse Nonlinear OPTimizer, is a software package for solving large-scale nonlinear optimization problems written by Philip Gill, Walter Murray and Michael Saunders. SNOPT is mainly written in Fortran, but interfaces to C, C++, Pyth ...
– 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 dev ...
X – product formulation and process optimization software. *
TOMLAB Tomlab is a German record label based in Köln. It has released works by bands such as The Books, Casiotone for the Painfully Alone, Deerhoof, Thee Oh Sees, Les Georges Leningrad, and acts associated with Blocks Recording Club, such as Final F ...
– 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, implementat ...
. TOMLAB supports solvers like
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
,
SNOPT SNOPT, for Sparse Nonlinear OPTimizer, is a software package for solving large-scale nonlinear optimization problems written by Philip Gill, Walter Murray and Michael Saunders. SNOPT is mainly written in Fortran, but interfaces to C, C++, Pyth ...
, KNITRO and MIDACO. *
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 acquire ...
– a visual
block diagram A block diagram is a diagram of a system in which the principal parts or functions are represented by blocks connected by lines that show the relationships of the blocks.
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 – a large-scale sparse solver for continuous nonlinear optimization.


Freeware/free for academic use

*
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 ...
*
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 ...
– free for academic and commercial use alike, with Julia, 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, implementat ...
integrations. *
ASTOS ASTOS is a tool dedicated to mission analysis, Trajectory optimization, vehicle design and simulation for space scenarios, i.e. launch, re-entry missions, orbit transfers, Earth observation, navigation, coverage and re-entry safety assessments ...
*
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. In 2004, the work on CPLEX earned the first INFORMS Impact Prize. History The CPLEX Optimizer was named for the simplex me ...
* Couenne – An open source solver for the deterministic global optimization of MINLPs licensed under the Eclipse Public License. *
FICO Xpress The FICO Xpress optimizer is a commercial optimization solver for linear programming (LP), mixed integer linear programming (MILP), convex quadratic programming (QP), convex quadratically constrained quadratic programming (QCQP), second-order ...
* Galahad library * GEKKO Python *
LIONsolver LIONsolver is an integrated software for data mining, business intelligence, analytics, and modeling and reactive business intelligence approach. A non-profit version is also available as LIONoso. LIONsolver is used to build models, visualize t ...
* MIDACO – 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 In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, th ...
. * 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 The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the for ...
and LP or MPS file formats. *
PottersWheel PottersWheel is a MATLAB toolbox for mathematical modeling of time-dependent dynamical systems that can be expressed as chemical reaction networks or ordinary differential equations (ODEs). It allows the automatic calibration of model parameter ...
– parameter estimation in ordinary differential equations (free MATLAB toolbox for academic use). * Pyomo - collection of Python software packages for formulating optimization models. * WORHP


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 except ...
* List of optimization algorithms * List of SMT solvers


References

{{Mathematical optimization software * Optimization software