D-Wave Ocean Software Documentation#

Ocean software is a suite of tools D-Wave Systems provides on the D-Wave GitHub repository for solving hard problems with quantum computers.

Quantum annealing processors naturally return low-energy solutions; some applications require the real minimum energy (optimization problems) and others require good low-energy samples (probabilistic sampling problems).

Ocean’s dwave-gate is a software package for constructing, modifying and running quantum circuits on the included simulator.

Installation is not needed if you are using an IDE that implements “devcontainers”.

Run D-Wave’s many open-source examples in GitHub Codespaces with just a mouse click (requires a Leap account).

Leap’s quantum-classical hybrid solvers solve arbitrary application problems. (Try this open-source 3D bin-packing example.)

Ocean also provides a Python framework, dwave-hybrid, for building hybrid asynchronous decomposition samplers.

Sign up for Leap quantum cloud service, which gives you immediate, secure access to D-Wave quantum and hybrid solvers, as well as a wealth of information to help you get started creating quantum applications.

Here you will find an introduction to D-Wave’s quantum computers, their hardware and how they work; the properties and parameters for D-Wave’s solvers; references on formulating problems and best practices in quantum computing; and much more.

dimod: Quadratic models (BQM, CQM).

Shared API for binary quadratic samplers. Provides a binary quadratic model (BQM) class that contains Ising and quadratic unconstrained binary optimization (QUBO) models used by samplers such as the D-Wave system. Also provides utilities for constructing new samplers and composed samplers.


dwavebinarycsp: Generates BQMs from constraint satisfaction problems.

Library to construct a binary quadratic model from a constraint satisfaction problem with small constraints over binary variables.


dwave-cloud-client: API client to D-Wave solvers.

Minimal implementation of the REST interface used to communicate with D-Wave Sampler API (SAPI) servers.


dwave-gate: Package for quantum circuits.

A software package for constructing, modifying and running quantum circuits.


dwave-hybrid: Framework for building hybrid solvers.

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


dwave-inspector: Visualizer for problems submitted to quantum computers.

A tool for visualizing problems submitted to, and answers received from, a D-Wave structured solver such as an Advantage quantum computer.


dwave-networkx: NetworkX extension.

Extension of NetworkX—a Python language package for exploration and analysis of networks and network algorithms—for users of D-Wave Systems.

dwave-networkx provides tools for working with Chimera and Pegasus graphs and implementations of graph-theory algorithms on the D-Wave system and other binary quadratic model samplers.


dwave-ocean-sdk: Ocean software development kit.

Installer for D-Wave’s Ocean Tools.


dwave-optimization: Nonlinear models.

API for nonlinear models. The package includes:

  • a class for nonlinear models used by the Leap service’s quantum-classical hybrid nonlinear-program solver.

  • model generators for industrial optimization problems.


dwave-preprocessing: Preprocessing tools for quadratic models.

Library containing common preprocessing tools for quadratic models.


dwave-samplers: Classical algorithms for solving binary quadratic models.

A library that implements the following classical algorithms as samplers for solving binary quadratic models (BQM):

  • Planar: an exact solver for planar Ising problems with no linear biases.

  • Random: a sampler that draws uniform random samples.

  • Simulated Annealing: a probabilistic heuristic for optimization and approximate Boltzmann sampling well suited to finding good solutions of large problems.

  • Steepest Descent: a discrete analogue of gradient descent, often used in machine learning, that quickly finds a local minimum.

  • Tabu: a heuristic that employs local search with methods to escape local minima.

  • Tree Decomposition: an exact solver for problems with low treewidth.


dwave-system: D-Wave samplers and composites.

Basic API for easily incorporating the D-Wave system as a sampler in the D-Wave Ocean software stack.

It includes DWaveSampler, a dimod sampler that accepts and passes system parameters such as system identification and authentication down the stack. It also includes several useful composites—layers of pre- and post-processing—that can be used with DWaveSampler to handle minor-embedding, optimize chain strength, etc.


minorminer: Minor-embeds graphs.

A tool for finding graph minor-embeddings, developed to embed Ising problems onto quantum annealers (QA).

While it can be used to find minors in arbitrary graphs, it is particularly geared towards the state of the art in QA: problem graphs of a few to a few hundred variables, and hardware graphs of a few thousand qubits.


penaltymodel: Maps constraints to binary quadratic models.

An approach to solve a constraint satisfaction problem (CSP) using an Ising model or a QUBO, is to map each individual constraint in the CSP to a ‘small’ Ising model or QUBO.

Includes a local cache for penalty models and a factory that generates penalty models using SMT solvers.


pyqubo: Creates quadratic models from mathematical expressions.

A package that helps you create QUBOs and Ising models from flexible mathematical expressions.


Site index