qiskit.transpiler.generate_preset_pass_manager
qiskit.transpiler.generate_preset_pass_manager(optimization_level=2, backend=None, target=None, basis_gates=None, coupling_map=None, initial_layout=None, layout_method=None, routing_method=None, translation_method=None, scheduling_method=None, approximation_degree=1.0, seed_transpiler=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, init_method=None, optimization_method=None, dt=None, qubits_initially_zero=True, *, _skip_target=False)
プリセットを生成する PassManager
この関数は、プリセット・パス・マネージャーを素早く生成するために使用されます。 プリセット・パスマネージャーは、この transpile() 関数でデフォルトとして使用されるパスマネージャーです。 この関数は、関数が transpile() 内部で構築・使用しているものと同様のスタンドアロン PassManager オブジェクトを作成するための、便利でシンプルな方法を提供します。
パスマネージャー構築のためのターゲット制約は Target インスタンス BackendV2 インスタンス、または緩やかな制約(basis_gates, coupling_map, または dt)によって指定することができる。 ターゲット制約の優先順位は次のように機能する。 target 入力が提供された場合、 backend 入力や緩い制約よりも優先される。 backend 、上記のリストから緩やかな制約と一緒に提供された場合、緩やかな制約は、対応するバックエンドの制約よりも優先される。 この動作は以下の表にまとめられている。 表の最初の列は、ユーザーが提供する可能性のある制約を要約したもので、各セルは、優先順位がその特定の制約入力に割り当てられているか、別の入力(ターゲット/バックエンド( V1 )/バックエンド( V2 ))に割り当てられているかを示しています。
ユーザー提供 | ターゲット | バックエンド( V2 ) |
|---|---|---|
| ベーシスゲート | ターゲット | ベーシスゲート |
| カップリングマップ | ターゲット | カップリングマップ |
| dt | ターゲット | dt |
ターゲットの基底がクリフォード+Tゲートで構成されている場合、この関数は専用のクリフォード+Tトランスパイラーパイプラインを構築します。詳細については、を参照 generate_preset_clifford_t_pass_manager() してください。 連続基底セットへのトランスパイルにのみ適用される引数は、このフローでは無視されます。 例えば、単一量子ビットのユニタリー演算をクリフォード+Tシーケンスに合成する際には、この "unitary_synthesis_method" 要素は考慮されない。
パラメーター
-
optimization_level (int) –
を生成する最適化レベル。
StagedPassManagerのためのものです。 この指定がない場合、デフォルトで最適化レベル2が使用される。 これは0、1、2、3のいずれかである。 より高いレベルは、より最適化された回路を生成する可能性があるが、その代償としてトランスパイルタイムが長くなる:- 0:最適化しない
- 1: 光の最適化
- 2: 重い最適化
- 3:さらに重い最適化
-
target``basis_gatesbackend (Backend | None) –、coupling_map、および のデフォルト値のソースとして使用できる、オプションのバックエンドオブジェクト。 これら以外の引数が指定された場合、backendそれらはバックエンドに含まれる値よりも優先されます。 -
target (Target | None) – これは
Target、バックエンドのコンパイル先を表しています。 以下の属性は、設定されていない場合、この引数から推論されます:coupling_mapおよびbasis_gates。 -
['u1', 'u2', 'u3', 'cx']basis_gates (list[str] | None) – アンロール先のベースゲート名のリスト(例:)。 -
coupling_map (CouplingMap |list | None) –
有向グラフはカップリング・マップを表している。 複数のフォーマットに対応:
CouplingMapインスタンス- リストは、各エントリーがバックエンドでサポートされるすべての有向2量子ビット相互作用を指定する隣接行列として与えられなければならない:
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
-
layout_method (str | None) – 初期の量子ビットの配置を選択する際に使用する。
PassTrivialLayout'sabre'有効な選択肢は'trivial'、'dense'、 であり、それぞれ、DenseLayout、SabreLayoutを表しています。StagedPassManagerこれは、出力のステージlayoutで使用する外部プラグイン名としても指定できます。 引数に をstage_name指定して"layout"を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
routing_method (str | None) – このアーキテクチャ上で量子ビットをルーティングするために使用するパス。
BasicSwap有効な選択肢は'basic'、'lookahead'、'sabre'、 であり、'none'それぞれ、LookaheadSwap、SabreSwap、 を表し、ルーティングが必要な場合はエラーとなります。StagedPassManagerこれは、出力のステージroutingで使用する外部プラグイン名としても指定できます。 引数に をstage_name指定して"routing"を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
translation_method (str | None) – ゲートを基底ゲートに変換するための方法。
BasisTranslator'translator'有効な選択肢は、'synthesis'それぞれ、UnitarySynthesis、 を表す。StagedPassManagerこれは、出力のステージtranslationで使用する外部プラグイン名としても指定できます。 引数に をstage_name指定して"translation"を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
scheduling_method (str | None) – スケジュール設定に使用するパス。
'asap'有効な選択肢は'alap'と です。StagedPassManagerこれは、出力のステージschedulingで使用する外部プラグイン名としても指定できます。 引数に をstage_name指定して"scheduling"を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
approximation_degree (float | None) – 回路の近似に使用されるヒューリスティックダイヤル。ここで
1.0、 は近似を行わないこと(数値的許容誤差の範囲内)、0.0は最大近似を行うことを意味する。 が利用可能な場合target、のNone値は、ターゲット内の演算において、報告されたエラー率の範囲内であれば近似が許容されることを示します。 -
seed_transpiler (int | None) – トランスパイラの確率的な部分に対して、ランダムなシードを設定します。 ここで指定されていない場合は、環境変数やユーザー設定ファイルでも指定できます。
QISKIT_TRANSPILER_SEED優先順位は、この引数、次に環境変数、そして最後にユーザー設定オプションの順です。 したがって、この引数を設定すると、シードを設定する他の方法よりも優先されます。 -
unitary_synthesis_method (str) – 使用するユニタリー合成法の名前。 デフォルトでは
'default'。 インストールされているプラグインのリストはunitary_synthesis_plugin_names(). -
unitary_synthesis_plugin_config (dict | None) – ユニタリー合成プラグインに直接渡される、オプションの設定辞書。 デフォルトでは、この設定は効果を持ちません。これは、デフォルトのユニタリー合成法ではカスタム設定を受け付けないためです。
unitary_synthesis_methodこれは、引数で単一合成プラグインが指定されている場合にのみ必要となります。 この設定は各ユニタリー合成プラグインごとに異なるため、このオプションの使用方法については、各プラグインのドキュメントを参照してください。 -
hls_config (HLSConfig | None) – 変換パスに
HighLevelSynthesis直接渡される、オプションの設定クラスHLSConfigです。 この設定クラスを使用すると、さまざまな高レベルオブジェクトに対して、合成アルゴリズムの一覧とそのパラメータを指定することができます。 -
StagedPassManagerinit_method (str | None) – 出力の ステージinitで使用するプラグイン名。 デフォルトでは、外部プラグインは使用されません。 ステージ名の引数として を指定"init"して を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
StagedPassManageroptimization_method (str | None) – 出力の ステージoptimizationで使用するプラグイン名。 デフォルトでは、外部プラグインは使用されません。 引数に をstage_name指定して"optimization"を使用list_stage_plugins()すると、インストール済みのプラグインの一覧を確認できます。 -
dt (float | None) – バックエンドのサンプリング時間(分解能)を秒単位で指定します。 (デフォルト) の場合
None、バックエンドが指定されているときは、backend.dtそれが使用されます。 -
qubits_initially_zero (bool) – 入力回路がゼロ初期化されているかどうかを示す。
戻り値
指定されたオプションのプリセットパスマネージャ
戻りの型
レイズ
ValueError - optimization_level に無効な値が渡された場合。