qiskit-documentation/docs/api/qiskit/1.2/qiskit.primitives.BackendEs...

135 lines
7.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: BackendEstimator (v1.2)
description: API reference for qiskit.primitives.BackendEstimator in qiskit v1.2
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.primitives.BackendEstimator
---
# BackendEstimator
<Class id="qiskit.primitives.BackendEstimator" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/primitives/backend_estimator.py#L91-L415" signature="qiskit.primitives.BackendEstimator(backend, options=None, abelian_grouping=True, bound_pass_manager=None, skip_transpilation=False)" modifiers="class">
Bases: [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.base.base_estimator.BaseEstimator")\[[`PrimitiveJob`](qiskit.primitives.PrimitiveJob "qiskit.primitives.primitive_job.PrimitiveJob")\[[`EstimatorResult`](qiskit.primitives.EstimatorResult "qiskit.primitives.base.estimator_result.EstimatorResult")]]
Evaluates expectation value using Pauli rotation gates.
The [`BackendEstimator`](#qiskit.primitives.BackendEstimator "qiskit.primitives.BackendEstimator") class is a generic implementation of the [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") (V1) interface that is used to wrap a [`BackendV2`](qiskit.providers.BackendV2 "qiskit.providers.BackendV2") (or [`BackendV1`](qiskit.providers.BackendV1 "qiskit.providers.BackendV1")) object in the [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") V1 API. It facilitates using backends that do not provide a native [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") V1 implementation in places that work with [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") V1. However, if youre using a provider that has a native implementation of [`BaseEstimatorV1`](qiskit.primitives.BaseEstimatorV1 "qiskit.primitives.BaseEstimatorV1") ( [`BaseEstimator`](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator")) or [`BaseEstimatorV2`](qiskit.primitives.BaseEstimatorV2 "qiskit.primitives.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.
Initialize a new BackendEstimator (V1) instance
<Admonition title="Deprecated since version 1.2" type="danger">
The class `qiskit.primitives.backend_estimator.BackendEstimator` is deprecated as of qiskit 1.2. It will be removed no earlier than 3 months after the release date. All implementations of the BaseEstimatorV1 interface have been deprecated in favor of their V2 counterparts. The V2 alternative for the BackendEstimator class is BackendEstimatorV2.
</Admonition>
**Parameters**
* **backend** ([*BackendV1*](qiskit.providers.BackendV1 "qiskit.providers.BackendV1") *|*[*BackendV2*](qiskit.providers.BackendV2 "qiskit.providers.BackendV2")) (required) the backend to run the primitive on
* **options** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)") *| None*) Default options.
* **abelian\_grouping** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) Whether the observable should be grouped into commuting
* **bound\_pass\_manager** ([*PassManager*](qiskit.transpiler.PassManager "qiskit.transpiler.PassManager") *| None*) An optional pass manager to run after parameter binding.
* **skip\_transpilation** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.13)")) 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
<Attribute id="qiskit.primitives.BackendEstimator.backend">
Returns: The backend which this estimator object based on
</Attribute>
### options
<Attribute id="qiskit.primitives.BackendEstimator.options">
Return options values for the estimator.
**Returns**
options
</Attribute>
### preprocessed\_circuits
<Attribute id="qiskit.primitives.BackendEstimator.preprocessed_circuits">
Transpiled quantum circuits produced by preprocessing :returns: List of the transpiled quantum circuit
</Attribute>
### transpile\_options
<Attribute id="qiskit.primitives.BackendEstimator.transpile_options">
Return the transpiler options for transpiling the circuits.
</Attribute>
### transpiled\_circuits
<Attribute id="qiskit.primitives.BackendEstimator.transpiled_circuits">
Transpiled quantum circuits. :returns: List of the transpiled quantum circuit
**Raises**
[**QiskitError**](exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") if the instance has been closed.
</Attribute>
## Methods
### run
<Function id="qiskit.primitives.BackendEstimator.run" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/primitives/base/base_estimator.py#L121-L178" signature="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
```python
obs = observables[i]
```
for the state prepared by
```python
circ = circuits[i]
```
with bound parameters
```python
values = parameter_values[i]
```
**Parameters**
* **circuits** (*Sequence\[*[*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")*] |* [*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) one or more circuit objects.
* **observables** (*Sequence\[BaseOperator |* [*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")*] | BaseOperator |* [*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)")) one or more observable objects. Several formats are allowed; importantly, `str` should follow the string representation format for [`Pauli`](qiskit.quantum_info.Pauli "qiskit.quantum_info.Pauli") objects.
* **parameter\_values** (*Sequence\[Sequence\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*]] | Sequence\[*[*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")*] |* [*float*](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)") *| None*) concrete parameters to be bound.
* **run\_options** runtime options used for circuit execution.
**Returns**
The job object of EstimatorResult.
**Raises**
* [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.13)") Invalid argument type given.
* [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.13)") Invalid argument values given.
**Return type**
T
</Function>
### set\_options
<Function id="qiskit.primitives.BackendEstimator.set_options" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/primitives/base/base_primitive.py#L39-L45" signature="set_options(**fields)">
Set options values for the estimator.
**Parameters**
**\*\*fields** The fields to update the options
</Function>
### set\_transpile\_options
<Function id="qiskit.primitives.BackendEstimator.set_transpile_options" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/primitives/backend_estimator.py#L162-L168" signature="set_transpile_options(**fields)">
Set the transpiler options for transpiler. :param \*\*fields: The fields to update the options
</Function>
</Class>