Skip to main content
IBM Quantum Platform

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)

GitHub

プリセットを生成する 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_map target backend 、それ以外の引数が指定された場合は、バックエンドに含まれる値よりも優先される。

  • target (Target) – は Target はバックエンドのコンパイル・ターゲットを表す。 次の属性が設定されていなければ、この引数から推測される: coupling_mapbasis_gates

  • basis_gates (list) – 展開する基底ゲート名のリスト(例: ['u1', 'u2', 'u3', 'cx'] )。

  • coupling_map (CouplingMap orlist) –

    有向グラフはカップリング・マップを表している。 複数のフォーマットに対応:

    1. CouplingMap インスタンス
    2. リストは、各エントリーがバックエンドでサポートされるすべての有向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' representing BasisTranslatorUnitarySynthesis をそれぞれ表します。 これは、出力の 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) – 入力回路がゼロ初期化されているかどうかを示す。

戻り値

指定されたオプションのプリセットパスマネージャ

戻りの型

StagedPassManager

レイズ

ValueError - optimization_level に無効な値が渡された場合。

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