Skip to main content
IBM Quantum Platform

SabrePreLayout

class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)

GitHub

ベース: AnalysisPass

セイバーレイアウトの追加トライアルに使用するスタートレイアウトを選択する。

このパスは、 VF2 が完全なグラフ同型写像を見つけ出すまで、結合マップに「追加の」辺を次々と追加していくことで機能します。 より正確に言えば、拡張結合マップには、元の結合マップにおいて所定 d の距離以内にあるノード間の辺が含まれている。 元のエッジにはノイズが含まれていないのに対し、追加されたエッジには距離に比例して指数関数的に増大するノイズが含まれている。 の値は、同型写像 d が見つかるまで増加させられる。

直感的には、 VF2 のレイアウトが優れているほど、余分な辺の数が少なく、その長さも短くなります。


プロパティセット値が書き込まれました

sabre_starting_layouts (list[Layout])

オプションで Layout オブジェクトのリスト。

参照資料:

[1] ヘンリー・ゾウ、マシュー・トレイニッシュ、ケビン・ハートマン、アレクサンダー・イヴリイ、ジェイク・リッシュマン。 “LightSABRE: 軽量で強化されたSABREアルゴリズム" arXiv:2409.08368

param coupling_map

元の結合マップ、またはバックエンド(その接続性を含む)をモデル化したターゲットを表す有向グラフ。

param max_distance

拡張結合マップを用いて VF2 を実行する際の最大距離。 特に、これは拡張結合マップにおいて接続される元のノード間の最大距離も規定する。

param error_rate

「余分な」エッジに割り当てるエラー率。 エラー率がゼロでない場合、 VF2 は余分なエッジよりも元のエッジを優先して選択します。

パラメタ max_trials_vf2

VF2 の試行回数の最大値を指定します。 このオプションは、Qiskit 2.3 で導入された VF2 のオンザフライスコアリングの導入以来、主にレガシーの理由から残されています。 パスの時間を制限するには、代わりにパラメータ max_distance``call_limit_vf2 と を設定してください。

パラメタ call_limit_vf2

内部の VF2 同型写像検索において、写像の拡張を試みる最大回数。 もし None~なら、制限はない。 2要素のタプルである場合、検索は最初の要素から開始され、最初の一致が見つかった後に2番目の要素に切り替わりますが、その際、実行されたステップ数はリセットされません。 これにより、あらゆるマッピングに対して長時間の検索を許可しつつ、もし見つかった場合には、わずかな拡張予算で素早く検索を終了させることができます。

param improve_layout

使用されなくなりました(このオプションは、 VF2 でのオンザフライ・スコアリングの導入に伴い、廃止されました)。

param min_distance

拡張結合マップを用いた最初の VF2 実行における距離。 この設定では、距離が短いチェック min_distance > 1 はすべてスキップされ、特に、pass VF2Layout の実行に相当する distance-1 のチェックもスキップされます。

レイズ TranspilerError

実行時に、引数が coupling_map 指定されていない場合。


属性

is_analysis_pass

パスが分析パスかどうかをチェックする。

パスが AnalysisPass,、パスがDAGを分析し、その分析結果をプロパティセットに書き込むことができることを意味する。 この種のパスでは、DAGの変更は許されない。

is_transformation_pass

パスが変形パスかどうかをチェックする。

パスが TransformationPass, の場合、そのパスはDAGを操作することはできるが、プロパティセットを変更することはできない(ただし、読み取ることはできる)ことを意味する。


方法

execute

execute(passmanager_ir, state, callback=None)

GitHub

入力Qiskit IRに対して最適化タスクを実行する。

パラメーター

  • passmanager_ir (Any) – Qiskit IRを最適化する。
  • state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
  • callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。

戻り値

Qiskit IRとワークフローの状態を最適化。

戻りの型

タプル [ Any, PassManagerState ]

name

name()

GitHub

パスの名前

戻りの型

str

run

run(dag)

GitHub

ダグに SabrePreLayout。

発見された開始レイアウトは、プロパティセット値 sabre_starting_layouts に書き込まれる。

パラメーター

dag (DAGCircuit) – 開始レイアウトを作成するDAG。

update_status

update_status(state, run_state)

GitHub

ワークフローのステータスを更新する。

パラメーター

  • state (PassManagerState) – 更新するマネージャーの状態を渡す。
  • run_state (RunState) – 現在のタスクの完了状況。

戻り値

パスマネージャーの状態を更新。

戻りの型

PassManagerState

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