BackendEstimator
class qiskit.primitives.BackendEstimator(backend, options=None, abelian_grouping=True, bound_pass_manager=None, skip_transpilation=False)
Bases: BaseEstimatorV1
[PrimitiveJob
[EstimatorResult
]]
Evaluates expectation value using Pauli rotation gates.
The BackendEstimator
class is a generic implementation of the BaseEstimator
interface that is used to wrap a BackendV2
(or BackendV1
) object in the BaseEstimator
API. It facilitates using backends that do not provide a native BaseEstimator
implementation in places that work with BaseEstimator
. However, if you’re using a provider that has a native implementation of BaseEstimator
, 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.
Initialize a new BackendEstimator instance
Parameters
- backend (BackendV1 |BackendV2) – Required: the backend to run the primitive on
- options (dict | None) – Default options.
- abelian_grouping (bool) – Whether the observable should be grouped into commuting
- bound_pass_manager (PassManager | None) – An optional pass manager to run after parameter binding.
- skip_transpilation (bool) – If this is set to True the internal compilation of the input circuits is skipped and the circuit objects will be directly executed when this object is called.
Attributes
backend
Returns: The backend which this estimator object based on
options
Return options values for the estimator.
Returns
options
preprocessed_circuits
Transpiled quantum circuits produced by preprocessing :returns: List of the transpiled quantum circuit
transpile_options
Return the transpiler options for transpiling the circuits.
transpiled_circuits
Transpiled quantum circuits. :returns: List of the transpiled quantum circuit
Raises
QiskitError – if the instance has been closed.
Methods
run
run(circuits, observables, parameter_values=None, **run_options)
Run the job of the estimation of expectation value(s).
circuits
, observables
, and parameter_values
should have the same length. The i-th element of the result is the expectation of observable
obs = observables[i]
for the state prepared by
circ = circuits[i]
with bound parameters
values = parameter_values[i].
Parameters
- circuits (Sequence[QuantumCircuit] | QuantumCircuit) – one or more circuit objects.
- observables (Sequence[BaseOperator | str] | BaseOperator | str) – one or more observable objects. Several formats are allowed; importantly,
str
should follow the string representation format forPauli
objects. - parameter_values (Sequence[Sequence[float]] | Sequence[float] | float | None) – concrete parameters to be bound.
- run_options – runtime options used for circuit execution.
Returns
The job object of EstimatorResult.
Raises
- TypeError – Invalid argument type given.
- ValueError – Invalid argument values given.
Return type
T
set_options
set_options(**fields)
Set options values for the estimator.
Parameters
**fields – The fields to update the options
set_transpile_options
set_transpile_options(**fields)
Set the transpiler options for transpiler. :param **fields: The fields to update the options