XADD package in Python
Project description
Python Implementation of XADD
This repository implements the Python version of XADD (eXtended Algebraic Decision Diagrams) which was first introduced in Sanner et al. (2011); you can find the original Java implementation from here.
Our Python XADD code uses Sympy for symbolically maintaining all variables and related operations, and PULP is used for pruning unreachable paths. Note that we only check linear conditionals. If you have Gurobi installed and configured in the conda environment, then PULP will use Gurobi for solving (MI)LPs; otherwise, the default solver (CBC) is going to be used.
Note that the implementation for EMSPO --- Exact symbolic reduction of linear Smart Predict+Optimize to MILP (Jeong et al., ICML-22) --- has been moved to the branch emspo.
Installation
Load your Python virtual environment then type the following commands for package installation
pip install xaddpy
# Optional: if you want to use Gurobi for the 'reduce_lp' method that prunes out unreachable partitions using LP solvers
pip install gurobipy # If you have a license
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file xaddpy-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: xaddpy-0.1.4-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 148dad0e9567a13c80f463d4a136a0eb4397a5de956ca0d2e19361ed00171c9f |
|
MD5 | f335dce717c0a66843025dd239f409be |
|
BLAKE2b-256 | 19a4126b6f9b2778efaa39278bf0ff679c3897bec47a6bc4f7e062090d7239db |