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.

Note: CPLEX has been fully removed. If your build environment previously required a CPLEX license, that dependency is gone. No license configuration is needed to build or run the LRE Engine.
The table below summarizes the new HiGHS configuration.
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