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:

SolverKey in settings fileNotes
HiGHShighsRecommended default — fast LP/MILP, no license required
GLPKglpkReliable LP/MILP baseline
ClpclpLP only
CbccbcLP/MILP

Set the active solver in Settings/HOPE_model_settings.yml:

solver: highs

Commercial 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 needed

Step 3 — Set the solver in the case settings file.

# Settings/HOPE_model_settings.yml
solver: gurobi    # or: scip / cplex

HOPE 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:

FileSolver
highs_settings.ymlHiGHS
glpk_settings.ymlGLPK
clp_settings.ymlClp
cbc_settings.ymlCbc
gurobi_settings.ymlGurobi
scip_settings.ymlSCIP
cplex_settings.ymlCPLEX

Most users do not need to modify these files. When tuning is required, consult the documentation for the chosen solver.