.. _qpu_quantum_solvers_intro: =============== Quantum Solvers =============== Ocean's :ref:`dwave-system ` package enables you to use a |dwave_short| quantum computer as a :term:`sampler`. In addition to :class:`~dwave.system.samplers.DWaveSampler`, the package provides an :class:`~dwave.system.composites.EmbeddingComposite` :term:`composite` that maps unstructured problems to the :ref:`graph structure ` of the selected sampler, a process known as :term:`minor-embedding`. Example ======= .. note:: The :ref:`ocean_sapi_access_basic` steps you through configuring access to |dwave_short| quantum computers. For a :ref:`binary quadratic model ` (BQM) representing a Boolean AND gate (see the :ref:`ocean_workflow_formulating_bqm` section for more details) 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 the :ref:`parameter_qpu_num_reads` solver parameter 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`. For additional beginner examples of submitting problems to |dwave_short| quantum computers, see the :ref:`qpu_index_examples_beginner` section