OR-Tools integration¶
OR-Tools is an open-source software suite for optimization developed by Google.
It is compatible with most of existing open-source & commercial solvers.
Antares Simulator uses OR-Tools as an interface, in order to ensure its own compatibility with multiple solvers.
Available solvers¶
These are the solver names and enum, defined in the OR-Tools API.
Linear optimization¶
OR-Tools solver name | Enum | Usage | Website |
---|---|---|---|
clp |
CLP_LINEAR_PROGRAMMING | Free-to-use | https://github.com/coin-or/Clp |
glpk_lp |
GLPK_LINEAR_PROGRAMMING | Free-to-use | https://www.gnu.org/software/glpk |
glop |
GLOP_LINEAR_PROGRAMMING | Free-to-use | https://developers.google.com/optimization/lp/glop |
highs_lp |
HIGHS_LINEAR_PROGRAMMING | Free-to-use | https://highs.dev |
pdlp |
PDLP_LINEAR_PROGRAMMING | Free-to-use | https://developers.google.com/optimization/lp/pdlp_math |
sirius_lp 1 |
SIRIUS_LINEAR_PROGRAMMING | Free-to-use | https://github.com/rte-france/sirius-solver |
gurobi_lp |
GUROBI_LINEAR_PROGRAMMING | Commercial | https://www.gurobi.com |
cplex_lp |
CPLEX_LINEAR_PROGRAMMING | Commercial | https://www.ibm.com/fr-fr/analytics/cplex-optimizer |
xpress_lp |
XPRESS_LINEAR_PROGRAMMING | Commercial | https://www.fico.com/en/products/fico-xpress-solver |
Mixed real integer optimization¶
OR-Tools solver name | Enum | Usage | Website |
---|---|---|---|
scip |
SCIP_MIXED_INTEGER_PROGRAMMING | Free-to-use | https://www.scipopt.org |
glpk |
GLPK_MIXED_INTEGER_PROGRAMMING | Free-to-use | https://www.gnu.org/software/glpk |
cbc |
CBC_MIXED_INTEGER_PROGRAMMING | Free-to-use | https://github.com/coin-or/Cbc |
highs |
HIGHS_MIXED_INTEGER_PROGRAMMING | Free-to-use | https://highs.dev |
sirius 1 |
SIRIUS_MIXED_INTEGER_PROGRAMMING | Free-to-use | https://github.com/rte-france/sirius-solver |
gurobi |
GUROBI_MIXED_INTEGER_PROGRAMMING | Commercial | https://www.gurobi.com |
cplex |
CPLEX_MIXED_INTEGER_PROGRAMMING | Commercial | https://www.ibm.com/fr-fr/analytics/cplex-optimizer |
xpress |
XPRESS_MIXED_INTEGER_PROGRAMMING | Commercial | https://www.fico.com/en/products/fico-xpress-solver |
Constraint optimization¶
OR-Tools solver name | Enum | Usage | Optimization type |
---|---|---|---|
bop |
BOP_INTEGER_PROGRAMMING | Free-to-use | Boolean |
sat |
SAT_INTEGER_PROGRAMMING | Free-to-use | Boolean integer |
knapsack |
KNAPSACK_MIXED_INTEGER_PROGRAMMING | Free-to-use |
Integration in Antares Simulator¶
Antares Simulator needs 2 types of solvers: * A linear solver * A mixed real integer solver
While the OR-Tools interface allows using multiple solvers, Antares restricts this usage.
The Antares Simulator user can select the solvers using the ortools-solver
command-line option. Here are the allowed values:
ortools-solver |
Linear solver | Mixed real integer solver |
---|---|---|
sirius (default) |
SIRIUS_LINEAR_PROGRAMMING | SIRIUS_MIXED_INTEGER_PROGRAMMING |
coin |
CLP_LINEAR_PROGRAMMING | CBC_MIXED_INTEGER_PROGRAMMING |
xpress |
XPRESS_LINEAR_PROGRAMMING | XPRESS_MIXED_INTEGER_PROGRAMMING |
glpk |
GLPK_LINEAR_PROGRAMMING | GLPK_MIXED_INTEGER_PROGRAMMING |
scip |
SCIP_MIXED_INTEGER_PROGRAMMING | SCIP_MIXED_INTEGER_PROGRAMMING |
The following commercial solvers are not yet supported by Antares Simulator, because of unmet pre-requisites:
ortools-solver |
Linear solver | Mixed real integer | Waiting for |
---|---|---|---|
cplex |
CPLEX_LINEAR_PROGRAMMING | CPLEX_MIXED_INTEGER_PROGRAMMING | Update OR-Tools building process for CPLEX support |
gurobi |
GUROBI_LINEAR_PROGRAMMING | GUROBI_MIXED_INTEGER_PROGRAMMING | Update OR-Tools building process for GUROBI support |
-
SIRIUS solver is only supported in RTE's builds of OR-Tools. ↩↩