BackendEstimatorV2
class qiskit.primitives.BackendEstimatorV2(*, backend, options=None)
Bases: BaseEstimatorV2
Evaluates expectation values for provided quantum circuit and observable combinations.
The BackendEstimatorV2
class is a generic implementation of the BaseEstimatorV2
interface that is used to wrap a BackendV2
(or BackendV1
) object in the BaseEstimatorV2
API. It facilitates using backends that do not provide a native BaseEstimatorV2
implementation in places that work with BaseEstimatorV2
. However, if you’re using a provider that has a native implementation of BaseEstimatorV2
, it is a better choice to leverage that native implementation as it will likely include additional optimizations and be a more efficient implementation. The generic nature of this class precludes doing any provider- or backend-specific optimizations.
This class does not perform any measurement or gate mitigation, and, presently, is only compatible with Pauli-based observables. More formally, given an observable of the type , where is a complex number and is a Pauli operator, the estimator calculates the expectation of each and finally calculates the expectation value of as . The reported std
is calculated as
where is the variance of , is the number of shots, and is the target precision [1].
Each tuple of (circuit, observables, <optional> parameter values, <optional> precision)
, called an estimator primitive unified bloc (PUB), produces its own array-based result. The run()
method can be given a sequence of pubs to run in one call.
The options for BackendEstimatorV2
consist of the following items.
default_precision
: The default precision to use if none are specified inrun()
. Default: 0.015625 (1 / sqrt(4096)).abelian_grouping
: Whether the observables should be grouped into sets of qubit-wise commuting observables. Default: True.seed_simulator
: The seed to use in the simulator. If None, a random seed will be used. Default: None.
Reference:
[1] O. Crawford, B. van Straaten, D. Wang, T. Parks, E. Campbell, St. Brierley, Efficient quantum measurement of Pauli operators in the presence of finite sampling error. Quantum 5, 385
Parameters
- backend (BackendV1 |BackendV2) – The backend to run the primitive on.
- options (dict | None) – The options to control the default precision (
default_precision
), the operator grouping (abelian_grouping
), and the random seed for the simulator (seed_simulator
).
Attributes
backend
Returns the backend which this sampler object based on.
options
Return the options
Methods
run
run(pubs, *, precision=None)
Estimate expectation values for each provided pub (Primitive Unified Bloc).
Parameters
- pubs (Iterable[EstimatorPubLike]) – An iterable of pub-like objects, such as tuples
(circuit, observables)
or(circuit, observables, parameter_values)
. - precision (float | None) – The target precision for expectation value estimates of each run Estimator Pub that does not specify its own precision. If None the estimator’s default precision value will be used.
Returns
A job object that contains results.
Return type