BackendEstimator
class qiskit.primitives.BackendEstimator(backend, options=None, abelian_grouping=True, bound_pass_manager=None, skip_transpilation=False)
Bases: BaseEstimator
[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
, such as algorithms in qiskit.algorithms
including VQE
. 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
circuits
Quantum circuits that represents quantum states.
Returns
The quantum circuits.
observables
Observables to be estimated.
Returns
The observables.
options
Return options values for the estimator.
Returns
options
parameters
Parameters of the quantum circuits.
Returns
Parameters, where parameters[i][j]
is the j-th parameter of the i-th circuit.
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].
Implicit conversion from a PauliList
to a SparsePauliOp
with coeffs=1
in the observables
arguments is deprecated as of Qiskit 0.46 and will be removed in Qiskit 1.0. You should explicitly convert to a SparsePauli
using SparsePauliOp(pauli_list)
to avoid this warning.
Parameters
- circuits (Sequence[QuantumCircuit] | QuantumCircuit) – one or more circuit objects.
- observables (Sequence[BaseOperator | PauliSumOp |str] | BaseOperator | PauliSumOp |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