.. _index:
===================================
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.
.. toctree::
:hidden:
:maxdepth: 2
concepts/index
getting_started
docs_cli
packages
contributing
licenses
.. tab-set::
.. tab-item:: Concepts
The :ref:`concepts_sdk` tab defines and describes Ocean concepts and
terminology, such as the following:
.. grid:: 2
:gutter: 2
.. grid-item-card:: :ref:`qm_sdk`
Quadratic models are polynomials with one
or two variables per term. A simple example of a quadratic model is,
:math:`Ax + By + Cxy`
where :math:`A`, :math:`B`, and :math:`C` are constants.
Single-variable terms---:math:`Ax` and :math:`By` here---are
linear with the constant biasing the term's variable.
Two-variable terms---:math:`Cxy` here---are quadratic with
a relationship between the variables.
:ref:`... `
.. grid-item-card:: :ref:`samplers_sdk`
*Samplers* are processes that sample from low energy states
of a problem’s :term:`objective function`. A BQM sampler
samples from low energy states in models such as those defined
by an Ising equation or a Quadratic Unconstrained Binary
Optimization (QUBO) problem and returns an iterable of samples,
in order of increasing energy.
:ref:`... `
.. grid-item-card:: :ref:`embedding_sdk`
To solve an arbitrarily posed binary quadratic problem directly
on a D-Wave system requires mapping, called *minor embedding*,
to the :ref:`topology_sdk` of the system's quantum processing
unit (QPU).
:ref:`... `
.. grid-item-card:: :ref:`topology_sdk`
To solve a :term:`bqm` on the D-Wave system, you must map it to
a graph that represents the topology of the system's qubits.
:ref:`... `
.. tab-item:: Getting Started
The :ref:`gs` tab walks you through installing and beginning to
use Ocean tools, including:
* :ref:`gs_initial_setup` explains how you set up your development environment.
* :ref:`gs_ocean_programming_model` describes Ocean's workflow for problem solving.
* :ref:`gs_compute_resources` describes Ocean's samplers.
* :ref:`gs_end_to_end_examples` provides tutorial usage examples.
* :ref:`additional_tutorials` links to additional resources.
.. tab-item:: CLI
The :ref:`dwave_cli` tab introduces the `dwave` executable,
installed with the SDK, that provides an interactive command
line interface (CLI) for setting up and configuring your
development environment.
For example, the :code:`dwave ping` command tests communications
with the quantum computer configured using the :code:`dwave setup`
or :code:`dwave config` commands.
.. include:: docs_cli.rst
:start-after: cli-example-ping-start-marker
:end-before: cli-example-ping-end-marker
.. tab-item:: Packages
The :ref:`dwave_packages` tab lists and summarizes all the SDK packages,
such as these:
.. grid:: 2
:gutter: 2
.. grid-item-card:: `dimod `_
:abbr:`Quadratic models: BQM, CQM. (Shared API for binary quadratic
samplers. Provides a binary quadratic model class that contains
Ising and quadratic unconstrained binary optimization models used by
samplers such as the D-Wave system. Also provides utilities for
constructing new samplers and composed samplers.)`
.. grid-item-card:: :ref:`dwave-samplers `
:abbr:`Classical algorithms for solving binary quadratic models. (A library
that implements the following classical algorithms as samplers for solving
binary quadratic models:
[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.)`
.. grid-item-card:: :ref:`dwave-system `
:abbr:`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.)`
.. grid-item-card:: :ref:`dwave-hybrid `
:abbr:`Framework for building hybrid samplers. (A general, minimal Python
framework for building hybrid asynchronous decomposition samplers for
quadratic unconstrained binary optimization (QUBO) problems.)`
Index and D-Wave Links
======================
* :ref:`genindex`: Index for this site.
* `Leap `_: 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.
* `System Documentation `_: Here you will
find information such as
- `Getting Started with the System `_---An
introduction to D-Wave's quantum computers, their hardware and how they work.
- `Solver Properties and Parameters `_---Description
of properties and parameters for of D-Wave's quantum computers and
Leap's quantum-classical hybrid solvers.
- `Problem-Solving Handbook `_---Information
and references on formulating problems and best practices in quantum
computing.