Skip to main content
IBM Quantum Platform

ConsolidateBlocks

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

GitHub

ベース: TransformationPass

連続するゲートの各ブロックを1つのユニタリー・ノードで置き換える。

同じ量子ビットに作用する連続したゲートのシーケンスをノード UnitaryGate に統合し、後で再合成して、より最適なサブ回路に変換できるようにする。 このパスの一般的な動作は、入 DAGCircuit 力の解析を実行して回路内のすべての2量子ビットブロックを特定し、その後、内部のヒューリスティックに基づいて、そのブロックを1つ UnitaryGate に統合すべきかどうかを判断することです。 ただし、プロパティセットで または run_list``block_list が設定されている場合、このパスはDAGに対して独自の解析を行いません。

このパスを実行する際にプロパティセットで または run_list のいずれ block_list かが設定されているかどうかに応じて、このパスには2つのレガシー動作モードがあります。 UnitaryGateblock_list には、ノードインデックスのリストのリストを含める必要があります。各内部リストは、. に統合される可能性のあるブロックの集合を表します。 これらのブロックは任意の数の量子ビットで構成できますが、以前のQiskitリリースのプリセット・パスマネージャーでは、通常2つであり、pass Collect2qBlocks によって設定されていました。 また、任意の数の量子ビットに対して検出されたブロックを設定 blocks_list するトランスパイラ・パス CollectMultiQBlocks もあります。 もう一方のプロパティセットのキー run_list は、統合対象となる単一量子ビットのブロックである「ラン」のリストのリストです。 Collect1qRuns これは、トランスパイラ・パスによって設定された可能性があります。 「ラン」に関するこの機能は、主にトランスパイラ・パスによって Optimize1qGatesDecomposition 置き換えられており、単一量子ビットのランを簡略化する際には、より徹底的で高性能な方法として、通常はそちらを使用すべきです。

このパスは PropertySet キー ConsolidateBlocks_qubit_map を読み込みます。このキーは、制御フロー操作のために、再帰的なワーカーのインスタンスと通信するために使われます。 このキーは、ユーザー向けのパイプラインでは決して観測可能であってはならない。 PassManager のインスタンスでのみ設定されます。 PassManager インスタンスにのみ設定されます)、他のパスがこのキーを設定すると、そのパスは不正な結果を返したり、エラーになったりする可能性があります。

ConsolidateBlocks イニシャライザー。

kak_basis_gateNone でない場合は、KAK分解の基底ゲートとして使用される。 そうでなければ、 basis_gatesNone でない場合、このリストから基底ゲートが選ばれる。 そうでなければ、ベーシス・ゲートは CXGate.

パラメーター

  • kak_basis_gate (Gate) – KAK分解のためのベースゲート。
  • force_consolidate (bool) – 強制的にブロックを統合する。
  • basis_gates (List(str)) – KAKゲートのベースとなるゲート。
  • approximation_degree (float) – [0.0,1.0][0.0, 1.0] の間の浮動小数点数。低い方がより近似している。
  • target (Target) – コンパイル対象のバックエンドのターゲット・オブジェクト。

属性

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

ダグに ConsolidateBlocks。

各ブロックを繰り返し、同じワイヤー上の同等のユニタリーに置き換える。

update_status

update_status(state, run_state)

GitHub

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

パラメーター

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

戻り値

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

戻りの型

PassManagerState

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