128 lines
5.4 KiB
Plaintext
128 lines
5.4 KiB
Plaintext
---
|
||
title: EstimatorV2 (v0.33)
|
||
description: API reference for qiskit_ibm_runtime.EstimatorV2 in qiskit-ibm-runtime v0.33
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit_ibm_runtime.EstimatorV2
|
||
---
|
||
|
||
# EstimatorV2
|
||
|
||
<Class id="qiskit_ibm_runtime.EstimatorV2" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.33/qiskit_ibm_runtime/estimator.py#L45-L181" signature="EstimatorV2(mode=None, options=None)" modifiers="class">
|
||
Bases: `BasePrimitiveV2`\[[`EstimatorOptions`](options-estimator-options "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions")], `Estimator`, [`BaseEstimatorV2`](/api/qiskit/qiskit.primitives.BaseEstimatorV2 "(in Qiskit v1.2)")
|
||
|
||
Class for interacting with Qiskit Runtime Estimator primitive service.
|
||
|
||
Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables.
|
||
|
||
The [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") can be used to submit circuits, observables, and parameters to the Estimator primitive.
|
||
|
||
Following construction, an estimator is used by calling its [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") method with a list of PUBs (Primitive Unified Blocs). Each PUB contains four values that, together, define a computation unit of work for the estimator to complete:
|
||
|
||
* a single [`QuantumCircuit`](/api/qiskit/qiskit.circuit.QuantumCircuit "(in Qiskit v1.2)"), possibly parametrized, whose final state we define as $\psi(\theta)$,
|
||
* one or more observables (specified as any `ObservablesArrayLike`, including `Pauli`, `SparsePauliOp`, `str`) that specify which expectation values to estimate, denoted $H_j$, and
|
||
* a collection parameter value sets to bind the circuit against, $\theta_k$.
|
||
* an optional target precision for expectation value estimates.
|
||
|
||
Here is an example of how the estimator is used.
|
||
|
||
```python
|
||
from qiskit.circuit.library import RealAmplitudes
|
||
from qiskit.quantum_info import SparsePauliOp
|
||
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
|
||
from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator
|
||
|
||
service = QiskitRuntimeService()
|
||
backend = service.least_busy(operational=True, simulator=False)
|
||
|
||
psi = RealAmplitudes(num_qubits=2, reps=2)
|
||
hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
|
||
theta = [0, 1, 1, 2, 3, 5]
|
||
|
||
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
|
||
isa_psi = pm.run(psi)
|
||
isa_observables = hamiltonian.apply_layout(isa_psi.layout)
|
||
|
||
estimator = Estimator(mode=backend)
|
||
|
||
# calculate [ <psi(theta1)|hamiltonian|psi(theta)> ]
|
||
job = estimator.run([(isa_psi, isa_observables, [theta])])
|
||
pub_result = job.result()[0]
|
||
print(f"Expectation values: {pub_result.data.evs}")
|
||
```
|
||
|
||
Initializes the Estimator primitive.
|
||
|
||
**Parameters**
|
||
|
||
* **mode** (*Optional\[Union\[BackendV1, BackendV2,* [*Session*](session "qiskit_ibm_runtime.Session")*,* [*Batch*](batch "qiskit_ibm_runtime.Batch")*, str]]*) –
|
||
|
||
The execution mode used to make the primitive query. It can be:
|
||
|
||
* A `Backend` if you are using job mode.
|
||
* A [`Session`](session "qiskit_ibm_runtime.Session") if you are using session execution mode.
|
||
* A [`Batch`](batch "qiskit_ibm_runtime.Batch") if you are using batch execution mode.
|
||
|
||
Refer to the [Qiskit Runtime documentation](/guides/execution-modes). for more information about the `Execution modes`.
|
||
|
||
* **options** (*Optional\[Union\[Dict,* [*EstimatorOptions*](options-estimator-options "qiskit_ibm_runtime.options.EstimatorOptions")*]]*) – Estimator options, see `EstimatorOptions` for detailed description.
|
||
|
||
## Attributes
|
||
|
||
### mode
|
||
|
||
<Attribute id="qiskit_ibm_runtime.EstimatorV2.mode">
|
||
Return the execution mode used by this primitive.
|
||
|
||
**Returns**
|
||
|
||
Mode used by this primitive, or `None` if an execution mode is not used.
|
||
</Attribute>
|
||
|
||
### options
|
||
|
||
<Attribute id="qiskit_ibm_runtime.EstimatorV2.options">
|
||
Return options
|
||
</Attribute>
|
||
|
||
### version
|
||
|
||
<Attribute id="qiskit_ibm_runtime.EstimatorV2.version" attributeValue="2" />
|
||
|
||
## Methods
|
||
|
||
### backend
|
||
|
||
<Function id="qiskit_ibm_runtime.EstimatorV2.backend" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.33/qiskit_ibm_runtime/base_primitive.py#L237-L239" signature="backend()">
|
||
Return the backend the primitive query will be run on.
|
||
|
||
**Return type**
|
||
|
||
BackendV1 | BackendV2
|
||
</Function>
|
||
|
||
### run
|
||
|
||
<Function id="qiskit_ibm_runtime.EstimatorV2.run" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.33/qiskit_ibm_runtime/estimator.py#L134-L157" signature="run(pubs, *, precision=None)">
|
||
Submit a request to the estimator primitive.
|
||
|
||
**Parameters**
|
||
|
||
* **pubs** (*Iterable\[EstimatorPubLike]*) – An iterable of pub-like (primitive unified bloc) 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**
|
||
|
||
Submitted job.
|
||
|
||
**Raises**
|
||
|
||
**ValueError** – if precision value is not strictly greater than 0.
|
||
|
||
**Return type**
|
||
|
||
[RuntimeJobV2](runtime-job-v2 "qiskit_ibm_runtime.RuntimeJobV2")
|
||
</Function>
|
||
</Class>
|
||
|