Skip to content
Hybrid Asynchronous Decomposition Sampler prototype framework.
Python
Branch: master
Clone or download
Latest commit 581db10 Aug 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Fix codecov call to coverage Aug 14, 2019
docs Rename `InterruptableIdentity` to `BlockingIdentity`, alias `Wait` Aug 21, 2019
examples Use TrackMin in qbsolv impl, instead of Identity Aug 22, 2019
hybrid Terminate Loop when body raises EndOfStream Aug 23, 2019
perf Perf: all solvers that support terminate at target energy Jun 12, 2019
problems Sanitize qbsolv problem names: lex order matches logical Sep 1, 2018
scripts Add utility plot function used in webinar Jul 15, 2019
tests Add EndOfStream Loop termination test Aug 23, 2019
.appveyor.yml Appveyor: explicit pip cache location Dec 4, 2018
.coveragerc Fix coverage config Nov 28, 2018
.gitignore
CONTRIBUTING.rst Add leap Nov 5, 2018
LICENSE Reformat LICENSE Oct 3, 2018
README.rst Avoid `BlockingIdentity` where not necessary Aug 21, 2019
requirements.txt Avoid latest dimod (it doesn't work with latest dwave-system) Aug 13, 2019
setup.cfg Include license in wheel Dec 1, 2018
setup.py

README.rst

Last version on PyPI Linux/Mac build status Windows build status Code coverage Documentation status PyPI - Python Version

D-Wave Hybrid

A general, minimal Python framework for building hybrid asynchronous decomposition samplers for quadratic unconstrained binary optimization (QUBO) problems.

dwave-hybrid facilitates three aspects of solution development:

  • Hybrid approaches to combining quantum and classical compute resources
  • Evaluating a portfolio of algorithmic components and problem-decomposition strategies
  • Experimenting with workflow structures and parameters to obtain the best application results

The framework enables rapid development and insight into expected performance of productized versions of its experimental prototypes.

Your optimized algorithmic components and other contributions to this project are welcome!

Installation or Building

Install from a package on PyPI:

pip install dwave-hybrid

or from source:

git clone https://github.com/dwavesystems/dwave-hybrid.git
cd dwave-hybrid
pip install -r requirements.txt
python setup.py install

Example

import dimod
import hybrid

# Construct a problem
bqm = dimod.BinaryQuadraticModel({}, {'ab': 1, 'bc': -1, 'ca': 1}, 0, dimod.SPIN)

# Define the workflow
iteration = hybrid.RacingBranches(
    hybrid.InterruptableTabuSampler(),
    hybrid.EnergyImpactDecomposer(size=2)
    | hybrid.QPUSubproblemAutoEmbeddingSampler()
    | hybrid.SplatComposer()
) | hybrid.ArgMin()
workflow = hybrid.LoopUntilNoImprovement(iteration, convergence=3)

# Solve the problem
init_state = hybrid.State.from_problem(bqm)
final_state = workflow.run(init_state).result()

# Print results
print("Solution: sample={.samples.first}".format(final_state))

License

Released under the Apache License 2.0. See LICENSE file.

You can’t perform that action at this time.