Skip to main content
IBM Quantum Platform

オプションの紹介

オプションを使用することで、 IBM Quantum のプリミティブをニーズに合わせてカスタマイズすることができます。


構造

プリミティブ関数を呼び出す際、オプションクラスまたは辞書を使用してオプションを渡すことができます。 や resilience_levelなどのよく使われるオプションは、最初のレベルにあります。 その他のオプションは、次のようなカテゴリに分類 executionされています。 オプションは次の形式で指定してください: options.option.sub-option.sub-sub-option = choice. 例: options.dynamical_decoupling.enable = True


デフォルト

オプションに値を指定しなかった場合、そのオプションには特別な値 Unset が与えられ、サーバーのデフォルト値が使われる。 したがって、デフォルト値はコードのバージョンに関係なく同じになる。

各プリミティブの「オプション」ガイドにある「オプションクラスの概要」セクションの表には、デフォルト値が記載されています。


オプションの設定

オプションは、プリミティブが構築される前に定義し、オプションクラスのインスタンスまたは辞書としてプリミティブに渡すことができます。 プリミティブはそれらのコピーを作成するため、元の辞書やオプションインスタンスを変更しても、プリミティブが保持するオプションには影響しません。

また、プリミティブが構築された後でも、オプションを変更することができます。 アプリケーションに最適なワークフローを使用してください。

プリミティブ・オプションの指定に関する注意事項
  • プリミティブの初期化中または初期化後に、利用可能なオプションを確認できます。
  • オプションの値を指定しない場合、そのオプションには特別な値が割り当てられ、 Unset サーバーのデフォルト設定が使用されます。
  • この options 属性は、 Python 型です dataclass 。 組み込み asdict のメソッドを使って、それを辞書に変換することができます。

options クラス

プリミティブクラスのインスタンスを作成する際、その options クラスのインスタンスを渡すことができます。 run() これらのオプションは、計算を実行する際に適用されます。 オプションは次の形式で指定してください: options.option.sub-option.sub-sub-option = choice. 例: options.dynamical_decoupling.enable = True

クラスの詳細については、こちらまたは EstimatorOptions こちらをご覧ください SamplerOptions

以下の例ではEstimatorプリミティブを使用していますが、他のプリミティブの構文も同様です。

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime.options import EstimatorOptions

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

options = EstimatorOptions(
    resilience_level=2,
    resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)

# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]

estimator = Estimator(mode=backend, options=options)

辞書

プリミティブを初期化する際、オプションを辞書として指定することができます。

以下の例ではEstimatorプリミティブを使用していますが、他のプリミティブの構文も同様です。

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during initialization
estimator = Estimator(
    backend,
    options={
        "resilience_level": 2,
        "resilience": {
            "zne_mitigation": True,
            "zne": {"noise_factors": [1, 3, 5]},
        },
    },
)

初期化後のオプションの更新

オプションは、 _primitive_.options.option.sub-option.sub-sub-option = choice オートコンプリート機能を利用するためにこの形式で指定するか、一括更新を行うには メソッド update() を使用してください。

SamplerOptionsプリミティブのオプションクラス(EstimatorOptions または)は、プリミティブの初期化後にオプションを設定する場合、インスタンス化する必要はありません。

以下の例ではEstimatorプリミティブを使用していますが、他のプリミティブの構文も同様です。

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(mode=backend)

# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
    default_precision=0.02, resilience={"zne_mitigation": True}
)

次のステップ

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