MapperFnEvolutionSynthesis
class MapperFnEvolutionSynthesis(mapper_fn, product_formula=None)
ベース: object
カスタムマッピング Evolution によるトランスパイル用の F2QSynthesisPlugin A。
このプラグインは、入力ゲ Evolution ートのフェルミオン・ハミルトニアン を、[ ] を使用して量子ビット演算子にマッピングし、 mapper_fn [ ] を出力します PauliEvolutionGate。 これにより、ゲ Evolution ートの という規則が維持され、進化時間も と同じになります。
それがその後、基底ゲートにどのように分解される PauliEvolutionGate かは、として渡された積の公式によって決まります product_formula。 これをデフォルトのままにしておくと(None)、 PauliEvolutionGateそのもの自身のデフォルトの合成(単一の反復を伴う一階の分解 LieTrotter )が適用されます。 明示的な式 EvolutionSynthesis (例えば、高次のもの SuzukiTrotter や繰り返しを複数回含むものなど)を指定すると、別のトロッター・鈴木の積公式が選択され、回路の深さを犠牲にする代わりに、トロッター誤差を小さくすることができます。
このトランスパイラー・パス・プラグインの初期化は、以下に挙げる引数を使用して行うことができます。
パラメーター
- mapper_fn (MapperFunction) – フェルミオンから量子ビットへの演算子写像関数。
- product_formula (EvolutionSynthesis | None) – 発光体を合成するための製品組成
PauliEvolutionGate。 (Noneデフォルトの場合)、ゲート自身のデフォルトの合成が使用されます(単一の反復を伴う一階LieTrotter分解)。
属性
mapper_fn
タイプ: MapperFunction
フェルミオンから量子ビットへの演算子写像関数。
2つの入力引数は、以下の通りである必要があります:
- マッピング対象の演算子。
- 結果として得られる演算子が定義されるべき量子ビットの数。
この機能がグローバルなトランスパイル F2QLayout 設定と同期していることを確認するのは、ユーザーの責任です。
product_formula
種類: EvolutionSynthesis | None
発光素子を合成するために使用される製品式 PauliEvolutionGate、あるいは、そのゲート独自のデフォルト合成に None 委ねる。
方法
run
run(in_node, out_dag, *, f2q_layout)
このトランスパイルプラグインを実行します。
入射 Evolution ゲートのフェルミオンハミルトニアンは、を介して量子ビット演算子に写像され mapper_fn、簡略化された後、 out_dagPauliEvolutionGate を実装するとしてに付加される。この際、元の進化時間は であり、合成 product_formula が行われる。
パラメーター
- in_node (DAGOpNode) – 入力フェルミオンベースの回路命令。 このプラグインが呼び出される際、 属性
in_node.opの型は でなければなりませんEvolution。 - out_dag (DAGCircuit) – 出力クビットベースの回路。
- f2q_layout (dict[QuantumRegister, QuantumRegister]) – グローバルなトランスパイレーション設定
F2QLayout。
戻りの型
なし
引数に関するより詳しい説明については F2QSynthesisPlugin 、のドキュメントを参照してください。
昇給
NotImplementedError – が、複数のインスタンス FermionicRegister にまたがって分布しているフェルミオンモードに in_node 作用する場合。
パラメーター
- in_node (DAGOpNode)
- out_dag (DAGCircuit)
- f2q_layout (dict[QuantumRegister, QuantumRegister])
戻りの型
なし