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() 関数で使用されるデフォルトのパスマネージャーです。 この関数は、スタンドアロンの PassManager オブジェクトを構築する便利で簡単な方法を提供します。 transpile() オブジェクトを構築する便利で簡単な方法を提供します。
パスマネージャー構築のためのターゲット制約は Target インスタンス BackendV2 インスタンス、または緩やかな制約(basis_gates, coupling_map, または dt)によって指定することができる。 ターゲット制約の優先順位は次のように機能する。 target 入力が提供された場合、 backend 入力や緩い制約よりも優先される。 backend 、上記のリストから緩やかな制約と一緒に提供された場合、緩やかな制約は、対応するバックエンドの制約よりも優先される。 この動作は以下の表にまとめられている。 表の最初の列は、ユーザーが提供する可能性のある制約を要約したもので、各セルは、優先順位がその特定の制約入力に割り当てられているか、別の入力(ターゲット/バックエンド( V1 )/バックエンド( V2 ))に割り当てられているかを示しています。
ユーザー提供 | ターゲット | バックエンド( V2 ) |
|---|---|---|
| ベーシスゲート | ターゲット | ベーシスゲート |
| カップリングマップ | ターゲット | カップリングマップ |
| dt | ターゲット | dt |
ターゲットの基底がクリフォード+Tゲートで構成されている場合、この関数は専用のクリフォード+Tトランスパイラ・パイプラインを構築します。詳細については、ドキュメントを clifford_t_pass_manager() 参照してください。 連続基底セットへのトランスパイルに関連する引数は、このフローでは無視されます。
パラメーター
-
optimization_level (int) –
を生成する最適化レベル。
StagedPassManagerのためのものです。 この指定がない場合、デフォルトで最適化レベル2が使用される。 これは0、1、2、3のいずれかである。 より高いレベルは、より最適化された回路を生成する可能性があるが、その代償としてトランスパイルタイムが長くなる:- 0:最適化しない
- 1: 光の最適化
- 2: 重い最適化
- 3:さらに重い最適化
-
backend (Backend) –
basis_gates,, のデフォルト値のソースとして使用できるオプションのバックエンドオブジェクト。coupling_maptargetbackend、それ以外の引数が指定された場合は、バックエンドに含まれる値よりも優先される。 -
target (Target) – は
Targetはバックエンドのコンパイル・ターゲットを表す。 次の属性が設定されていなければ、この引数から推測される:coupling_mapとbasis_gates。 -
basis_gates (list) – 展開する基底ゲート名のリスト(例:
['u1', 'u2', 'u3', 'cx'])。 -
coupling_map (CouplingMap orlist) –
有向グラフはカップリング・マップを表している。 複数のフォーマットに対応:
CouplingMapインスタンス- リストは、各エントリーがバックエンドでサポートされるすべての有向2量子ビット相互作用を指定する隣接行列として与えられなければならない:
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
-
dt (float) – バックエンドのサンプル時間(分解能)(秒)。
None(デフォルト)でバックエンドが指定されている場合は、backend.dt。 -
initial_layout (Layout | List[int]) – 物理量子ビット上の仮想量子ビットの初期位置。
-
layout_method (str) –
Pass初期量子ビット配置の選択に使用する。 有効な選択肢は、'trivial'、'dense'、'sabre'である。TrivialLayout,DenseLayoutそしてSabreLayoutをそれぞれ表します。 これは、出力のlayoutステージで使用する外部プラグイン名でもある。StagedPassManager. インストールされているプラグインのリストはlist_stage_plugins()stage_name引数に"layout"を指定してください。 -
routing_method (str) – アーキテクチャ上の量子ビットのルーティングに使用するパス。 有効な選択肢は、
'basic'、'lookahead'、'sabre'、'none'である。BasicSwap,LookaheadSwap,SabreSwapそしてルーティングが必要な場合はエラーとなる。 これは、出力のroutingステージで使用する外部プラグイン名でもある。StagedPassManager. インストールされているプラグインのリストはlist_stage_plugins()stage_name引数に"routing"を指定してください。 -
translation_method (str) – ゲートを基底ゲートに変換するために使用する方法。 有効な選択肢
'translator','synthesis'representingBasisTranslatorとUnitarySynthesisをそれぞれ表します。 これは、出力のtranslationステージで使用する外部プラグイン名でもある。StagedPassManager. インストールされているプラグインのリストはlist_stage_plugins()stage_name引数に"translation"を指定してください。 -
scheduling_method (str) – スケジューリング指示に使用するパス。 有効な選択肢は
'alap'と'asap'。 これは、出力のschedulingステージで使用する外部プラグイン名でもある。StagedPassManager. インストールされているプラグインのリストはlist_stage_plugins()stage_name引数に"scheduling"を指定してください。 -
approximation_degree (float) – 回路近似に使用されるヒューリスティックダイヤル( 1.0=no 近似、 0.0=maximal 近似)。
-
seed_transpiler (int) – トランスパイラのストキャスティック部分のランダムシードを設定する。
-
unitary_synthesis_method (str) – 使用するユニタリー合成法の名前。 デフォルトでは
'default'。 インストールされているプラグインのリストはunitary_synthesis_plugin_names(). -
unitary_synthesis_plugin_config (dict) – ユニタリー合成プラグインに直接渡されるオプションの設定辞書。 デフォルトのユニタリー合成法はカスタムコンフィギュレーションを取らないため、デフォルトではこの設定は何の効果もない。 これは、
unitary_synthesis_methodの引数でユニタリー合成プラグインが指定されている場合にのみ必要である。 これは各ユニタリー合成プラグインのカスタムなので、このオプションの使い方はプラグインのドキュメントを参照してください。 -
hls_config (HLSConfig) – オプションのコンフィギュレーション・クラス
HLSConfigに直接渡されます。HighLevelSynthesisに直接渡されます。 このコンフィギュレーション・クラスは、さまざまな高レベル・オブジェクトに対して、合成アルゴリズムとそのパラメータのリストを指定することができます。 -
init_method (str) – 出力の
initステージに使用するプラグイン名。StagedPassManager. デフォルトでは、外部プラグインは使用されない。 ステージ名の引数にlist_stage_plugins()をステージ名の引数に"init"。 -
optimization_method (str) – 出力の
optimizationステージに使用するプラグイン名。StagedPassManager. デフォルトでは、外部プラグインは使用されない。 インストールされているプラグインのリストはlist_stage_plugins()stage_name引数に"optimization"を指定してください。 -
qubits_initially_zero (bool) – 入力回路がゼロ初期化されているかどうかを示す。
戻り値
指定されたオプションのプリセットパスマネージャ
戻りの型
レイズ
ValueError - optimization_level に無効な値が渡された場合。