Skip to main content

An Optimization Modulo Theory Solver.

Project description

A library for OMT(BV) Solving

Optimization Modulo Theory (OMT) extends Satisfiability Modulo Theories (SMT) by incorporating optimization objectives.

The Engines

Reduce to Quantified SMT

  • Z3
  • CVC5
  • Yices-QS
  • Bitwuzla

Reduce to Weighted MaxSAT

  • The OBV-BS algorithm
  • The FM algorithm
  • The RC2 algorithm
  • Off-the-shelf MaxSAT solvers
https://github.com/FlorentAvellaneda/EvalMaxSAT

SMT-based Iterative Search

  • Linear search
  • Binary search

TBD

Integration

Exiting OMT solvers?

  • Z3 (to MaxSAT?)
  • OptiMathSAT
  • ...

Optimizations

Improvements to the OBV-BS algorithm

  • Variable Polarity Setting: prefer 1 over 0 during the search?

The relevant API (NOTE: some SAT solvers in pysat do not support this API)

    def set_phases(self, literals=[]):
        """
            Sets polarities of a given list of variables.
        """

TBD: to see how to use this API...

References

  • Sebastiani, R., & Tomasi, S. (2015). Optimization in SMT with LA(Q) cost functions. In International Conference on Principles and Practice of Constraint Programming (pp. 484-498). Springer, Cham.
  • Bjørner, N., Phan, A. D., & Fleckenstein, L. (2015). νZ-an optimizing SMT solver. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems (pp. 194-199). Springer, Berlin, Heidelberg.
  • Martins, R., Manquinho, V. M., & Lynce, I. (2014). Open-WBO: A modular MaxSAT solver. In International Conference on Theory and Applications of Satisfiability Testing (pp. 438-445). Springer, Cham.

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

pyomt-0.0.3.tar.gz (67.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyomt-0.0.3-py2.py3-none-any.whl (88.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyomt-0.0.3.tar.gz.

File metadata

  • Download URL: pyomt-0.0.3.tar.gz
  • Upload date:
  • Size: 67.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for pyomt-0.0.3.tar.gz
Algorithm Hash digest
SHA256 70617f434f8725b33cf47d0eb5d887908fb2986ffd61e48fa4b9c56dc1d42379
MD5 fc2e03878f76efee828e9af531efc5ae
BLAKE2b-256 35186537bb0ac5206cc3d114c7c2c3a164107d4d6e473dcb0ce1d904de203cbe

See more details on using hashes here.

File details

Details for the file pyomt-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: pyomt-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 88.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for pyomt-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cc654c87c701b84c820049babbd8f8fca90deb2e2c05638a9b529cb0abcef8d1
MD5 e6622db081daba85e6cabe80f0e72f72
BLAKE2b-256 c36852b5056d8d7bd91434540729d7bfea665b9091a895891f7a2f9f5225fc3f

See more details on using hashes here.

Supported by

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