Transpiler-Pass-Plugins
Der F2QSynthesis Transpiler-Durchlauf stellt eine Plugin-Schnittstelle bereit (siehe F2QSynthesisPlugin), über die Implementierungen für die Zuordnung von fermionbasierten Befehlen zu qubitbasierten Befehlen registriert werden können.
Die verfügbaren Plugins werden über die verwaltet F2QSynthesisPluginManager. Die Wahl der richtigen Kombination von Synthese-Plugins ist entscheidend, und für den F2QSynthesis Transpilation-Durchlauf sind keine Standard-Plugins definiert! Weitere Informationen hierzu finden Sie im Transpiler presets.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
F2QSynthesisPlugin(*args, **kwargs) | Das Protokoll für Plugins für den F2QSynthesis Transpiler-Durchlauf. |
F2QSynthesisPluginManager() | Ein einfacher Manager für die installierten Plugins zur Fermion-zu-Qubit-Synthese. |
Die Plugins, die zur Laufzeit verwendet werden sollen, müssen im Attribut F2QSynthesis.methods registriert werden. Dies lässt sich ganz einfach über das Argument config erledigen, das F2QSynthesis die zu verwendenden Plugins aus der Datei angibt, oder F2QSynthesisPluginManager manuell, indem man den Eintrag direkt F2QSynthesis.methods in die Datei einträgt.
In der folgenden Tabelle sind die integrierten Synthese-Plugins aufgeführt, sortiert nach dem, FermionicGate auf den sie einwirken:
Name der Schaltungsanleitung | Name der Plugin-Methode | Referenz |
|---|---|---|
Evolution | MapperFn | MapperFnEvolutionSynthesis |
InitializeModes | TrivialOccupation | TrivialOccupationInitializeModesSynthesis |
OrbitalRotation | GivensDecomposition | GivensDecompositionOrbitalRotationSynthesis |
PrepareSlaterDeterminant | GivensDecompositionSlater | GivensDecompositionSlaterDeterminantSynthesis |
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
GivensDecompositionOrbitalRotationSynthesis() | A F2QSynthesisPlugin zur Transpilation OrbitalRotation in Givens-Rotationen. |
GivensDecompositionSlaterDeterminantSynthesis(*) | A F2QSynthesisPlugin für das Transpiling PrepareSlaterDeterminant. |
MapperFnEvolutionSynthesis(mapper_fn[,...] ) | A F2QSynthesisPlugin für das Transpilieren Evolution unter Verwendung einer benutzerdefinierten Zuordnung. |
TrivialOccupationInitializeModesSynthesis() | Ein F2QSynthesisPlugin für das Transpiling InitializeModes mit geringem Platzbedarf. |
Weitere Hilfsfunktionen
Die Reihenfolge der Pauli-Terme, die eine Mapper-Funktion erzeugt, bleibt bei der Synthese erhalten, da eine Produktformel die Terme in der Reihenfolge synthetisiert, in der sie empfangen werden. Diese Adapter verpacken eine Mapper-Funktion, um diese Reihenfolge festzulegen:
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
group_wise(mapper_fn) | Umhüllt eine Mapper-Funktion so, dass sie einen Operator jeweils auf eine Gruppe nach der anderen abbildet. |
simplify(mapper_fn) | Umschließt eine Mapper-Funktion so, dass sie den von ihr zurückgegebenen Operator vereinfacht. |