Solver Settings
HOPE can use several solvers to solve its LP and MILP optimisation problems.
Built-in open-source solvers
The following solvers are installed automatically with HOPE and need no extra setup:
| Solver | Key in settings file | Notes |
|---|---|---|
| HiGHS | highs | Recommended default — fast LP/MILP, no license required |
| GLPK | glpk | Reliable LP/MILP baseline |
| Clp | clp | LP only |
| Cbc | cbc | LP/MILP |
Set the active solver in Settings/HOPE_model_settings.yml:
solver: highsCommercial solvers (optional)
Gurobi, SCIP, and CPLEX are supported but are not installed by default. Because they require a separate license they must be added to your Julia environment manually — HOPE loads them on demand when a case requests them. These optional integrations use Julia package extensions, so they require Julia 1.9 or later.
Setup steps
Step 1 — Obtain a license.
- Gurobi — free academic license available
- SCIP — free for academic use
- CPLEX — free academic license via IBM Academic Initiative
Step 2 — Install the solver and its Julia package.
For Gurobi, download and install the Gurobi solver from gurobi.com, set the GRB_LICENSE_FILE environment variable to point to your gurobi.lic file, then add the Julia package:
import Pkg
Pkg.activate(".") # activate the HOPE project environment
Pkg.add("Gurobi") # substitute "SCIP" or "CPLEX" as neededStep 3 — Set the solver in the case settings file.
# Settings/HOPE_model_settings.yml
solver: gurobi # or: scip / cplexHOPE will issue a clear error if the package is missing or the license is invalid.
Solver settings files
Each solver reads its parameters from a YAML file in the case Settings/ directory:
| File | Solver |
|---|---|
highs_settings.yml | HiGHS |
glpk_settings.yml | GLPK |
clp_settings.yml | Clp |
cbc_settings.yml | Cbc |
gurobi_settings.yml | Gurobi |
scip_settings.yml | SCIP |
cplex_settings.yml | CPLEX |
Most users do not need to modify these files. When tuning is required, consult the documentation for the chosen solver.