推定法
class Estimator(mode=None, options=None)
ベース: BaseEstimatorV2
IBM Quantum Compute (旧称: Qiskit Runtime )用のクライアントサイド・エスティメータプリミティブ。
これは、Executorプリミティブを基盤として構築されたEstimatorの実装であり、より高速なフィードバックループとユーザーによる制御性の向上を実現し、透過的なクライアントサイド処理を可能にします。
例
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Create a simple circuit
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
# Define observable
observable = SparsePauliOp.from_list([("ZZ", 1), ("XX", 1)])
# Run the estimator with options
estimator = Estimator(mode=backend)
estimator.options.default_precision = 0.01
estimator.options.execution.init_qubits = True
job = estimator.run([(circuit, observable)])
result = job.result()パラメーター
-
mode (BackendV2 | Session |Batch | None) –
プリミティブクエリの実行に使用された実行モード。 これは以下のいずれかです。
実行モードの詳細については、『 IBM Quantum Compute 』のドキュメントを参照してください。
-
options (EstimatorOptions) – 推定器のオプション。 利用可能なすべてのオプション
EstimatorOptionsについては、こちらをご覧ください。
属性
mode
このプリミティブで使用されている実行モードを返します。
戻り値
このプリミティブで使用されるモード、または実行モードが使用されない None 場合。
options
種類: EstimatorOptions
このエスティメータのオプション。
方法
backend
finalize_options
finalize_options()
見積もりツールのオプションを設定し、確定します。
このメソッドは、設定された耐障害性レベルとユーザーが指定したオプションを組み合わせて、. の呼び出し内で使用される最終的なインスタンス EstimatorOptions を生成します run()。
最終的な選択肢を導き出すためのプロセスは以下の通りです:
-
によって決定されるデフォルト値を使用して、新しい
EstimatorOptionsオブジェクトを初期化しますresilience_level。 -
ユーザー指定のオプションを適用し、レジリエンスレベルのデフォルト値を継承するよう意図されている
None、空欄のままのフィールドはスキップします。 -
必須のオプションの依存関係を強制する。 具体的には、次のとおりです。
- 測定の緩和を有効にすると、自動的に測定のツイリングも有効になります。
- ゲートベースの緩和手法(PEAベースのZNEやPECなど)を有効にすると、ゲート・トゥワーリングと測定トゥワーリングの両方が自動的に有効になります。
戻り値
最終的な EstimatorOptions オブジェクト。
戻りの型
find_unique_layers
find_unique_layers(pubs, types='gates')
指定されたPUB全体で見つかった一意のボックス付きレイヤーを返します。
層の types 数は または "gates" のいずれかであり "all"、それぞれゲート層のみ、あるいはすべての層に対応します。 返されるリストには、入力のPUBに現れる、それぞれ異なるボックス化されたレイヤー(として表される CircuitInstruction)の各インスタンスが1つずつ含まれます。
たとえば、ノイズ学習の場合、量子ビットゲート層のみを残します:
est = Estimator(mode, options)
est.options.resilience.pec_mitigation = True
layers = est.find_unique_layers(pubs, types="gates")
results = NoiseLearnerV3(mode).run(layers).result()
pauli_linblad_maps = results.to_pauli_lindblad_maps()
# Assign the learned model so PEC uses it on the next run.
est.options.resilience.layer_noise_model = zip(layers, pauli_linblad_maps)パラメーター
- pubs (Iterable[EstimatorPubLike]) – 一意のボックスの一覧を返すPUBのリスト。
- types (Literal['gates', 'all']) – 返すレイヤーの種類。 か、
"gates"あるいは のいずれかです"all"。
戻り値
指定されたPUB全体に見られる、ある特定のタイプ特有の箱状の層。
戻りの型
リスト[CircuitInstruction]
run
run(pubs, *, precision=None, dry_run=False)
見積もりプリミティブにリクエストを送信します。
中程度から複雑なワークロードの場合、推定子の入力を実行子の入力にマッピングするためのクライアント側処理は、リソースを大量に消費する可能性があり、関数の呼び出しからその実行 job が送信されるまでの間に遅延が生じる原因となることがあります。 呼び出しの進行状況を確認するには、ロギング(レベル INFO )を設定することをお勧めします。詳細については、 IBM Quantum Compute のドキュメントを参照してください。
パラメーター
- pubs (Iterable[EstimatorPubLike]) – パブのようなオブジェクトの反復可能オブジェクト。 例えば、回路と観測可能量のリスト、あるいはタプルなど
(circuit, observables, parameter_values)。 - precision (float | None) – 独自の精度を指定していない各推定量 pub について、期待値の推定値に対する目標精度。 その場合
None、からの値が使用されますoptions.default_precision。 - dry_run (bool) – の場合
True、QPU上でジョブを実行せずにドライランを実行します。 このモードを使用すると、ジョブの検証、使用量の推定、および回路タイミングのメタデータの取得を行うことができます。 返される結果は、想定されるスキーマを維持していますが、実際の測定結果やシミュレーション結果ではなく、 ランダム化された模擬データが含まれています。 偽のバックエンドとは異なり、このドライランの処理はサーバー側で行われるため、ジョブがすぐに完了しない場合があり、この機能へのアクセスが制限される可能性があります。
戻り値
送信されたジョブ。
昇給
- ValueError – バックエンドが提供されていない場合。
- IBMInputValueError – パブが指定されていない場合、精度が適切に指定されていない場合、またはサポートされていないオプションが検出された場合。
戻りの型
RuntimeJobV2 | LocalRuntimeJob