Skip to main contentIBM Quantum Documentation
This page is from the dev version of Qiskit SDK. Go to the stable version.

BaseSamplerV1

class qiskit.primitives.BaseSamplerV1(*, options=None)

GitHub

Bases: BasePrimitiveV1, Generic[T]

Sampler V1 base class

Base class of Sampler that calculates quasi-probabilities of bitstrings from quantum circuits.

A sampler is initialized with an empty parameter set. The sampler is used to create a JobV1, via the qiskit.primitives.Sampler.run() method. This method is called with the following parameters

  • quantum circuits (ψi(θ)\psi_i(\theta)): list of (parameterized) quantum circuits. (a list of QuantumCircuit objects)
  • parameter values (θk\theta_k): list of sets of parameter values to be bound to the parameters of the quantum circuits. (list of list of float)

The method returns a JobV1 object, calling qiskit.providers.JobV1.result() yields a SamplerResult object, which contains probabilities or quasi-probabilities of bitstrings, plus optional metadata like error bars in the samples.

Here is an example of how sampler is used.

# This is a fictional import path.
# There are currently no Sampler implementations in Qiskit.
from sampler_v1_location import SamplerV1
from qiskit import QuantumCircuit
from qiskit.circuit.library import RealAmplitudes
 
# a Bell circuit
bell = QuantumCircuit(2)
bell.h(0)
bell.cx(0, 1)
bell.measure_all()
 
# two parameterized circuits
pqc = RealAmplitudes(num_qubits=2, reps=2)
pqc.measure_all()
pqc2 = RealAmplitudes(num_qubits=2, reps=3)
pqc2.measure_all()
 
theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 2, 3, 4, 5, 6, 7]
 
# initialization of the sampler
sampler = Sampler()
 
# Sampler runs a job on the Bell circuit
job = sampler.run(circuits=[bell], parameter_values=[[]], parameters=[[]])
job_result = job.result()
print([q.binary_probabilities() for q in job_result.quasi_dists])
 
# Sampler runs a job on the parameterized circuits
job2 = sampler.run(
    circuits=[pqc, pqc2],
    parameter_values=[theta1, theta2],
    parameters=[pqc.parameters, pqc2.parameters])
job_result = job2.result()
print([q.binary_probabilities() for q in job_result.quasi_dists])

Initialize SamplerV1.

Parameters

options (dict | None) – Default options.


Attributes

options

Return options values for the estimator.

Returns

options


Methods

run

run(circuits, parameter_values=None, **run_options)

GitHub

Run the job of the sampling of bitstrings.

Parameters

  • circuits (QuantumCircuit | Sequence[QuantumCircuit]) – One of more circuit objects.
  • parameter_values (Sequence[float] | Sequence[Sequence[float]] | None) – Parameters to be bound to the circuit.
  • run_options – Backend runtime options used for circuit execution.

Returns

The job object of the result of the sampler. The i-th result corresponds to circuits[i] evaluated with parameters bound as parameter_values[i].

Raises

ValueError – Invalid arguments are given.

Return type

T

set_options

set_options(**fields)

GitHub

Set options values for the estimator.

Parameters

**fields – The fields to update the options

Was this page helpful?
Report a bug or request content on GitHub.