Given atransformation between input and output values, described by amathematical 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.
Anoptimization problem, (in this case a minimization problem), can be represented in the following way:
- Given: afunctionf :A
R from somesetA to thereal numbers - Search for: an elementx0 inA such thatf(x0) ≤f(x) for allx inA.
In continuous optimization,A is somesubset of theEuclidean spaceRn, often specified by a set ofconstraints, equalities or inequalities that the members ofA have to satisfy. In combinatorial optimization,A is somesubset of a discrete space, like binary strings, permutations, or sets of integers.
The use ofoptimization software requires that the functionf is defined in a suitableprogramming language and connected at compilation or run time to the optimization software. The optimization software will deliver input values inA, the software module realizingf will deliver the computed valuef(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 functionf, or a given optimization software can be used for different functionsf.
The following tables provide a list of notable optimization software organized according to license and business model type.
Free and open-source software
[edit]
| Name | License | Description |
|---|
| ALGLIB | GPL | dual licensed (GPL/commercial) optimization library (LP, QP and nonlinear programming problems), optionally usingautomatic 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 inC++. |
| GEKKO | MIT | machine learning and optimization of mixed-integer and differential algebraic equations in Python. |
| GLPK | GPL | GNU Linear Programming Kit with CAPI. |
| HiGHS | MIT | linear programming (LP), mixed integer programming (MIP), and convex quadratic programming (QP).[1] |
| IPOPT | EPL (wasCPL) | large scale nonlinear optimizer for continuous systems (requires gradient), C++ (formerlyFortran andC). It became a part of COIN-OR.[2] |
| MINUIT (now MINUIT2) | LGPL | unconstrained optimizer internally developed atCERN. |
| OpenMDAO | Apache License | Multidisciplinary Design, Analysis, and Optimization (MDAO) framework, written inPython. The development is led out of theNASA Glenn Research Center, with support from theNASA 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 – 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 – modelling language for large-scale linear, mixed integer and nonlinear optimization.
- ANTIGONE – adeterministic global optimization 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 – optimization of algebraic nonlinear and mixed-integer nonlinear problems.
- COMSOL Multiphysics – a cross-platformfinite element analysis, solver andmultiphysicssimulation 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 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 – (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 fordata mining,analytics, modellingLearning andIntelligentOptimizatioN and reactivebusiness 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 optimization. Constrained and unconstrained. Global optimization with add-on toolbox.
- MATLAB – linear, integer, quadratic, and nonlinear problems withOptimization 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-objectiveoptimization based onevolutionary 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 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 – adeterministic 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 optimization platform developed by Noesis Solutions.
- optiSLang – software for CAE-based sensitivity analysis, optimization, and robustness evaluation.
- OptiStruct – 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 byDATADVANCE.
- 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 forMATLAB. TOMLAB supports solvers likeCPLEX,SNOPT,KNITRO andMIDACO.
- VisSim – a visualblock diagram language for simulation and optimization ofdynamical systems.
- WORHP – a large-scale sparse solver for continuous nonlinear optimization.
Freeware/free for academic use
[edit]