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.