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.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

exact-0.2.0-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file exact-0.2.0.tar.gz.

File metadata

  • Download URL: exact-0.2.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/2.7.18 Linux/5.4.0-81-generic

File hashes

Hashes for exact-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a8d59484cc581708e4d1eea7e4a17bfdfc09345304ecc584a4d11b41417f96b5
MD5 ffcbffba698edb19205588d24d8fcdaf
BLAKE2b-256 af3133c3d84b35e582e4af2780be4c96bf39f5116d310e1ac9b4d655109d36f6

See more details on using hashes here.

File details

Details for the file exact-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: exact-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/2.7.18 Linux/5.4.0-81-generic

File hashes

Hashes for exact-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b428b57e0897703fdfcd979cefa0dff5e8a16cb929736f0967c238c2e158004
MD5 c029b25f95cb50da6a1092468ce9cc3c
BLAKE2b-256 c3513d33184bf310beb23e4bb82c8fddc6cb82499c758e6dc2f68315fc79cf6d

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