HOME

TheInfoList



OR:

Given a transformation between input and output values, described by a
mathematical function In mathematics, a function from a set (mathematics), set to a set assigns to each element of exactly one element of .; the words ''map'', ''mapping'', ''transformation'', ''correspondence'', and ''operator'' are sometimes used synonymously. ...
,
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
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 mathematics, engineering, computer science and economics Economics () is a behavioral science that studies the Production (economics), production, distribution (economics), distribution, and Consumption (economics), consumption of goo ...
, (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 duration or temperature. Here, ''continuous'' means that pairs of values can have arbitrarily small differences. Every re ...
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, a Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), 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 a ...
of the
Euclidean space Euclidean space is the fundamental space of geometry, intended to represent physical space. Originally, in Euclid's ''Elements'', it was the three-dimensional space of Euclidean geometry, but in modern mathematics there are ''Euclidean spaces ...
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, a Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), 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 a ...
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 A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
and connected at compilation 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, and Singapore. It has two main product offerings that provide modeling and optim ...
– optimization modelling 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 multidisciplinary 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 (e.g. large-scale optimization and scheduling-type problems). It was developed ...
– modelling language for large-scale linear, mixed integer and nonlinear optimization. * ANTIGONE – a
deterministic global optimization Deterministic global optimization is a branch of mathematical 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 ...
MINLP solver. * APMonitor – modelling language and optimization suite for large-scale, nonlinear, mixed integer, differential, and algebraic equations with interfaces to MATLAB, Python, and Julia. * Artelys Knitro – large scale nonlinear optimization for continuous and mixed-integer programming. * ASTOS – AeroSpace Trajectory optimization Software for launch, re-entry, and generic aerospace problems. *
BARON Baron is a rank of nobility or title of honour, often Hereditary title, hereditary, in various European countries, either current or historical. The female equivalent is baroness. Typically, the title denotes an aristocrat who ranks higher than ...
– optimization of algebraic nonlinear and mixed-integer nonlinear problems. * COMSOL Multiphysics – 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. History The CPLEX Optimizer was named after the simplex method implemented in the C programming language. However, today ...
– 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 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 multi-objective, multidimensional nonlinear optimization technology. * Kimeme – an open platform for multi-objective optimization and multidisciplinary design optimization. *
LINDO LINDO (Linear, Interactive, and Discrete Optimizer) is a software package for linear programming, integer programming, nonlinear programming, stochastic programming and global optimization. LINGO is a mathematical modeling language used as par ...
(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 Data mining is the process of extracting and finding patterns in massive data sets involving methods at the intersection of machine learning, statistics, and database systems. Data mining is an interdisciplinary subfield of computer science and ...
,
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, which also falls under and directly relates to the umbrella term, data sc ...
, modelling Learning and Intelligent OptimizatioN and reactive
business intelligence Business intelligence (BI) consists of strategies, methodologies, and technologies used by enterprises for data analysis and management of business information. Common functions of BI technologies include Financial reporting, reporting, online an ...
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 ''Acer'' is a genus of trees and shrubs commonly known as maples. The genus is placed in the soapberry family Sapindaceae.Stevens, P. F. (2001 onwards). Angiosperm Phylogeny Website. Version 9, June 2008 nd more or less continuously updated si ...
– 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 criteria, from some set of available alternatives. It is generally divided into two subfiel ...
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 (previously known as Mathematica and Wolfram Mathematica) is a software system with built-in libraries for several areas of technical computing that allows machine learning, statistics, symbolic computation, data manipulation, network ...
– 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 optimizations; continuous or integer problems. * NMath – linear, quadratic and nonlinear programming. *
Octeract Engine Octeract Engine is a proprietary massively parallel deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP). The solver is designed to work in parallel on a distributed environment. It is optimized for succ ...
– a
deterministic global optimization Deterministic global optimization is a branch of mathematical 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 ...
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 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 modelling. * OptiStruct – award-winning CAE technology for conceptual design synthesis and structural optimization. * 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 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 – large-scale optimization problems. * The Unscrambler – 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, implementat ...
. TOMLAB supports solvers like
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. History The CPLEX Optimizer was named after the simplex method implemented in the C programming language. However, today ...
, SNOPT,
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) – wa ...
and MIDACO. * VisSim – a visual block diagram language for simulation and optimization of
dynamical system In mathematics, a dynamical system is a system in which a Function (mathematics), function describes the time dependence of a Point (geometry), point in an ambient space, such as in a parametric curve. Examples include the mathematical models ...
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, and Singapore. It has two main product offerings that provide modeling and optim ...
*
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems). It was developed ...
* APMonitor – free for academic and commercial use alike, with 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 *
CPLEX IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX) is an optimization software package. History The CPLEX Optimizer was named after the simplex method implemented in the C programming language. However, today ...
*
Couenne Convex Over and Under ENvelopes for Nonlinear Estimation (Couenne) is an open-source library for solving global optimization problems, also termed mixed integer nonlinear optimization problems. A global optimization problem requires to minimize ...
– An open source solver for the deterministic global optimization of MINLPs licensed under the Eclipse Public License. * FICO Xpress * Galahad library *
Gekko ''Gekko'' is a genus of Southeast Asian geckos, Common name, commonly known as true geckos or calling geckos, in the Family (biology), family Gekkonidae. Although species such as ''Gekko gecko'' (tokay gecko) are very widespread and common, some ...
* Gurobi Optimizer - free for academic users * LIONsolver * 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 criteria, from some set of available alternatives. It is generally divided into two subfiel ...
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 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 Pyomo is a collection of Python software packages for formulating optimization models. Pyomo was developed by William Hart and Jean-Paul Watson at Sandia National Laboratories and David Woodruff at University of California, Davis. Significan ...
collection of Python software packages for formulating optimization models.
UFO
Fortran package for numerical optimization * WORHP


See also

* 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

{{Mathematical optimization software * Optimization software