Solvers availability
AIMMS, as a complete optimization modeling system, comes with all functionality to develop and create complete optimization applications. This means that a large set of mathematical model types (Linear, Mixed Integer, Nonlinear, Mixed Integer Nonlinear, etc.) can be formulated within AIMMS. AIMMS uses solvers to optimize mathematical models. Depending on the solvers available with your license, you are able to solve the models at a requested performance (high and medium performance solvers do exist for most model types).
The standard license of AIMMS includes the world-class solver CPLEX. The installation package of AIMMS also has the COIN-OR solvers CBC (LP/MIP) and IPOPT (NLP) included; these two solvers are not owned or serviced by the AIMMS company – they are by the open source community – but can be also used by any AIMMS user. This set of solvers, together with the freely available Advanced Algorithms for Mathematical Programs set of AIMMS such as AIMMS Outer Approximation, Benders Decomposition and more – offers a great start for creating optimization applications. Of course, the set of solvers available in a license can be extended by other commercial solver add-ons.
All solvers are connected to AIMMS by using the AIMMS Open Solver Interface, which link solvers through a collection of C++ interfaces.
Contents
Available Solvers in AIMMS
Solver |
Description |
Available on AIMMS Cloud * |
---|---|---|
AOA |
White box AIMMS Outer Approximation module for solving mixed integer nonlinear programming |
✔ |
BARON |
Branch-And-Reduce Optimization solver for global optimization |
✖ (on Roadmap to add) |
CBC |
Open source linear programming / mixed integer programming solver at COIN-OR |
✖ (use CPLEX) |
CONOPT |
Large-scale nonlinear programming solver from Arki Consulting |
✔ |
COPT |
High performance linear programming / mixed integer programming solver from Cardinal Operations |
✔ |
CP Optimizer |
State-of-the-art constraint programming solver from IBM ILOG |
✔ |
CPLEX |
High performance linear programming / mixed integer programming solver from IBM ILOG |
✔ |
GUROBI |
High performance linear programming / mixed integer programming solver from Gurobi Optimization |
✔ (requires Gurobi Web License Service) |
IPOPT |
Open source Interior Point optimizer for large-scale nonlinear optimization at COIN-OR |
✖ (use CONOPT or Knitro) |
Knitro |
Large-scale nonlinear programming solver from Artelys |
✔ |
MINOS |
Nonlinear programming solver from Stanford University |
✖ (use CONOPT or Knitro) |
Octeract |
Parallel branch-and-bound solver for global optimization |
✖ (on Roadmap to add) |
ODH-CPLEX |
High performance mixed integer programming CPLEX solver add-on from Optimization Direct |
✔ |
PATH |
Newton-based solver for solving mixed complementarity programming |
✖ (use Knitro) |
RO |
Robust Optimization Add-on (see below) |
✔ |
SNOPT |
Nonlinear programming solver from Stanford University |
✖ (use CONOPT or Knitro) |
- *
Because the AIMMS Cloud is a serviced platform we did not include all solvers that are available in an AIMMS Developer setup. At this moment, we added the most common solvers used in production setups and have a minimal requirement that a solver support team is available to handle issues that might arise (hence Open Source solvers are not part of the AIMMS Cloud setup). If you have any requests, please contact us via support@aimms.com.
Robust Optimization Add-on
AIMMS offers a commercial Robust Optimization Add-on (RO) to incorporate uncertainty (e.g. development of the energy price) into your model. AIMMS RO considers data uncertainties against whose realizations the solution is required to remain feasible. This uncertainty may occur in any part of the model data. Partial feasibility can be included by adding probabilities to constraints (e.g. the chance that demand is met is at least 95%).
You can add this add-on upon purchase of your AIMMS licenses, or add it later; please be advised that the RO Add-on recommends an AIMMS license that also contains the CPLEX Solver.
Note: This Robust Optimization add-on was built in co-operation with professor Aharon Ben-Tal and the Technion Institute.
Supported Math Program Types
If you would like to extend the power of AIMMS (beyond the open source COIN-OR solvers and AOA algorithm) with commercial solvers, we offer you the possibility to add commercial solvers to AIMMS. If you already have a license for one of the available additional solvers (in the form of a callable library), you can also request a Solver Link and use your existing solver license with AIMMS.
Solver |
LP |
MIP |
QP |
MIQP |
QCP |
MIQCP |
NLP |
MINLP |
MCP |
MPCC |
GO |
CP |
---|---|---|---|---|---|---|---|---|---|---|---|---|
CBC |
✔ |
✔ |
||||||||||
IPOPT |
✔ |
✔ |
✔ |
✔ |
||||||||
AOA |
✔ |
✔ |
✔ |
Commercial Solver |
LP |
MIP |
QP |
MIQP |
QCP |
MIQCP |
NLP |
MINLP |
MCP |
MPCC |
GO |
CP |
---|---|---|---|---|---|---|---|---|---|---|---|---|
CPLEX* |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||||||
GUROBI* |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
ODH-CPLEX* |
✔ |
✔ |
✔ |
|||||||||
COPT* |
✔ |
✔ |
✔ |
✔ |
||||||||
CP Optimizer* |
✔ |
|||||||||||
CONOPT* |
✔ |
✔ |
✔ |
✔ |
||||||||
Knitro* |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||||
SNOPT |
✔ |
✔ |
✔ |
|||||||||
MINOS |
✔ |
✔ |
✔ |
|||||||||
BARON* |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||||
Octeract* |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||||
PATH |
✔ |
* Includes the use of parallel threads without any extra charge
Math Program Types Explanation
Abbreviations |
Mathematical Program Type |
---|---|
LP |
Linear Program |
MIP |
Mixed Integer Program |
QP |
Quadratic Program |
MIQP |
Mixed Integer Quadratic Program |
QCP |
Quadratically Constrained Program |
MIQCP |
Mixed Integer Quadratically Constrained Program |
NLP |
NonLinear Program |
MINLP |
Mixed Integer NonLinear Program |
MCP |
Mixed Complementarity Program |
MPCC |
Mathematical Program with Complementarity Constraints |
GO |
Global Optimalization |
CP |
Constraint Program |
LP and MIP Solver Features
General Features |
CPLEX |
GUROBI |
COPT |
CBC |
---|---|---|---|---|
Handle updates |
✔ |
✔ |
✔ |
✔ |
Tuning tool |
✔ |
✔ |
||
Benders decomposition |
✔ |
|||
Network algorithm |
✔ |
✔ |
||
Multiple models |
✔ |
✔ |
✔ |
|
Parallel solver sessions |
✔ |
✔ |
✔ |
|
Ranged constraints |
✔ |
✔ |
✔ |
✔ |
Modeling assistance |
✔ |
|||
Presolve status information |
✔ |
|||
Solve MPS file |
✔ |
✔ |
✔ |
✔ |
LP Features |
CPLEX |
GUROBI |
COPT |
CBC |
---|---|---|---|---|
Barrier |
✔ |
✔ |
✔ |
✔ |
Barrier crossover |
✔ |
✔ |
✔ |
✔ |
Parallel solving barrier |
✔ |
✔ |
✔ |
|
Concurrent LP |
✔ |
✔ |
✔ |
|
Load basis |
✔ |
✔ |
✔ |
✔ |
IIS |
✔ |
✔ |
✔ |
|
Range RHS |
✔ |
✔ |
||
Range objective |
✔ |
✔ |
||
Extreme / unbounded ray |
✔ |
✔ |
✔ |
|
Farkas infeasibility proof |
✔ |
✔ |
✔ |
|
Subgradient sensitivity |
✔ |
✔ |
MIP Features |
CPLEX |
GUROBI |
COPT |
CBC |
---|---|---|---|---|
Parallel solving MIP |
✔ |
✔ |
✔ |
|
Concurrent MIP |
✔ |
|||
Non-traditional search |
✔ |
✔ |
||
Callback incumbent (intermediate solutions) |
✔ |
✔ |
||
Callback branch |
✔ |
|||
Callback candidate |
✔ |
|||
Callback heuristic |
✔ |
✔ |
||
Callback user cut |
✔ |
✔ |
||
Callback lazy constraint |
✔ |
✔ |
||
User cut pool |
✔ |
|||
Lazy constraint pool |
✔ |
✔ |
||
Indicator constraints |
✔ |
✔ |
||
SOS 1 |
✔ |
✔ |
✔ |
|
SOS 2 |
✔ |
✔ |
✔ |
|
Solution pool |
✔ |
✔ |
✔ |
|
MIP start |
✔ |
✔ |
✔ |
✔ |
Variable hints |
✔ |
|||
Solution improvement heuristic |
✔ |
✔ |
||
Feasibility pump |
✔ |
✔ |
✔ |
|
RINS heuristic |
✔ |
✔ |
✔ |
|
Display cuts and/or presolved model |
✔ |
Nonlinear Features |
CPLEX |
GUROBI |
COPT |
CBC |
---|---|---|---|---|
QP |
✔ |
✔ |
✔ |
|
MIQP |
✔ |
✔ |
||
QCP |
✔ |
✔ |
✔ |
|
MIQCP |
✔ |
✔ |
||
Non-convex QP & MIQP |
✔ |
✔ |
||
Non-convex QCP & MIQCP |
✔ |
|||
SOCP (second order cone) |
✔ |
✔ |
✔ |
|
MISOCP (mixed integer SOCP) |
✔ |
✔ |
||
Global optimization |
✔ |