Solvers
ROOC allows you to use different kinds of solvers depending on the problem you are trying to
solve.
The problems you write might have different types of variables (Real, Integer, Binary), and not all solvers can
use all of them.
You can quickly select which solver you want to use by choosing the "preset" next to the "run" button, or create
your own pipeline.
Here are the main requirements and differences for each solver:
- HiGHS solver: It uses the HiGHS solver, the most complete and performant solver in ROOC. It allows you to solve any MILP problem, so problems with any kind of variables. (Recommended)
- Auto solver: It picks the most appopriate solver depending on the problem you are trying to solve, it is the default.
- MILP solver: It uses the microlp solver, a simple solver for MILP problems (like HiGHS), slower than HiGHS.
- Real solver: It uses the Clarabel solver, a solver for models that use only Real or NonNegativeReal variables.
- Binary solver: It uses the Copper solver, a constraint programming solver that can solve problems with binary variables. All coefficients must be integers (they will be rounded otherwise).
- Integer & binary solver: It uses the Copper solver, a constraint programming solver that can solve problems with binary and integer variables. All coefficients must be integers (they will be rounded otherwise).
- Simplex solver Step by Step: It uses the internal rooc solver to show how to solve a linear problem by using the simplex method step by step. It might be useful to understand how the simplex method works, but is not reccomended to actually solve problems as it might have errors and is slow.
Alternatively, if you don't want to use the ROOC syntax to create the model, you can use the CPLEX LP format, which is a standard format to represent linear problems. And then you can choose the HiGHS CPLEX solver to solve it by using the HiGHS solver.
You can also write the model using the ROOC syntax, to then convert it to the CPLEX LP format, this way you can use any other solver that supports the CPLEX LP format.