MapperFnEvolutionSynthesis
class MapperFnEvolutionSynthesis(mapper_fn, product_formula=None)
Basi: object
A F2QSynthesisPlugin per la transpilazione Evolution con una mappatura personalizzata.
Questo plugin mappa l'Hamiltoniano fermionico del gate Evolution in ingresso su un operatore di qubit utilizzando mapper_fn ed emette un PauliEvolutionGate. In questo modo mantiene la convenzione " " del gate Evolution , con lo stesso tempo di evoluzione .
Il modo in cui tale espressione viene PauliEvolutionGate successivamente scomposta in porte di base è determinato dalla formula del prodotto passata come product_formula. Lasciando l'impostazione predefinita (None) si ricorre alla sintesi predefinita PauliEvolutionGatedel proprio (una LieTrotter decomposizione di primo ordine con una singola ripetizione). Specificando un’espressione esplicita EvolutionSynthesis – ad esempio di ordine superiore o SuzukiTrotter con diverse ripetizioni – si seleziona una formula di prodotto di Trotter-Suzuki diversa, sacrificando la profondità del circuito a vantaggio di un errore di Trotter minore.
L'inizializzazione di questo plugin per il passaggio di transpilazione può essere effettuata utilizzando gli argomenti elencati di seguito.
Parametri
- mapper_fn (MapperFunction) – la funzione di mappatura dell'operatore da fermione a qubit.
- product_formula (EvolutionSynthesis | None) – la formula del prodotto con cui sintetizzare l'emesso
PauliEvolutionGate. Se (Noneimpostazione predefinita), viene utilizzata la sintesi predefinita del gate stesso (unaLieTrotterscomposizione di primo ordine con una singola ripetizione).
Attributi
mapper_fn
Tipo: MapperFunction
La funzione di mappatura degli operatori da fermioni a qubit.
I due argomenti di input devono essere i seguenti:
- l'operatore da mappare.
- il numero di qubit su cui dovrebbe essere definito l'operatore risultante.
È responsabilità dell'utente assicurarsi che questa funzione sia sincronizzata con l'impostazione F2QLayout globale di transpilazione.
product_formula
Tipo: EvolutionSynthesis | None
La formula del prodotto utilizzata per sintetizzare l'emissione PauliEvolutionGate, oppure None per affidarsi alla sintesi predefinita di quel gate.
Metodi
run
run(in_node, out_dag, *, f2q_layout)
Esegue questo plugin di transpilazione.
L'Hamiltoniano fermionico del gate Evolution in ingresso viene mappato su un operatore di qubit tramite mapper_fn, semplificato, e aggiunto a out_dag come che PauliEvolutionGate implementa con il tempo di evoluzione originale e la product_formula sintesi.
Parametri
- in_node (DAGOpNode) – l'istruzione relativa al circuito basato sui fermioni di ingresso. Quando viene richiamato questo plugin, l'attributo
in_node.opdeve essere di tipoEvolution. - out_dag (DAGCircuit) – il circuito basato su qubit in uscita.
- f2q_layout (dict[QuantumRegister, QuantumRegister]) – l'impostazione
F2QLayoutdi traslazione globale.
Tipo di restituzione
Nessuna
La documentazione di F2QSynthesisPlugin per spiegazioni più dettagliate sugli argomenti.
Aumenti
NotImplementedError – quando in_node agisce su modi fermionici distribuiti su più FermionicRegister istanze.
Parametri
- in_node (DAGOpNode)
- out_dag (DAGCircuit)
- f2q_layout (dict[QuantumRegister, QuantumRegister])
Tipo di restituzione
Nessuna