TokenSwapperSynthesisPermutation
class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation
トークンスワッパーアルゴリズムに基づく順列合成プラグイン。
このプラグイン名はpermutation.token_swapper 。 HLSConfig オブジェクトのキーとして使用できます。 HighLevelSynthesis.
より詳細には、このプラグインは PermutationGate 型のオブジェクトを合成するために使用される。 合成に成功すると、スワップ・ゲートだけで構成される量子回路が出力される。 合成が成功しなかった場合、プラグインはNoneを出力する。
coupling_mapまたはqubitsのいずれかがNoneの場合、合成された回路は、レイアウト/配線前に合成された場合のように、接続性制約を遵守する必要はありません。
一方、coupling_mapとqubitsの両方が指定された場合、合成された回路は接続性制約に従うことになる。 現時点では、プラグインはqubits内のqubits間にスワップゲートを作成するだけで、カップリングマップ内の他のqubitsは使用しません(そのような合成が不可能な場合、プラグインはNoneを出力します)。
このプラグインは、以下のプラグイン固有のオプションをサポートしています:
- trials:トークンスワッパーがマッピングを実行するための試行回数。 SWAPの数が最も少ない回路が返される。
- シード:トークンスワッパーへの引数で、ランダム試行の種を指定する。
- parallel_threshold:トークンスワッパーへの引数で、アルゴリズムが並列処理を使用するグラフのノード数を指定する。
トークンスワッパー・アルゴリズムの詳細については、論文を参照されたい: arXiv:1902.09102.
方法
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
与えられたPermutationに対して合成を実行する。