Skip to main content
IBM Quantum Platform

UnitarySynthesis

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

GitHub

ベース: TransformationPass

基礎ゲートに従ってゲートを合成する。

ある基底ゲート上のユニタリーを合成する。

このパスは、あるゲート忠実度(経由 target)が与えられると、ユニタリー演算を近似できる。 ヒューリスティックダイヤルを設定することで、より多くの approximation_degree近似を強制できます。

パラメーター

  • basis_gates (list[str]) – 対象となるゲート名のリスト。 これが指定されない場合は、 target 引数を使用しなければならない。 これと target の両方が指定された場合、 target の値が使用され、これは無視される。
  • approximation_degree (float) – 回路近似に使用されるヒューリスティック・ダイヤル( 1.0=no approximation, 0.0=maximal approximation)。 近似は、元のユニタリーから逸脱する代償として、合成回路をより安価にすることができる。 None の場合、ゲート忠実度に基づいて近似が行われる。
  • coupling_map (CouplingMap) – 合成が物理回路上で行われる場合は、ターゲットのカップリング・マップ。 pulse_optimizeTrue/None で、 natural_directionTrue/None の場合、coupling_map の方向性が考慮される。
  • pulse_optimize (bool) – 合成時にパルスを最適化するかどうか。 値が None の場合、それを試みるが、成功しなければ後退する。 パルス最適化合成が成功しない場合、 True の値はエラーとなる。
  • natural_direction (bool) – 2量子ビットゲートの方向性を考慮した合成を適用するかどうか。 pulse_optimizeTrue または None の場合のみ適用される。 自然な方向は、まずカップリング・マップが一方向かどうかをチェックすることによって決定される。 カップリングマップがない場合、またはカップリングマップが双方向の場合、ターゲットプロパティからの継続時間が短い方のゲート方向が使用される。 Trueに設定され、自然な方向が決定できない場合は、次のようになります。 TranspilerError. Noneに設定すると、自然な方向が決定できなくても例外は発生しない。
  • synth_gates (list[str]) – 合成するゲートのリスト。 None かつ pulse_optimize が False または None の場合、デフォルトは ['unitary']Nonepulse_optimize == True の場合、デフォルトは ['unitary', 'swap']
  • method (str) – 使用するユニタリー合成法プラグイン。
  • min_qubits - 合成するユニタリの最小量子ビット数。 これがセットされていて、ユニタリーが指定された量子ビット数より少ない場合は合成されません。
  • plugin_config - 指定されたユニタリー合成プラグインに直接渡されるオプションの追加設定引数( dict )。 デフォルトのプラグインには余分な引数がないので、デフォルトでは何の効果もない。 ユニタリー合成プラグインのドキュメントを参照してください。
  • target - オプション。 Target パスがコンパイルされるターゲット・デバイス。 指定された場合、これは basis_gatescoupling_map に設定された値より優先される。
  • fallback_on_default – 非デフォルトの合成 method 方法が指定されている場合、その方法が操作を合成できないか、合成された回路がターゲットに適合しない場合に、デフォルトの合成方法を使用するかどうかを指定します。

レイズ

TranspilerError - method が指定されたが、インストールされたプラグインリストに見つからない場合。 インストールされているプラグインのリストは unitary_synthesis_plugin_names()


属性

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

dag で UnitarySynthesis パスを実行する。

パラメーター

dag (DAGCircuit) – 入力ダグ。

戻り値

UnitaryGates をターゲット・ベースに合成したダグを出力する。

戻りの型

DAGサーキット

update_status

update_status(state, run_state)

GitHub

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

パラメーター

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

戻り値

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

戻りの型

PassManagerState

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