qiskit-documentation/docs/api/qiskit-ibm-runtime/0.21/qiskit_ibm_runtime.Estimato...

136 lines
5.6 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: EstimatorV1
description: API reference for qiskit_ibm_runtime.EstimatorV1
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_ibm_runtime.EstimatorV1
---
# EstimatorV1
<Class id="qiskit_ibm_runtime.EstimatorV1" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L180-L362" signature="EstimatorV1(backend=None, session=None, options=None)" modifiers="class">
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.EstimatorV1.run "qiskit_ibm_runtime.EstimatorV1.run") can be used to submit circuits, observables, and parameters to the Estimator primitive.
You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler.
Example:
```python
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService, Estimator
service = QiskitRuntimeService(channel="ibm_cloud")
psi1 = RealAmplitudes(num_qubits=2, reps=2)
H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])
with Session(service=service, backend="ibmq_qasm_simulator") as session:
estimator = Estimator(session=session)
theta1 = [0, 1, 1, 2, 3, 5]
# calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1])
print(psi1_H1.result())
# calculate [ <psi1(theta1)|H2|psi1(theta1)>, <psi1(theta1)|H3|psi1(theta1)> ]
psi1_H23 = estimator.run(
circuits=[psi1, psi1],
observables=[H2, H3],
parameter_values=[theta1]*2
)
print(psi1_H23.result())
```
Initializes the Estimator primitive.
**Parameters**
* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used.
* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`])
Session in which to call the primitive.
If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected.
* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated.
## Attributes
### options
<Attribute id="qiskit_ibm_runtime.EstimatorV1.options">
Return options values for the sampler. :rtype: `Options` :returns: options
</Attribute>
### session
<Attribute id="qiskit_ibm_runtime.EstimatorV1.session">
Return session used by this primitive.
**Return type**
`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")]
**Returns**
Session used by this primitive, or `None` if session is not used.
</Attribute>
### version
<Attribute id="qiskit_ibm_runtime.EstimatorV1.version" attributeValue="1" />
## Methods
### run
<Function id="qiskit_ibm_runtime.EstimatorV1.run" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L257-L291" signature="run(circuits, observables, parameter_values=None, **kwargs)">
Submit a request to the estimator primitive.
**Parameters**
* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`.
* **observables** (*Sequence\[BaseOperator | str] | BaseOperator | str*) Observable objects.
* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) Concrete parameters to be bound.
* **\*\*kwargs** Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions").
**Return type**
[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")
**Returns**
Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`.
**Raises**
**ValueError** Invalid arguments are given.
</Function>
### set\_options
<Function id="qiskit_ibm_runtime.EstimatorV1.set_options" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_primitive.py#L402-L410" signature="set_options(**fields)">
Set options values for the sampler.
**Parameters**
**\*\*fields** The fields to update the options
**Return type**
`None`
</Function>
</Class>