Documentation
Library manual
Reference for the self-contained C++20 divisible-load scheduling library that powers this portal: what it is for, what it covers, how to build and use it, and how it is licensed. Concepts and notation are defined in the Knowledge base. This manual is a living document and will grow as new problem classes and solvers are added.
Building
Two CMake configurations are provided. The full build links the open-source
HiGHS MILP solver
and enables the two mixed-integer-program solvers (exact-milp
and milp-multi). The dependency-free build uses the
in-house simplex back-end and covers the remaining ten solvers with no external libraries. Both builds
produce the dls CLI and the
libdls_c.so C-ABI shared library. The
DLS_LIB environment variable points the Python binding
at a specific libdls_c.so when the auto-discovery path
is insufficient.
# full build: HiGHS MILP engine + C-ABI shared library + CLI $ cmake -B build-highs -DDLS_WITH_HIGHS=ON $ cmake --build build-highs -j$(nproc) # produces: build-highs/bin/dls build-highs/bin/libdls_c.so # solvers available: all 12 including exact-milp and milp-multi # dependency-free build: in-house simplex, no external libraries $ cmake -B build && cmake --build build -j$(nproc) # produces: build/bin/dls build/bin/libdls_c.so # solvers available: 10 (exact-milp and milp-multi require HiGHS) # point the Python binding at a specific libdls_c.so $ export DLS_LIB=$(pwd)/build-highs/bin/libdls_c.so