Skip to main content
IBM Quantum Platform

プリセットされたパスワードマネージャー

qiskit.transpiler.preset_passmanagers

このモジュールには、トランスパイラ用のプリセット・パス・マネージャを生成するための関数が含まれています。 のインスタンスです。 StagedPassManager のインスタンスです。 transpile() 関数の一部として回路変換を実行するために使用されるインスタンスです。 ここでの機能は2つの部分に分かれている。 で使用されるパス・マネージャー全体を生成するために使用される関数(低レベル・プリセット・パス・マネージャー生成関数)と transpile() (低レベル・プリセット・パス・マネージャ生成 )、そして2つ目には、プリセット・パス・マネージャを構成するステージを(全体的または部分的に)構築するために使用される関数 (ステージ生成関数 )が含まれます。


低レベルプリセットパス生成器

連続基底

level_0_pass_manager

qiskit.transpiler.preset_passmanagers.level_0_pass_manager(pass_manager_config)

GitHub

レベル0のパスマネージャー:バックエンドへのマッピング以外、明示的な最適化は行わない。

このパス・マネージャーは、ユーザーが指定した初期レイアウトを適用する。 もし何も与えられない場合、i番目の仮想量子ビットをi番目の物理量子ビットにマッピングすることからなる些細なレイアウトが使用される。 未使用の物理量子ビットはアンシラスペースとして割り当てられる。

パス・マネージャーは、次に回路を目的の基底に展開し、カップリング・マップに合うように回路を変換する。

パラメーター

pass_manager_config (PassManagerConfig) – パス・マネージャーのコンフィギュレーション。

戻り値

レベル0のパスマネージャー。

レイズ

TranspilerError - passmanagerの設定が無効な場合。

戻りの型

StagedPassManager

level_1_pass_manager

qiskit.transpiler.preset_passmanagers.level_1_pass_manager(pass_manager_config)

GitHub

レベル1パスマネージャー:単純な隣接ゲートのコラプシングによる光の最適化。

このパス・マネージャーは、ユーザーが指定した初期レイアウトを適用する。 もし何も与えられず、些細なレイアウト(i番目の仮想→i番目の物理)で回路がカップリング・マップに適合する場合、そのレイアウトが使われる。 そうでなければ、回路は最も密に接続された結合部分グラフに写像され、スワップが挿入されて写像される。 未使用の物理量子ビットはアンシラスペースとして割り当てられる。 パス・マネージャーは、次に回路を目的の基底に展開し、カップリング・マップに合うように回路を変換する。 最後に、隣接ゲートの崩壊と冗長リセットの除去という形で最適化が行われる。

パラメーター

pass_manager_config (PassManagerConfig) – パス・マネージャーのコンフィギュレーション。

戻り値

1級パスマネージャー

レイズ

TranspilerError - passmanagerの設定が無効な場合。

戻りの型

StagedPassManager

level_2_pass_manager

qiskit.transpiler.preset_passmanagers.level_2_pass_manager(pass_manager_config)

GitHub

レベル2パス・マネージャ:初期レイアウトの選択と可換性ルールを使用したゲート・キャンセルによる中程度の最適化。

このパス・マネージャーは、ユーザーが指定した初期レイアウトを適用する。 もし何も与えられなければ、完全なレイアウト(すなわち、すべての2量子ビット相互作用を満たすレイアウト)の探索が行われる。 そのようなレイアウトが見つからない場合、量子ビットは最も密に接続された部分集合にレイアウトされる。

パス・マネージャは次に、結合制約に合うように回路を変換する。 その後、基底に展開され、反転したcx方向が固定される。 最後に、可換ゲート・キャンセルと冗長リセット除去という形で最適化が行われる。

パラメーター

pass_manager_config (PassManagerConfig) – パス・マネージャーのコンフィギュレーション。

戻り値

2級合格マネージャー。

レイズ

TranspilerError - passmanagerの設定が無効な場合。

戻りの型

StagedPassManager

