A large number of solvers for mathematical programming models have been hooked up to GAMS. The tables below provide a brief description of each solver, the model types each solver is cabable of solving, and the platforms supported by each solver. For general information on using GAMS solvers, see Solver Usage.
Solver | Vendor | Description |
---|---|---|
ALPHAECP 2.11 | Abo University | MINLP solver based on the extended cutting plane (ECP) method |
ANTIGONE 1.1 | Princeton University | Deterministic global optimization for MINLP |
BARON | The Optimization Firm, LLC | Branch-And-Reduce Optimization Navigator for proven global solutions |
CBC 2.10 | COIN-OR Foundation | High-performance LP/MIP solver |
CONOPT 3 | ARKI Consulting and Development | Large scale NLP solver |
CONOPT 4 | ARKI Consulting and Development | Large scale NLP solver |
CONVERT | GAMS Development Corp | Framework for translating modes into scalar models of other languages |
COPT 7.1 | Cardinal Operations | High-performance LP/MIP solver |
CPLEX 22.1 | IBM ILOG | High-performance LP/MIP solver |
DE | GAMS Development Corp | Generates and solves the deterministic equivalent of a stochastic program, included in EMP/SP |
DECIS | G. Infanger, Inc. | Large scale stochastic programming solver |
DICOPT 2 | GAMS Development Corp | Framework for solving MINLP models |
EXAMINER | GAMS Development Corp | A tool for examining solution points and assessing their merit |
GAMSCHK | Bruce McCarl | A System for Examining the Structure and Solution Properties of Linear Programming Problems Solved using GAMS |
GUROBI 11.0 | Gurobi Optimization | High performance LP/MIP solver |
GUSS | GAMS Development Corp | A framework for solving many instances of related models efficiently (Gather-Update-Solver-Scatter) |
HiGHS 1.8 | ERGO | High performance LP/MIP solver |
IPOPT 3.14 | COIN-OR Foundation | Interior Point Optimizer for large scale nonlinear programming |
JAMS | GAMS Development Corp | Solver to reformulate extended mathematical programs (incl. LogMIP) |
KESTREL | NEOS | Framework for using remote NEOS solvers with a local GAMS system |
KNITRO 14.1 | Artelys | Large scale NLP and MINLP solver |
LINDO 15.0 | Lindo Systems Inc. | A stochastic solver from Lindo Systems, Inc. Includes an unrestricted version of LINDOGLOBAL |
LINDOGLOBAL 15.0 | Lindo Systems Inc. | MINLP solver for proven global solutions |
MILES | University of Colorado at Boulder | MCP solver |
MINOS 5.6 | Stanford University | NLP solver |
MOSEK 10 | MOSEK ApS | Large scale mixed-integer conic programming solver |
NLPEC | GAMS Development Corp | MPEC to NLP translator that uses other GAMS NLP solvers |
ODHCPLEX 7 | Optimization Direct Inc | ODHeuristic on top of Cplex |
PATHNLP | University of Wisconsin - Madison | Large scale NLP solver for convex problems |
PATH | University of Wisconsin - Madison | Large scale MCP solver |
QUADMINOS 5.6 | Stanford University | Quad-precision NLP solver |
RESHOP 0.3 | Olivier Huber | REformulation Solver for Hierarchical Optimization Problems |
SBB | ARKI Consulting and Development | Branch-and-Bound algorithm for solving MINLP models |
SCIP 9.1 | Zuse Institute Berlin et.al. | High-performance Constraint Integer Programming solver |
SHOT 1.1 | Abo Akademi University | MINLP solver based on the extended supporting hyperplane (ESH) method |
SNOPT 7.7 | Stanford University | Large scale SQP based NLP solver |
SOPLEX 7.1 | Zuse Institute Berlin | High-performance LP solver |
XPRESS 43.01 | FICO | High performance LP/MIP and SLP based global MINLP solver |
Model Types
GAMS is able to formulate models in many different types of problem classes or model types. Typically, a solver will be capable of solving (i.e. will accept as input) more than one model type. The solver/model type matrix shows which solver is capable of which model type:
LP | MIP | NLP | MCP | MPEC | CNS | DNLP | MINLP | QCP | MIQCP | EMP** | Stoch. | Global | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALPHAECP | ✔ | ✔ | |||||||||||
ANTIGONE | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||||
BARON | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||
CBC | ✔ | ✔ | |||||||||||
CONOPT 3 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
CONOPT 4 | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
COPT | ✔ | ✔ | ✔ | ✔ | |||||||||
CPLEX | ✔ | ✔ | ✔ | ✔ | |||||||||
DECIS | ✔ | ✔ | |||||||||||
DICOPT | ✔ | ✔ | |||||||||||
GUROBI | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
GUSS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
IPOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
JAMS | ✔ | ||||||||||||
HiGHS | ✔ | ✔ | |||||||||||
KESTREL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
KNITRO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
LINDO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | ||||
LINDOGLOBAL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
MILES | ✔ | ||||||||||||
MINOS | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
MOSEK | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||
NLPEC | ✔ | ✔ | |||||||||||
ODHCPLEX | ✔ | ✔ | |||||||||||
PATH | ✔ | ✔ | |||||||||||
QUADMINOS | ✔ | ||||||||||||
RESHOP | ✔ | ||||||||||||
SBB | ✔ | ✔ | |||||||||||
SCIP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * | |||||
SHOT | ✔ | ✔ | |||||||||||
SNOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
SOPLEX | ✔ | ||||||||||||
XPRESS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ * |
*
deterministic global solver **
Here model type EMP excludes EMP-SP
When choosing a solver, some judgement should be applied when considering the listed model type capabilities for the solver - the same capability "check boxes" does not imply equality in capacity or suitability. For example, take a hypothetical solver WeOpt designed to solve MINLP models. Since the problem class MINLP includes NLP, MIP, and LP as subclasses, solver WeOpt could include these capabilities also. If WeOpt is also a good performer on NLP models, it would include that capability. But if it does not shine at all as a MIP or LP solver, we would choose not to include MIP and LP in the capability list for WeOpt. In such a case one can always solve using a more general model type (e.g. solve an LP model as NLP so WeOpt can be used), but WeOpt will not advertise itself as an LP solver. Since the WeOpt solver does not even recognize MCP or MPEC models, we don't include those capabilities.
There are two types of non-linear solvers: local and global. A local solver can find a local optimum but generally cannot comment on global optimality of the solution. A local optimum is a point where the objective value is better than its neighboring points but could be worse than a distant point. On the other hand, a global solver can find and prove that the obtained solution is a global optimum i.e., there is no feasible solution that would result in a better objective value. It is worth noting that a local solver can solve a model to global optimality in some special cases. In the table shown, the entries with * in the column Global indicate solvers that can solve a model to global optimality.
There are other differences in solvers that are difficult to quantify or cannot be captured by a capability table like the one shown. For example, for nonconvex NLP or QCP models, one solver could look only for first-order stationary points, another for local solutions, a third for local solutions using a scatter search or similar search heuristic, and a fourth could do a true global search for the global optimum. The relative merits (measured typically by speed alone) of solvers is the subject of considerable benchmarking activity and discussion.
The GAMS sales team can help answer questions you may have about solver capability. We also offer free evaluation licenses to help you decide what solvers are most suitable for your models.
Supported Platforms
The solver/platform matrix shows which platforms each solver is supported on. In addition, where a vendor has discontinued solver support for a particular platform and we continue to ship the last available supported version, this version number is indicated as well.
x86 64bit MS Windows | x86 64bit Linux | x86 64bit macOS | arm 64bit macOS | |
---|---|---|---|---|
ALPHAECP 2.11 | ✔ | ✔ | ✔ | ✔ |
ANTIGONE 1.1 | ✔ | ✔ | ✔ | ✔ |
BARON | ✔ | ✔ | ✔ | ✔ |
CBC 2.10 | ✔ | ✔ | ✔ | ✔ |
CONOPT 3 | ✔ | ✔ | ✔ | ✔ |
CONOPT 4 | ✔ | ✔ | ✔ | ✔ |
COPT 7.1 | ✔ | ✔ | ✔ | ✔ |
CPLEX 22.1 | ✔ | ✔ | ✔ | ✔ |
DECIS | ✔ | ✔ | ✔ | ✔ |
DICOPT 2 | ✔ | ✔ | ✔ | ✔ |
GUROBI 11.0 | ✔ | ✔ | ✔ | ✔ |
GUSS | ✔ | ✔ | ✔ | ✔ |
IPOPT 3.14 | ✔ | ✔ | ✔ | ✔ |
JAMS | ✔ | ✔ | ✔ | ✔ |
HiGHS 1.8 | ✔ | ✔ | ✔ | ✔ |
KESTREL | ✔ | ✔ | ✔ | ✔ |
KNITRO 14.1 | ✔ | ✔ | ✔ | ✔ |
LINDO 15.0 | ✔ | ✔ | ✔ | ✔ |
LINDOGLOBAL 15.0 | ✔ | ✔ | ✔ | ✔ |
MILES | ✔ | ✔ | ✔ | ✔ |
MINOS 5.6 | ✔ | ✔ | ✔ | ✔ |
MOSEK 10 | ✔ | ✔ | ✔ | ✔ |
NLPEC | ✔ | ✔ | ✔ | ✔ |
ODHCPLEX 7 | ✔ | ✔ | ||
PATH | ✔ | ✔ | ✔ | ✔ |
QUADMINOS 5.6 | ✔ | ✔ | ✔ | ✔ |
RESHOP 0.3 | ✔ | ✔ | ✔ | ✔ |
SBB | ✔ | ✔ | ✔ | ✔ |
SCIP 9.1 | ✔ | ✔ | ✔ | ✔ |
SHOT 1.1 | ✔ | ✔ | ✔ | ✔ |
SNOPT 7.7 | ✔ | ✔ | ✔ | ✔ |
SOPLEX 7.1 | ✔ | ✔ | ✔ | ✔ |
XPRESS 43.01 | ✔ | ✔ | ✔ | ✔ |