HiGHS Migration
From V26.1.0 onwards, the LRE Engine has been upgraded from IBM CPLEX to HiGHS as its linear programming (LP) and mixed-integer programming (MIP) solver backend. This section explains what changed, what you need to know to build and run the engine, and how to work with the new solver API.
| Aspect | HiGHS |
|---|---|
| License | HiGHS — MIT licensed, zero cost |
| Handle model | Single handle: Highs_create() |
| Global state | None — each instance is independent |
| Thread safety | Full isolation per instance |
| Startup | No auth step — always succeeds |
| Source files | LRESolverHiGHS.h/.cpp (active) |
| LP model files | LRELPModelHiGHSSolver.h/.cpp (active) |
| Solver enum value | LPSolver::HIGHS (active) |
Linux / macOS (Makefile)
The following changes apply to LRE/Makefile:
-
CPLEX include and library paths removed from CXXFLAGS and LDFLAGS
-
HiGHS include path added: -I$(ROOT)/third_party/highs/include
-
HiGHS library added to linker: -L$(ROOT)/third_party/highs/lib/linux -lhighs
-
LRESolverHiGHS.cpp and LRELPModelHiGHSSolver.cpp added to source file list
-
LRESolveriLogCPLEX.cpp and LRELPModeliLogCPLEXSolver.cpp removed from source file list
Windows (msdev_build.bat)
The following changes apply to msdev_build.bat:
-
CPLEX include and lib references removed from /I and /LIBPATH switches
-
HiGHS include path added: /I third_party\highs\include
-
HiGHS import library added: /LIBPATH:third_party\highs\lib\win64 highs.lib
-
New HiGHS .cpp files added to compilation list; CPLEX files removed