A Python interface to the Exact integer linear programming solver
Project description
Exact
Exact solves decision and optimization problems formulated as binary linear programs, also known as 0-1 integer linear programs or pseudo-Boolean formulas.
Exact is a fork of RoundingSat and improves upon its predecessor in reliability, performance and ease-of-use. The name "Exact" reflects that the answers are fully sound, as approximate and floating-point calculations only occur in heuristic parts of the algorithm. As such, Exact can soundly be used for verification and theorem proving, where its envisioned ability to emit machine-checkable certificates of optimality and unsatisfiability should prove useful.
Features
- Native conflict analysis over binary linear constraints, constructing full-blown cutting planes proofs.
- Highly efficient watched propagation routines.
- Seamless use of arbitrary precision arithmetic.
- Hybrid linear (top-down) and core-guided (bottom-up) optimization.
- Optional integration with the SoPlex LP solver.
- Compiles on macOS.
- Under development: generation of certificates of optimality and unsatisfiability that can be automatically verified by VeriPB.
Usage
TODO: explain how to use this Python package
Build
after moving the .so and the headers to the folder exact
, run
$ poetry build
$ poetry publish
Citations
Origin paper with a focus on cutting planes conflict analysis:
[EN18] J. Elffers, J. Nordström. Divide and Conquer: Towards Faster Pseudo-Boolean Solving. IJCAI 2018
Integration with SoPlex:
[DGN20] J. Devriendt, A. Gleixner, J. Nordström. Learn to Relax: Integrating 0-1 Integer Linear Programming with Pseudo-Boolean Conflict-Driven Search. CPAIOR 2020 / Constraints journal
Watched propagation:
[D20] J. Devriendt. Watched Propagation for 0-1 Integer Linear Constraints. CP 2020
Core-guided optimization:
[DGDNS21] J. Devriendt, S. Gocht, E. Demirović, J. Nordström, P. J. Stuckey. Cutting to the Core of Pseudo-Boolean Optimization: Combining Core-Guided Search with Cutting Planes Reasoning. AAAI 2021
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 Distribution
Built Distribution
File details
Details for the file exact-0.2.1.tar.gz
.
File metadata
- Download URL: exact-0.2.1.tar.gz
- Upload date:
- Size: 780.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.10 Linux/5.4.0-81-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41653fee2f3cd51cf6ebb1d97a456b20fc8bd0c2ac86d67a72ecb6ad1278103c |
|
MD5 | e39c26d42497e284e75f92d209bbeae0 |
|
BLAKE2b-256 | 776601ee1432c29c46b87be7776344969af62b566fcaa4200793cd18027089f5 |
File details
Details for the file exact-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: exact-0.2.1-py3-none-any.whl
- Upload date:
- Size: 811.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.10 Linux/5.4.0-81-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 416752b9bccfb460bcd6c2af018e6badde818f578601689c170f4709c381e70d |
|
MD5 | d623ccddec821212da6050b58bf0a1ca |
|
BLAKE2b-256 | aa21e5f30678041565096a0fd773daa886039cd44151fba7c18edcc1e680ecbe |