A re-implementation of the TipTop algorithm from this paper in Rust.
Sampling is done using this library and solving is done with Gurobi via this library or CPLEX via this library.
Note that while the LT model is technically supported, it was not used in the corresponding paper and has not been extensively tested.
Gurobi is the default due to some memory issues we ran into in recent versions of CPLEX. It is recommended to use Gurobi if possible.
After installing Rust and either Gurobi or CPLEX, simply run the following to compile the optimized version:
cargo build --release
To build the unoptimized version (for debugging only---it will be very slow), run cargo build
instead.
The graph input is expected to be in Capngraph format. See the linked repository for conversion tools.
The cost/benefit inputs are constructed using the included binary.
Obviously, the method is taken from here. The code itself is wholly mine at this point, and is made available under the BSD 3-Clause License.