level_3_pass_manager

qiskit.transpiler.preset_passmanagers.level_3_pass_manager(pass_manager_config)

GitHub

レベル3パスマネージャー:ノイズ適応型量子ビットマッピングと、可換則とユニタリー合成を使用したゲートキャンセルによる高度な最適化。

このパス・マネージャーは、ユーザーが指定した初期レイアウトを適用する。 もし何も与えられなければ、完全なレイアウト(すなわち、すべての2量子ビット相互作用を満たすレイアウト)の探索が行われる。 そのようなレイアウトが見つからず、デバイスの較正情報が利用可能な場合、回路は最高の読み出しを持つ量子ビットと、最も忠実度の高いCXゲートにマッピングされる。

パス・マネージャは次に、結合制約に合うように回路を変換する。 その後、基底に展開され、反転したcx方向が固定される。 最後に、可換ゲートのキャンセル、2量子ビット・ユニタリー・ブロックの再合成、冗長リセットの除去、最終的なレイアウトの改善といった形で最適化が行われる。

パラメーター

pass_manager_config (PassManagerConfig) – パス・マネージャーのコンフィギュレーション。

戻り値

3級合格マネージャー。

レイズ

TranspilerError - passmanagerの設定が無効な場合。

戻りの型

StagedPassManager

Clifford+T 基底関数セット

clifford_t_pass_manager

qiskit.transpiler.preset_passmanagers.clifford_t_pass_manager(pass_manager_config, optimization_level)

GitHub

Clifford+T 基底へのトランスパイル用に、ステージング・パスマネージャーを生成する。

この関数は、ターゲット基底がクリフォード+Tゲートで構成されている場合に呼び出されます generate_preset_pass_manager() 。 以下の段階からなる専用のトランスパイルパイプラインを生成します:

  • 初期化:大規模なゲートを1量子ビットゲートおよび2量子ビットゲートに分解し、論理最適化を行う。
  • レイアウト:連続基底関数セットに使用されるデフォルトのレイアウト戦略を適用します。
  • ルーティング:連続基底関数セットに使用されるデフォルトのルーティング戦略を適用します。
  • RZ変換:回路をクリフォード+RZ基底に変換する。
  • RZ最適化:Clifford+RZ基底内で回路を最適化する。
  • T変換:回路をクリフォード+T基底に変換する。
  • T最適化:Clifford+T基底内で回路を最適化します。
  • スケジューリング:連続基底セットに使用されるデフォルトのスケジューリング戦略を適用します。

最良の結果を得るには、指定されたClifford+T基底に TTTT^\dagger の両方を含め、可能な限り多くのCliffordゲートを組み込むことを検討してください。 例:

basis_gates = get_clifford_gate_names() + ["t", "tdg"]

これらの段階は依然として実験段階にあり、変更される可能性があります。 特に、これらは(連続基底関数セットのステージとは異なり)まだトランスパイラ・ステージ・プラグインとして公開されていません。 さらに、連続基底セットへのトランスパイルが適用されるフィールドは pass_manager_config 、このパスマネージャーによって無視されます。

パラメーター

  • pass_manager_config (PassManagerConfig) – パスマネージャーの設定。
  • optimization_level (int) – 最適化レベル。 特に指定がない場合、デフォルトでは最適化レベル 2 が使用されます。 これは0、1、2、または3のいずれかです。 レベルが高くなるほど、より最適化された回路が生成される可能性が高まりますが、その代償としてトランスパイル時間が長くなります。

戻り値

ステージド・パス・マネージャー。

レイズ

TranspilerError - passmanagerの設定が無効な場合。

戻りの型

StagedPassManager


ステージ生成関数

generate_control_flow_options_check

qiskit.transpiler.preset_passmanagers.generate_control_flow_options_check(layout_method=None, routing_method=None, translation_method=None, optimization_method=None, scheduling_method=None, basis_gates=(), target=None)

GitHub

