.. _using_qpu: =============== Quantum Solvers =============== Ocean's :doc:`dwave-system ` tool enables you to use a D-Wave system as a sampler. In addition to :class:`~dwave.system.samplers.DWaveSampler`, the tool provides a :class:`~dwave.system.composites.EmbeddingComposite` composite that maps unstructured problems to the graph structure of the selected sampler, a process known as :term:`minor-embedding`. For a BQM representing a Boolean AND gate (see also the :ref:`formulating_bqm` section) the problem is defined on alphanumeric variables :math:`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) # doctest: +SKIP 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 :math:`in1=1, in2=0, out=1`. Once you have configured a :doc:`D-Wave Cloud Client configuration file ` as described in the :ref:`sapi_access` section, your default solver configuration is used when you submit a problem without explicitly overriding it. Several of the examples in the :ref:`gs` Example's section show how to submit problems to D-Wave systems.