Recent from talks
Nothing was collected or created yet.
List of optimization software
View on Wikipedia
This article needs additional citations for verification. (August 2013) |
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 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 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 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 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
[edit]Applications
[edit]Name License Description ADMB BSD nonlinear optimization framework using automatic differentiation. ASCEND GPL mathematical modelling chemical process modelling system. CUTEr GPL testing environment for optimization and linear algebra solvers. GNU Octave GPL software package using a high-level programming language, primarily intended for numerical computations; it is mostly compatible with MATLAB. Scilab CeCILL cross-platform numerical computational package and a high-level, numerically oriented programming language with a numerical optimization framework.
Software libraries
[edit]Name License Description ALGLIB GPL dual 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 GPL GNU 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) LGPL unconstrained 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. 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 – a deterministic 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-platform finite element analysis, solver and multiphysics simulation 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 for data mining, analytics, modelling Learning and Intelligent OptimizatioN and reactive business 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 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 based on evolutionary 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 – a deterministic 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 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. TOMLAB supports solvers like CPLEX, SNOPT, KNITRO and MIDACO.
- VisSim – a visual block diagram language for simulation and optimization of dynamical systems.
- WORHP – a large-scale sparse solver for continuous nonlinear optimization.
Freeware/free for academic use
[edit]- AIMMS
- AMPL
- APMonitor – free for academic and commercial use alike, with Python and MATLAB 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
- Gurobi Optimizer - free for academic users
- LIONsolver
- MIDACO – a software package for numerical optimization based on evolutionary computing.
- MINTO – integer programming 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 – collection of Python software packages for formulating optimization models.
- UFO Fortran package for numerical optimization
- WORHP
See also
[edit]References
[edit]- ^ 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.
- ^ "Projects". COIN-OR: Computational Infrastructure for Operations Research. 8 October 2014. Retrieved 10 March 2021.
List of optimization software
View on GrokipediaOpen-source software
Standalone applications
Standalone open-source optimization software encompasses complete applications designed for end-users to formulate, solve, and analyze optimization problems directly, often through command-line interfaces, scripting, or integrated development environments, without requiring embedding into larger codebases. These tools span domains such as statistical modeling, process simulation, and numerical solving, supporting a range of problem types from nonlinear to mixed-integer programming. They emphasize accessibility, extensibility, and community-driven development, enabling researchers and practitioners to tackle complex optimizations efficiently. ADMB is an automatic differentiation-based tool for nonlinear optimization and statistical modeling, primarily used for maximum likelihood estimation in complex statistical models such as those in fisheries and resource management. Developed by David Fournier at Otter Research Ltd. starting in the late 1980s, it gained prominence in the 1990s for its applications in nonlinear problems and became open-source in 2007 under the management of the ADMB Foundation, supported by organizations like NOAA Fisheries and the Gordon and Betty Moore Foundation. Key features include reverse-mode automatic differentiation via the C++ AUTODIF library for efficient gradient computation, numerical stability in model fitting, and support for random effects models through ADMB-RE, all released under a BSD-like license.[11][11][11] ASCEND serves as a modeling environment for equation-based simulation and optimization, particularly in chemical process engineering, allowing users to define models declaratively and solve them using integrated solvers. Originating from research at Carnegie Mellon University in the 1980s, it evolved into an open-source project under the GNU General Public License (GPL), with updates such as Mac OS X compatibility in version 0.9.7 released in 2009 and further enhancements in version 0.9.8, including GitHub integration, as of 2024. Core capabilities include object-oriented equation modeling for steady-state and dynamic systems, structural analysis, and seamless integration with external solvers like IPOPT for nonlinear optimization, providing exact second derivatives to enhance convergence.[12][12][12] CUTEr, now evolved into CUTEst, provides a comprehensive collection of over 1,000 test problems for benchmarking optimization algorithms, covering constrained and unconstrained nonlinear, linear, and quadratic formulations in a standardized SIF format. Released under the GNU Lesser General Public License (LGPL) version 3.0, it originated as a versatile testing environment in the 1990s and received major updates in the 2000s, with modern enhancements like thread-safe Fortran 77/90 code and dynamic memory allocation introduced in versions such as 2.3.0 (2013) and 2.5.1 for shared library support. Its primary role is in algorithm validation and comparison, facilitating reproducible experiments across platforms without altering problem data.[13][13][13] GNU Octave is a high-level interpreted language for numerical computations, featuring optimization solvers through core functions and the optional 'optim' package, which enables solving nonlinear least-squares problems and other optimization tasks through functions likelsqnonlin. Licensed under the GNU General Public License (GPL), it maintains high compatibility with MATLAB syntax and toolboxes, allowing users to port scripts with minimal changes for tasks like unconstrained and constrained optimization. Developed as a free alternative since the 1990s, its latest stable release (version 10.3.0 in 2025) supports cross-platform execution on Linux, macOS, and Windows, with visualization tools for result analysis.[14][14][14]
Scilab functions as an open-source platform for numerical computation and scientific visualization, incorporating optimization functions for solving various differentiable and non-differentiable problems, including nonlinear via optim, quadratic via quapro, least-squares via lsqrsolve, and semi-definite programming through add-on modules. Distributed under the CeCILL license (compatible with GPL), it integrates the Xcos graphical editor for modeling and simulating hybrid dynamic systems, facilitating dynamic optimization by combining block diagrams with optimization routines for control and signal processing applications. This setup supports equation-based workflows similar to MATLAB/Simulink, with hundreds of built-in functions for multidisciplinary engineering tasks.[15][15][15]
HiGHS is a high-performance standalone solver for linear programming (LP), mixed-integer programming (MIP), and convex quadratic programming (QP), capable of handling large-scale sparse models through a command-line executable. Licensed under the MIT license since its initial release in 2020, it leverages C++11 for serial and parallel computing, including multi-threaded simplex and interior-point methods to accelerate solves on modern hardware. Benchmarks demonstrate it outperforming certain commercial solvers in speed and scalability for MIP instances, as evidenced in comparative tests on standard problem sets.[16][16][16]
These applications can extend functionality by integrating with libraries like SciPy for advanced scripting in Python environments.[15]
