|
| 1 | +--- |
| 2 | +title: Estimator (v0.14) |
| 3 | +description: API reference for qiskit_ibm_runtime.Estimator in qiskit-ibm-runtime v0.14 |
| 4 | +in_page_toc_min_heading_level: 1 |
| 5 | +python_api_type: class |
| 6 | +python_api_name: qiskit_ibm_runtime.Estimator |
| 7 | +--- |
| 8 | + |
| 9 | +# Estimator |
| 10 | + |
| 11 | +<Class id="qiskit_ibm_runtime.Estimator" isDedicatedPage={true} github="https://github.com/qiskit/qiskit-ibm-runtime/tree/stable/0.14/qiskit_ibm_runtime/estimator.py" signature="Estimator(backend=None, session=None, options=None)" modifiers="class"> |
| 12 | + Class for interacting with Qiskit Runtime Estimator primitive service. |
| 13 | + |
| 14 | + Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. |
| 15 | + |
| 16 | + The [`run()`](#qiskit_ibm_runtime.Estimator.run "qiskit_ibm_runtime.Estimator.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. |
| 17 | + |
| 18 | + You are encouraged to use [`Session`](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, and data is cached for efficiency. |
| 19 | + |
| 20 | + Example: |
| 21 | + |
| 22 | + ```python |
| 23 | + from qiskit.circuit.library import RealAmplitudes |
| 24 | + from qiskit.quantum_info import SparsePauliOp |
| 25 | + |
| 26 | + from qiskit_ibm_runtime import QiskitRuntimeService, Estimator |
| 27 | + |
| 28 | + service = QiskitRuntimeService(channel="ibm_cloud") |
| 29 | + |
| 30 | + psi1 = RealAmplitudes(num_qubits=2, reps=2) |
| 31 | + |
| 32 | + H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) |
| 33 | + H2 = SparsePauliOp.from_list([("IZ", 1)]) |
| 34 | + H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) |
| 35 | + |
| 36 | + with Session(service=service, backend="ibmq_qasm_simulator") as session: |
| 37 | + estimator = Estimator(session=session) |
| 38 | + |
| 39 | + theta1 = [0, 1, 1, 2, 3, 5] |
| 40 | + |
| 41 | + # calculate [ <psi1(theta1)|H1|psi1(theta1)> ] |
| 42 | + psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) |
| 43 | + print(psi1_H1.result()) |
| 44 | + |
| 45 | + # calculate [ <psi1(theta1)|H2|psi1(theta1)>, <psi1(theta1)|H3|psi1(theta1)> ] |
| 46 | + psi1_H23 = estimator.run( |
| 47 | + circuits=[psi1, psi1], |
| 48 | + observables=[H2, H3], |
| 49 | + parameter_values=[theta1]*2 |
| 50 | + ) |
| 51 | + print(psi1_H23.result()) |
| 52 | + ``` |
| 53 | + |
| 54 | + Initializes the Estimator primitive. |
| 55 | + |
| 56 | + **Parameters** |
| 57 | + |
| 58 | + * **backend** (`Union`\[`str`, [`IBMBackend`](ibm-backend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](ibm-backend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. |
| 59 | + |
| 60 | + * **session** (`Union`\[[`Session`](session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](ibm-backend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – |
| 61 | + |
| 62 | + Session in which to call the primitive. |
| 63 | + |
| 64 | + 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`](session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. |
| 65 | + |
| 66 | + * **options** (`Union`\[`Dict`, [`Options`](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. |
| 67 | + |
| 68 | + ## Attributes |
| 69 | + |
| 70 | + ### circuits |
| 71 | + |
| 72 | + <Attribute id="qiskit_ibm_runtime.Estimator.circuits"> |
| 73 | + Quantum circuits that represents quantum states. |
| 74 | + |
| 75 | + **Return type** |
| 76 | + |
| 77 | + `tuple`\[`QuantumCircuit`, `...`] |
| 78 | + |
| 79 | + **Returns** |
| 80 | + |
| 81 | + The quantum circuits. |
| 82 | + </Attribute> |
| 83 | + |
| 84 | + ### observables |
| 85 | + |
| 86 | + <Attribute id="qiskit_ibm_runtime.Estimator.observables"> |
| 87 | + Observables to be estimated. |
| 88 | + |
| 89 | + **Return type** |
| 90 | + |
| 91 | + `tuple`\[`SparsePauliOp`, `...`] |
| 92 | + |
| 93 | + **Returns** |
| 94 | + |
| 95 | + The observables. |
| 96 | + </Attribute> |
| 97 | + |
| 98 | + ### options |
| 99 | + |
| 100 | + <Attribute id="qiskit_ibm_runtime.Estimator.options"> |
| 101 | + Return options values for the sampler. |
| 102 | + |
| 103 | + **Return type** |
| 104 | + |
| 105 | + `Options` |
| 106 | + |
| 107 | + **Returns** |
| 108 | + |
| 109 | + options |
| 110 | + </Attribute> |
| 111 | + |
| 112 | + ### parameters |
| 113 | + |
| 114 | + <Attribute id="qiskit_ibm_runtime.Estimator.parameters"> |
| 115 | + Parameters of the quantum circuits. |
| 116 | + |
| 117 | + **Return type** |
| 118 | + |
| 119 | + `tuple`\[`ParameterView`, `...`] |
| 120 | + |
| 121 | + **Returns** |
| 122 | + |
| 123 | + Parameters, where `parameters[i][j]` is the j-th parameter of the i-th circuit. |
| 124 | + </Attribute> |
| 125 | + |
| 126 | + ### session |
| 127 | + |
| 128 | + <Attribute id="qiskit_ibm_runtime.Estimator.session"> |
| 129 | + Return session used by this primitive. |
| 130 | + |
| 131 | + **Return type** |
| 132 | + |
| 133 | + `Optional`\[[`Session`](session "qiskit_ibm_runtime.session.Session")] |
| 134 | + |
| 135 | + **Returns** |
| 136 | + |
| 137 | + Session used by this primitive, or `None` if session is not used. |
| 138 | + </Attribute> |
| 139 | + |
| 140 | + ## Methods |
| 141 | + |
| 142 | + ### run |
| 143 | + |
| 144 | + <Function id="qiskit_ibm_runtime.Estimator.run" signature="run(circuits, observables, parameter_values=None, **kwargs)"> |
| 145 | + Submit a request to the estimator primitive. |
| 146 | + |
| 147 | + **Parameters** |
| 148 | + |
| 149 | + * **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. |
| 150 | + * **observables** (*BaseOperator | PauliSumOp | Sequence\[BaseOperator | PauliSumOp]*) – Observable objects. |
| 151 | + * **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. |
| 152 | + * **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](runtime-options "qiskit_ibm_runtime.RuntimeOptions"). |
| 153 | + |
| 154 | + **Return type** |
| 155 | + |
| 156 | + [RuntimeJob](runtime-job "qiskit_ibm_runtime.RuntimeJob") |
| 157 | + |
| 158 | + **Returns** |
| 159 | + |
| 160 | + Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. |
| 161 | + |
| 162 | + **Raises** |
| 163 | + |
| 164 | + **ValueError** – Invalid arguments are given. |
| 165 | + </Function> |
| 166 | + |
| 167 | + ### set\_options |
| 168 | + |
| 169 | + <Function id="qiskit_ibm_runtime.Estimator.set_options" signature="set_options(**fields)"> |
| 170 | + Set options values for the sampler. |
| 171 | + |
| 172 | + **Parameters** |
| 173 | + |
| 174 | + **\*\*fields** – The fields to update the options |
| 175 | + |
| 176 | + **Return type** |
| 177 | + |
| 178 | + `None` |
| 179 | + </Function> |
| 180 | +</Class> |
| 181 | + |
0 commit comments