Skip to main content
IBM Quantum Platform

推定法

class Estimator(mode=None, options=None)

GitHub

ベース: 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) –

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

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

    実行モードの詳細については、『 IBM Quantum Compute 』のドキュメントを参照してください。

  • options (EstimatorOptions) – 推定器のオプション。 利用可能なすべてのオプション EstimatorOptions については、こちらをご覧ください。


属性

mode

このプリミティブで使用されている実行モードを返します。

戻り値

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

options

種類: EstimatorOptions

このエスティメータのオプション。


方法

backend

backend()

GitHub

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

戻りの型

BackendV2

finalize_options

finalize_options()

GitHub

見積もりツールのオプションを設定し、確定します。

このメソッドは、設定された耐障害性レベルとユーザーが指定したオプションを組み合わせて、. の呼び出し内で使用される最終的なインスタンス EstimatorOptions を生成します run()。

最終的な選択肢を導き出すためのプロセスは以下の通りです:

  1. によって決定されるデフォルト値を使用して、新しい EstimatorOptions オブジェクトを初期化します resilience_level。

  2. ユーザー指定のオプションを適用し、レジリエンスレベルのデフォルト値を継承するよう意図されている None 、空欄のままのフィールドはスキップします。

  3. 必須のオプションの依存関係を強制する。 具体的には、次のとおりです。

    • 測定の緩和を有効にすると、自動的に測定のツイリングも有効になります。
    • ゲートベースの緩和手法(PEAベースのZNEやPECなど)を有効にすると、ゲート・トゥワーリングと測定トゥワーリングの両方が自動的に有効になります。

戻り値

最終的な EstimatorOptions オブジェクト。

戻りの型

EstimatorOptions

find_unique_layers

find_unique_layers(pubs, types='gates')

GitHub

指定された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)

GitHub

見積もりプリミティブにリクエストを送信します。

中程度から複雑なワークロードの場合、推定子の入力を実行子の入力にマッピングするためのクライアント側処理は、リソースを大量に消費する可能性があり、関数の呼び出しからその実行 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

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。