dimod is a shared API for samplers. It provides:
- Classes for quadratic models---such as the binary quadratic model (BQM) class that contains Ising and QUBO models used by samplers such as the D-Wave quantum computer---and higher-order (non-quadratic) models.
- Reference examples of samplers and composed samplers.
- Abstract base classes for constructing new samplers and composed samplers.
>>> import dimod
...
>>> # Construct a problem
>>> bqm = dimod.BinaryQuadraticModel({0: -1, 1: 1}, {(0, 1): 2}, 0.0, dimod.BINARY)
...
>>> # Use dimod's brute force solver to solve the problem
>>> sampleset = dimod.ExactSolver().sample(bqm)
>>> print(sampleset)
0 1 energy num_oc.
1 1 0 -1.0 1
0 0 0 0.0 1
3 0 1 1.0 1
2 1 1 2.0 1
['BINARY', 4 rows, 4 samples, 2 variables]For explanations of the terminology, see the Ocean glossary.
See the documentation for more examples.
Installation from PyPI:
pip install dimodDuring package development, it is often convenient to use an editable install. See meson-python's editable installs for more details.
pip install --group dev
pip install --editable . \
--no-build-isolation \
--config-settings=editable-verbose=trueAll code should be thoroughly tested and all pull requests should include tests.
To run the Python tests, first install the package using an editable install as described above. You will also need to install additional dependencies for the tests.
pip install --group testsThe tests can then be run with unittest.
python -m unittestTo run the C++ tests, first install the project dependencies, then setup a
meson build directory. You must configure the build as a debug build for
the tests to run.
pip install --group dev
meson setup build -Dbuildtype=debugYou can then run the tests using meson's test framework.
meson test -Cbuild