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