制御フローを含むDAGで実行すると、無効なオプションと代わりに使用できるオプションを説明するエラーメッセージとともに失敗するパスマネージャを生成する。

戻り値

contains_x 与えられたオプションのいずれかが制御フローをサポートしていない場合、エラーを発生させますが、制御フローを持つ回路が与えられます。

戻りの型

PassManager

generate_error_on_control_flow

qiskit.transpiler.preset_passmanagers.generate_error_on_control_flow(message)

GitHub

指定された回路に制御フローが存在する場合、常にエラーを発生させるパス・マネージャーを取得する。

generate_unroll_3q

qiskit.transpiler.preset_passmanagers.generate_unroll_3q(target, basis_gates=None, approximation_degree=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, qubits_initially_zero=True, optimization_metric=OptimizationMetric.COUNT_2Q)

GitHub

アンロールの生成 >3q PassManager

パラメーター

  • target (Target) – バックエンドを表す Target バックエンドを表す
  • basis_gates (list) – バックエンドターゲットのベースゲートを表すstrゲート名のリスト
  • approximation_degree (Optional[float]) – 使用するヒューリスティック近似度。 0から1の間で指定できる。
  • unitary_synthesis_method (str) – 使用するユニタリー合成法。 インストールされているプラグインのリストは unitary_synthesis_plugin_names().
  • unitary_synthesis_plugin_config (dict) – オプションの辞書プラグイン設定。これはプラグイン固有のもので、使用方法については、指定されたプラグインのドキュメントを参照してください。
  • hls_config (HLSConfig) – オプションのコンフィギュレーション・クラス。 HighLevelSynthesis パス。 さまざまなハイレベル・オブジェクトの合成方法を指定する。
  • qubits_initially_zero (bool) – 入力回路がゼロ初期化されているかどうかを示す。
  • optimization_metric (OptimizationMetric) – アンロール最適化の際に使用されるメトリックを定義するオブジェクト OptimizationMetric

戻り値

アンロール 3q またはそれ以上のパス・マネージャー

戻りの型

PassManager

generate_embed_passmanager

qiskit.transpiler.preset_passmanagers.generate_embed_passmanager(coupling_map)

GitHub

レイアウト埋め込みを生成する PassManager

これは PassManager オブジェクトを生成するために使用されます

パラメーター

coupling_map (Union[CouplingMap, Target]) – 回路を埋め込むためのバックエンドのマッピング。

戻り値

レイアウトプロパティを前提とする埋め込みパスマネージャ

セットは以前の段階で設定されている

戻りの型

PassManager

generate_routing_passmanager

qiskit.transpiler.preset_passmanagers.generate_routing_passmanager(routing_pass, target, coupling_map=None, vf2_call_limit=None, seed_transpiler=-1, check_trivial=False, use_barrier_before_measurement=True, vf2_max_trials=None)

GitHub

ルーティングの生成 PassManager

パラメーター

  • routing_pass (TransformationPass) – ルーティングを実行するパス
  • target (Target) – バックエンドを表す Target バックエンドを表す
  • coupling_map (CouplingMap) – をルーティングするバックエンドのカップリングマップ
  • vf2_call_limit (int) – vf2 ポストレイアウトパスの内部呼び出し制限。 これが None または 0 の場合、 vf2 ポストレイアウトは実行されません。
  • seed_transpiler (int) – トランスパイラのストキャスティック部分のランダムシードを設定する。 これは現在 VF2PostLayout でしか使用されておらず、デフォルト値の -1 を強く推奨する(ランダム化なし)。 値が None の場合、システムエントロピーからシードされる。
  • check_trivial (bool) – trueに設定すると、ルーティング後に VF2PostLayout を実行する条件となる。 これは、構築されたパス・マネジャーが最初のレイアウトとして実行され、完璧なレイアウトであればそれを使用する場合にのみ必要です。 TrivialLayout を最初のレイアウト試行として実行し、それが完璧なレイアウトであった場合にのみ使用する(プリセット・パス・マネージャー・レベル1の場合と同様)。
  • use_barrier_before_measurement (bool) – true(デフォルト)の場合 BarrierBeforeFinalMeasurements トランスパイラ・パスは routing_pass 引数で指定されたパスの前に実行されます。
  • vf2_max_trials (int) – vf2 ポストレイアウトパスの評価時に を実行する最大試行回数。 VF2 これが None または 0 の場合、 vf2 ポストレイアウトは実行されません。

