Decision Diagram Suite
Our DD-suite code provides a versatile implementation of Decision Diagrams (DDs) in Python and C++ for solving optimization problems: Knapsack, Independent Set, Set Cover, SOC Knapsack and Scheduler. The following guide will help you set-up the code and use it.
Requisites
Make sure you have in your system
-
python > 3.11
-
Gurobi Python Api version > 11.0.0
-
bitarray > 3.0.0
-
c++ > 17
-
cmake > 3.27
-
Boost version > 1.86.0_2
-
Gurobi C++ API version > 13.0.2
-
Google Test > 1.15.2 (for unittest)
For a complete use of the program, it is recommended to have a tool that can read documents with a .gmlextension. Our code exports the DD graph using such a file format that can be visualized using, for instance, the free software yED.
Installation
Clone this repository and navigate to the directory of the language you want to use. The Python implementation lives in DD_python/ and the C++ implementation in DD_c_plusplus/.
Links
Here is a list of useful links to get started.