Quantum Solvers#
Ocean’s dwave-system tool enables
you to use a D-Wave system as a sampler. In addition to
DWaveSampler
, the tool
provides a EmbeddingComposite
composite
that maps unstructured problems to the graph
structure of the selected sampler, a process known as minor-embedding.
For a BQM representing a Boolean AND gate (see also the Example: BQM for a Boolean Circuit section) the problem is defined on alphanumeric variables \(in1, in2, out\) that must be mapped to the QPU’s numerically indexed qubits.
>>> from dimod.generators import and_gate
>>> bqm = and_gate('in1', 'in2', 'out')
Because of the sampler’s probabilistic nature, you typically request multiple samples for a problem; this example sets num_reads to 1000.
>>> from dwave.system import DWaveSampler, EmbeddingComposite
>>> sampler = EmbeddingComposite(DWaveSampler())
>>> sampleset = sampler.sample(bqm, num_reads=1000)
>>> print(sampleset)
in1 in2 out energy num_oc. chain_.
0 1 0 0 0.0 321 0.0
1 1 1 1 0.0 97 0.0
2 0 0 0 0.0 375 0.0
3 0 1 0 0.0 206 0.0
4 1 0 1 2.0 1 0.33333
['BINARY', 5 rows, 1000 samples, 3 variables]
Note that the first four samples are the valid states of the AND gate and have lower energy than invalid state \(in1=1, in2=0, out=1\).
Once you have configured a D-Wave Cloud Client configuration file as described in the Configuring Access to Leap’s Solvers section, your default solver configuration is used when you submit a problem without explicitly overriding it.
Several of the examples in the Getting Started Example’s section show how to submit problems to D-Wave systems.