戻り値

ルーティング・パス・マネージャー

戻りの型

PassManager

generate_pre_op_passmanager

qiskit.transpiler.preset_passmanagers.generate_pre_op_passmanager(target=None, coupling_map=None, remove_reset_in_zero=False)

GitHub

最適化前のループを生成する PassManager

このパス・マネージャーは、カップリング・マップからの方向性が尊重されているかどうかをチェックする。

バージョンから非推奨 2.0

関数 qiskit.transpiler.preset_passmanagers.common.generate_pre_op_passmanager() は Qiskit 2.0 で非推奨となりました。 Qiskit 3.0 で削除されます。 翻訳プラグインはISAの方向性を尊重するように要求されるようになったので、通常は置き換える必要はない。

パラメーター

  • target (Target) – バックエンドを表す Target バックエンドを表す
  • coupling_map (CouplingMap) – 使用するカップリング・マップ
  • remove_reset_in_zero (bool) – True 、ゼロパスでのリセットの解除が生成される。 PassManager

戻り値

パス・マネージャー

戻りの型

PassManager

generate_translation_passmanager

qiskit.transpiler.preset_passmanagers.generate_translation_passmanager(target, basis_gates=None, method='translator', approximation_degree=None, coupling_map=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, qubits_initially_zero=True)

GitHub

基底変換の生成 PassManager

パラメーター

  • target (Target) – バックエンドを表す Target バックエンドを表す
  • basis_gates (list) – バックエンドターゲットのベースゲートを表すstrゲート名のリスト
  • method (str) – 使用する基本翻訳方法
  • approximation_degree (Optional[float]) – 使用するヒューリスティック近似度。 0から1の間で指定できる。
  • coupling_map (CouplingMap) – 合成が物理回路上で行われる場合のバックエンドのカップリング・マップ。 coupling_mapの方向性は、pulse_optimizeがTrue/Noneで、 natural_directionがTrue/Noneの場合に考慮される。
  • unitary_synthesis_plugin_config (dict) – オプションの辞書プラグイン設定。これはプラグイン固有のもので、使用方法については、指定されたプラグインのドキュメントを参照してください。
  • unitary_synthesis_method (str) – 使用するユニタリー合成法。 インストールされているプラグインのリストは unitary_synthesis_plugin_names().
  • hls_config (HLSConfig) – オプションのコンフィギュレーション・クラス。 HighLevelSynthesis パス。 さまざまなハイレベル・オブジェクトの合成方法を指定する。
  • qubits_initially_zero (bool) – 入力回路がゼロ初期化されているかどうかを示す。

戻り値

基礎翻訳パスマネージャー

戻りの型

PassManager

レイズ

TranspilerError - method kwargが有効な値でない場合

generate_scheduling

qiskit.transpiler.preset_passmanagers.generate_scheduling(instruction_durations, scheduling_method, timing_constraints, target=None)

GitHub

ポスト最適化スケジューリングの生成 PassManager

パラメーター

  • instruction_durations (dict) – 指導時間辞書
  • scheduling_method (str) – 使用するスケジューリング方法は、 'asap'/'as_soon_as_possible' または 'alap'/ のいずれか。'as_late_as_possible'
  • timing_constraints (TimingConstraints) – ハードウェアによるタイムアライメントの制限。
  • target (Target) – バックエンドを表す Target バックエンドを表す

戻り値

スケジューリング・パス・マネージャー

戻りの型

PassManager

レイズ

TranspilerError - scheduling_method kwargが有効な値でない場合

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