Skip to content

Annealing and Ising

dimod

Maintained by dwavesystems

dimod is one of the most important modeling libraries in the annealing ecosystem because it gives developers a practical way to express binary quadratic and related optimization models.

PythonApache-2.0FlagshipQtangl relevant
dimod illustration

Resource snapshot

Category

Annealing and Ising

Stars

142

Last pushed

May 14, 2026Updated 3mo ago

Open issues

158

What it is

For many readers, dimod is more important than the headline platform name because it exposes the modeling layer directly. It helps make optimization problems concrete in software instead of leaving them as abstract references to Ising or QUBO formulations.

That is why dimod is useful in an educational library. It helps people understand how planning-style problems are encoded before any sampler, solver, or backend gets involved.

Who it's for

Developers who want to understand how optimization problems get modeled in practice before they worry about solver choice.

What you can build or learn

  • Represent QUBO and related formulations in code.
  • Inspect the modeling layer behind annealing-style optimization workflows.
  • Compare input-model ergonomics across optimization ecosystems.

Plays well with

License

Apache-2.0

SPDX identifier detected from the repository metadata or license files.

Repository README

Preview from the project README.

Rendered as Markdown inside a scrollable preview. Long READMEs stay contained; expand or open on GitHub for the full document.

~179 words · about 1 min readOpen on GitHub

:target: https://pypi.org/project/dimod

:target: https://pypi.python.org/pypi/dimod

.. image:: https://circleci.com/gh/dwavesystems/dimod.svg?style=svg :target: https://circleci.com/gh/dwavesystems/dimod

.. image:: https://codecov.io/gh/dwavesystems/dimod/branch/main/graph/badge.svg :target: https://codecov.io/gh/dwavesystems/dimod

===== dimod

.. start_dimod_about

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 <https://docs.python.org/3/library/abc.html>_ 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]

.. end_dimod_about

For explanations of the terminology, see the Ocean glossary <https://docs.dwavequantum.com/en/latest/concepts/index.html>_.

See the documentation <https://docs.dwavequantum.com/en/latest/index.html>_ for more examples.

Installation

Installation from PyPI <https://pypi.org/project/dimod>_:

.. code-block:: bash

pip install dimod
Read on GitHub

Activity

Latest release

—

Watchers

17

Python support

—

How this relates to Qtangl

dimod is highly relevant to Qtangl because the product lives or dies at the modeling layer. Scheduling, routing, and allocation workflows become usable only when their hard constraints can be represented cleanly, and dimod is a strong reference point for how that layer can be exposed to developers.

Learn digest

Get monthly updates when library entries change.

Monthly digest: new library entries, updated flagships, and one editorial pick.

Related resources

Keep exploring nearby tools.

dwavesystems

chimera-embedding

This is a repository for algorithms to generate native-structured embeddings.

PythonApache-2.0

28 stars · Updated 7y ago

dwavesystems

dwave-cloud-client

A minimal implementation of the REST interface used to communicate with D-Wave Solver API (SAPI) servers.

PythonApache-2.0

62 stars · Updated 3mo ago

dwavesystems

dwave-ocean-sdk

Installer for D-Wave's Ocean tools

PythonApache-2.0FlagshipQtangl relevant

524 stars · Updated 3mo ago

dwavesystems

dwave_embedding_utilities

Provides utilities for mapping between source and target models.

PythonApache-2.0Archive

11 stars · Updated 8y ago

dwavesystems

dwave_micro_client_dimod

dimod wrapper for the D-Wave Micro Client

PythonApache-2.0Archive

8 stars · Updated 8y ago

dwavesystems

qbsolv

Qbsolv,a decomposing solver, finds a minimum value of a large quadratic unconstrained binary optimization (QUBO) problem by splitting it into pieces solved either via a D-Wave system or a classical tabu solver.

qApache-2.0FlagshipQtangl relevantArchive

920 stars · Updated 4y ago