Skip to main content

PyQUBO allows you to create QUBOs or Ising models from mathematical expressions.

Project description

https://img.shields.io/pypi/v/pyqubo.svg https://codecov.io/gh/recruit-communications/pyqubo/branch/master/graph/badge.svg https://readthedocs.org/projects/pyqubo/badge/?version=latest https://circleci.com/gh/recruit-communications/pyqubo.svg?style=svg

PyQUBO

PyQUBO allows you to create QUBOs or Ising models from flexible mathematical expressions easily. Some of the features of PyQUBO are

  • Python-based (the entire code is written in Python).

  • QUBO generation (compile) is fast (due to the JIT like compile mechanism).

  • Comes with plenty of useful expressions such as binary integer variables, logical constraints, or matrix/vector variables.

For more details, see PyQUBO Documentation.

Example Usage

This example constructs a simple expression and compile it to model. By calling model.to_qubo(), we get the resulting QUBO. (This example solves a number partitioning problem with a set S = {4, 2, 7, 1})

>>> from pyqubo import Spin
>>> s1, s2, s3, s4 = Spin("s1"), Spin("s2"), Spin("s3"), Spin("s4")
>>> H = (4*s1 + 2*s2 + 7*s3 + s4)**2
>>> model = H.compile()
>>> qubo, offset = model.to_qubo()
>>> pprint(qubo)
{('s1', 's1'): -160.0,
 ('s1', 's2'): 64.0,
 ('s1', 's3'): 224.0,
 ('s1', 's4'): 32.0,
 ('s2', 's2'): -96.0,
 ('s2', 's3'): 112.0,
 ('s2', 's4'): 16.0,
 ('s3', 's3'): -196.0,
 ('s3', 's4'): 56.0,
 ('s4', 's4'): -52.0}

Installation

pip install pyqubo

or

python setup.py install

Supported Python Versions

Python 2.7, 3.4, 3.5, 3.6 and 3.7 are supported.

Test

Run all tests.

python -m unittest discover test

Show coverage report.

coverage run -m unittest discover
coverage html

Run test with circleci CLI.

circleci build --job $JOBNAME

Run doctest.

make doctest

Organization

Recruit Communications Co., Ltd.

Licence

Released under the Apache License 2.0.

Contribution

We welcome contributions to this project.

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

pyqubo-0.0.4.tar.gz (21.7 kB view details)

Uploaded Source

File details

Details for the file pyqubo-0.0.4.tar.gz.

File metadata

  • Download URL: pyqubo-0.0.4.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.1

File hashes

Hashes for pyqubo-0.0.4.tar.gz
Algorithm Hash digest
SHA256 7ee3f6ebc54db4899d59c58e17d5d0db5f80d95929cb1eae446bf9eab1e0c74f
MD5 547d4e8d56d47e717c821b64d5f19580
BLAKE2b-256 d3a70d708f326b54e30e9bbdbca9b77de8ef206d622b662311a5866bbfe925f4

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