Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exact-0.2.1.tar.gz (780.6 kB view details)

Uploaded Source

Built Distribution

exact-0.2.1-py3-none-any.whl (811.5 kB view details)

Uploaded Python 3

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

Hashes for exact-0.2.1.tar.gz
Algorithm Hash digest
SHA256 41653fee2f3cd51cf6ebb1d97a456b20fc8bd0c2ac86d67a72ecb6ad1278103c
MD5 e39c26d42497e284e75f92d209bbeae0
BLAKE2b-256 776601ee1432c29c46b87be7776344969af62b566fcaa4200793cd18027089f5

See more details on using hashes here.

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

Hashes for exact-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 416752b9bccfb460bcd6c2af018e6badde818f578601689c170f4709c381e70d
MD5 d623ccddec821212da6050b58bf0a1ca
BLAKE2b-256 aa21e5f30678041565096a0fd773daa886039cd44151fba7c18edcc1e680ecbe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page