Skip to main content
IBM Quantum Platform

EstimatorV2

class EstimatorV2(mode=None, options=None)

GitHub

ベース: BasePrimitiveV2[EstimatorOptions], EstimatorBaseEstimatorV2

Qiskit Runtime Estimator プリミティブサービスと対話するためのクラス。

Qiskit Runtime 量子回路や量子観測量の期待値を推定するサービス。

この run() を使用すると、回路、観測値、パラメータをEstimatorプリミティブに送信することができます。

構築後、PUB(Primitive Unified Bloc)のリストを用いて run() メソッドを呼び出すことで使用される。 それぞれの PUB には4つの値が含まれており、それらを組み合わせることで、エスティメータが完了する計算単位が定義される:

  • 単一 QuantumCircuitその最終状態を ψ(θ)\psi(\theta) と定義する、
  • どの期待値を推定するかを指定する1つまたは複数の観測値( PauliSparsePauliOpstr を含む、任意の ObservablesArrayLike として指定される)( HjH_j
  • 回路をバインドするコレクションパラメータ値セット、 θk\theta_k
  • 期待値の推定精度の目標値(オプション)。

以下は推定値の使用例である。

from qiskit.circuit.library import real_amplitudes
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 = real_amplitudes(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(theta)|hamiltonian|psi(theta)> ]
job = estimator.run([(isa_psi, isa_observables, [theta])])
pub_result = job.result()[0]
print(f"Expectation values: {pub_result.data.evs}")

パラメーター

  • mode (BackendV2 |Session |Batch | str | None) –

    プリミティブクエリの実行モード。 これは以下のいずれかです。

    • ジョブ・モードを使用している場合は、 Backend
    • A Session セッション実行モードを使用している場合
    • A Batch バッチ実行モードを使用している場合

    詳細については Execution modesQiskit Runtime のドキュメントを参照してください。

  • options (dict | EstimatorOptions | None) – 推定器のオプションについては、詳細な説明を EstimatorOptions 参照してください。


属性

mode

このプリミティブが使用する実行モードを返します。

戻り値

このプリミティブが使用するモード。実行モードが使用されない場合は、 None

options

返品方法。

version

デフォルト値: 2


方法

backend

backend()

GitHub

プリミティブクエリが実行されるバックエンドを返します。

戻りの型

BackendV2

run

run(pubs, *, precision=None)

GitHub

エスティメーターのプリミティブにリクエストを送信します。

パラメーター

  • (circuit, observables, parameter_values)pubs (Iterable[EstimatorPub | tuple[QuantumCircuit, str | Pauli |SparsePauliOp |SparseObservable | Mapping[str |Pauli, float] | _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes]] | tuple[QuantumCircuit, str | Pauli |SparsePauliOp |SparseObservable | Mapping[str |Pauli, float] | _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes], Mapping[Parameter | str | tuple[Parameter | str, ...], _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]]] | tuple[QuantumCircuit, str | Pauli |SparsePauliOp |SparseObservable | Mapping[str |Pauli, float] | _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | bytes | _NestedSequence[bool | int | float | complex | str | bytes], Mapping[Parameter | str | tuple[Parameter | str, ...], _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]], Real]]) – タプル (circuit, observables) や などの、pub のような(プリミティブ統一ブロック)オブジェクトの反復可能オブジェクト。
  • precision (float | None) – 独自の精度を指定しない各ランEstimator Pubの期待値推定値の目標精度。 None の場合、推定値のデフォルト精度が使用されます。

戻り値

提出された仕事

レイズ

ValueError - 精度値が厳密に0より大きくない場合。

戻りの型

RuntimeJobV2

このページは役に立ちましたか?
GitHub に関するバグ、誤字の報告、またはコンテンツのリクエスト。