Skip to main content
IBM Quantum Platform

Passaggi del transpiler

qiskit.transpiler.passes


Selezione del layout (posizionamento)

SetLayout(*args, **kwargs)Imposta la proprietà layout sul layout dato.
TrivialLayout(*args, **kwargs)Scegliere un layout assegnando i qubit del circuito n ai qubit del dispositivo 0, .., n-1.
DenseLayout(*args, **kwargs)Scegliere un Layout trovando il sottoinsieme di qubit più connesso.
SabreLayout(*args, **kwargs)Scegliere un layout tramite instradamento iterativo bidirezionale del circuito di ingresso.
CSPLayout(*args, **kwargs)Se possibile, sceglie un layout come CSP, utilizzando il backtracking.
VF2Layout(*args, **kwargs)Un passaggio per la scelta di un Layout di un circuito su un grafo di accoppiamento, come problema di isomorfismo del sottografo, risolto da VF2++.
ApplyLayout(*args, **kwargs)Applicare o aggiornare la mappatura dei qubit virtuali ai qubit fisici nel DAGCircuit.
Layout2qDistance(*args, **kwargs)Valutare la bontà della scelta del layout.
EnlargeWithAncilla(*args, **kwargs)Estendere il dag con qubit virtuali che sono nel layout ma non ancora nel circuito.
FullAncillaAllocation(*args, **kwargs)Allocare tutti i nodi inattivi dalla mappa di accoppiamento o dalla destinazione come ancilla sul layout.
SabrePreLayout(*args, **kwargs)Scegliere un layout di partenza da utilizzare per ulteriori prove di layout Sabre.

Instradamento

BasicSwap(*args, **kwargs)Mappare (con il minimo sforzo) un circuito DAG su coupling_map aggiungendo porte di scambio.
Commuting2qGateRouter(*args, **kwargs)Una classe per scambiare il percorso di uno o più cancelli di pendolarismo con la mappa di accoppiamento.
LayoutTransformation(*args, **kwargs)Aggiunge al circuito un circuito Swap per una determinata permutazione (parziale).
LookaheadSwap(*args, **kwargs)Mappare il circuito di ingresso su una topologia backend mediante l'inserimento di SWAP.
SabreSwap(*args, **kwargs)Mappare il circuito di ingresso su una topologia backend mediante l'inserimento di SWAP.
StarPreRouting()Eseguire il pre-routing da stella a lineare

Modifica della base

BasisTranslator(*args, **kwargs)Traduce le porte in una base di destinazione cercando un insieme di traduzioni da un dato EquivalenceLibrary.
Decompose(*args, **kwargs)Espandere una porta in un circuito utilizzando le sue regole di decomposizione.
TranslateParameterizedGates(*args, **kwargs)Tradurre le porte parametrizzate in un insieme di basi supportato.
Unroll3qOrMore(*args, **kwargs)Espande ricorsivamente le porte 3q+ finché il circuito non contiene solo porte 2q o 1q.
UnrollCustomDefinitions(*args, **kwargs)Svolge le istruzioni con definizioni personalizzate.

Ottimizzazioni

Collect1qRuns(*args, **kwargs)Raccogliere i sottocircuiti a un qubit.
Collect2qBlocks(*args, **kwargs)Raccogliere i sottocircuiti a due qubit.
CollectAndCollapse(*args, **kwargs)Un passaggio generale del transpiler per raccogliere e consolidare blocchi di nodi in un circuito.
CollectCliffords(*args, **kwargs)Raccoglie i blocchi delle porte di Clifford e li sostituisce con un Clifford oggetto.
CollectLinearFunctions(*args, **kwargs)Raccoglie i blocchi di porte lineari (CXGate e SwapGate porte ) e li sostituisce con funzioni lineari (LinearFunction).
CollectMultiQBlocks(*args, **kwargs)Raccogliere sequenze di porte ininterrotte che agiscono su gruppi di qubit.
CommutationAnalysis(*args, **kwargs)Passaggio di analisi per trovare le relazioni di commutazione tra i nodi del DAG.
CommutativeCancellation(*args, **kwargs)Annullare le porte ridondanti (auto-aggiunte) attraverso le relazioni di commutazione.
CommutativeInverseCancellation(*args, **kwargs)Annullare le coppie di porte inverse sfruttando le relazioni di commutazione.
CommutativeOptimization(*args, **kwargs)Annullare/unire i gate sfruttando le relazioni di commutatività.
ConsolidateBlocks(*args, **kwargs)Sostituire ogni blocco di porte consecutive con un singolo nodo unitario.
ContractIdleWiresInControlFlow(*args, **kwargs)Rimuovere i qubit inattivi dalle operazioni relative al flusso di controllo di un DAGCircuit.
ConvertToPauliRotations(*args, **kwargs)Convertire un circuito quantistico in un circuito equivalente composto da PauliProductRotationGate gate e PauliProductMeasurement istruzioni.
ElidePermutations(*args, **kwargs)Rimuovere le operazioni di permutazione da un circuito pre-layout
HoareOptimizer(*args, **kwargs)Si tratta di un passaggio di transpiler che utilizza l'ottimizzazione dei circuiti logici di Hoare.
InverseCancellation(*args, **kwargs)Annullare le Porte specifiche che sono inverse l'una dell'altra quando si verificano una dietro l'altra.
LightCone(*args, **kwargs)Rimuovere i gate che non influiscono sul risultato di una misurazione su un circuito.
LitinskiTransformation(*args, **kwargs)Applica la trasformata di Litinski a un circuito.
Optimize1qGates(*args, **kwargs)Ottimizzare catene di porte a singolo qubit u1, u2, u3 combinandole in un'unica porta.
Optimize1qGatesDecomposition(*args, **kwargs)Ottimizzare catene di porte a singolo qubit combinandole in un'unica porta.
Optimize1qGatesSimpleCommutation(*args, **kwargs)Ottimizza le stringhe di porte 1Q interrotte dalle porte 2Q commutando i componenti e risintetizzando i risultati.
OptimizeAnnotated(*args, **kwargs)Passaggio di ottimizzazione su circuiti con operazioni annotate.
OptimizeCliffordT(*args, **kwargs)Ottimizzare sequenze di porte Clifford+T consecutive.
OptimizeCliffords(*args, **kwargs)Combinare Clifford consecutivi sugli stessi qubit.
OptimizeSwapBeforeMeasure(*args, **kwargs)Rimuovere gli scambi seguiti dalla misurazione (e adattare la misurazione).
RemoveDiagonalGatesBeforeMeasure(*args, **kwargs)Rimuovere i cancelli diagonali (compresi i cancelli diagonali 2Q ) prima di una misurazione.
RemoveFinalReset(*args, **kwargs)Rimuovere il reset quando è l'ultima istruzione su un filo di qubit.
RemoveIdentityEquivalent(*args, **kwargs)Rimuovere i cancelli con effetti trascurabili.
RemoveResetInZeroState(*args, **kwargs)Rimuovere il gate di reset quando il qubit è nello stato zero.
ResetAfterMeasureSimplification(*args, **kwargs)Questo passaggio sostituisce il reset dopo la misura con un gate X condizionale.
Split2QUnitaries(*args, **kwargs)Tentativo di scomporre le operazioni unitarie a due qubit in a DAGCircuit in due porte a singolo qubit.
SubstitutePi4Rotations(*args, **kwargs)Convertire le porte di rotazione i cui angoli sono multipli interi di π/4\pi/4 in insiemi discreti di porte Clifford, TGate e TdgGate .
TemplateOptimization(*args, **kwargs)Classe per il passaggio di ottimizzazione del template.
TwoQubitPeepholeOptimization(*args, **kwargs)Ottimizzazione unitaria unificata a due qubit con metodo “peephole”

Pianificazione

ALAPScheduleAnalysis(*args, **kwargs)Passaggio ALAP Scheduling, che programma l'orario di arresto delle istruzioni il più tardi possibile.
ASAPScheduleAnalysis(*args, **kwargs)ASAP Scheduling pass, che programma l'orario di inizio delle istruzioni il più presto possibile.
ConstrainedReschedule(*args, **kwargs)Passaggio di riprogrammazione che aggiorna i tempi di avvio dei nodi per conformarsi agli allineamenti hardware.
ContextAwareDynamicalDecoupling(*args, **kwargs)Implementare un disaccoppiamento dinamico della sequenza X considerando il contesto del gate e del qubit.
InstructionDurationCheck(*args, **kwargs)Passaggio di convalida della durata per la riprogrammazione.
PadDelay(*args, **kwargs)Imbottire il tempo di inattività con istruzioni di ritardo.
PadDynamicalDecoupling(*args, **kwargs)Passaggio di inserimento del disaccoppiamento dinamico.
SetIOLatency(*args, **kwargs)Impostare le informazioni di IOLatency sul circuito di ingresso.
TimeUnitConversion(*args, **kwargs)Scegliere un'unità di tempo da utilizzare nei passaggi successivi e rendere coerenti tutte le unità di tempo dei circuiti.

Analisi dei circuiti

CountOps(*args, **kwargs)Contare le operazioni in un circuito DAG.
CountOpsLongestPath(*args, **kwargs)Conta le operazioni sul percorso più lungo in un DAGCircuit.
DAGLongestPath(*args, **kwargs)Restituisci il percorso più lungo in a DAGCircuit come lista composta da DAGOpNodes, DAGInNodes e DAGOutNodes.
Depth(*args, **kwargs)Calcolare la profondità di un circuito DAG.
NumTensorFactors(*args, **kwargs)Calcolare il numero di fattori tensoriali di un circuito DAG.
ResourceEstimation(*args, **kwargs)Richiedere automaticamente passaggi di analisi per la stima delle risorse.
Size(*args, **kwargs)Calcolare la dimensione di un circuito DAG.
Width(*args, **kwargs)Calcolare l'ampiezza di un circuito DAG.

Sintesi

La documentazione del plugin del transpiler di sintesi si trova alla pagina qiskit.transpiler.passes.synthesis.plugin pagina.

HLSConfig( [use_default_on_unspecified,...] )La configurazione della sintesi di alto livello consente di specificare un elenco di "metodi" utilizzati dal HighLevelSynthesis passaggio di trasformazione per sintetizzare diversi tipi di oggetti di livello superiore.
HighLevelSynthesis(*args, **kwargs)Sintetizzare oggetti di livello superiore e srotolare definizioni personalizzate.
LinearFunctionsToPermutations(*args, **kwargs)Promuove le funzioni lineari alle permutazioni, quando possibile.
SolovayKitaev(*args, **kwargs)Decomporre approssimativamente le porte di 1q in una base discreta utilizzando l'algoritmo di Solovay-Kitaev.
SynthesizeRZRotations(*args, **kwargs)Sostituire i circuiti RZ con le decomposizioni di Clifford+T.
UnitarySynthesis(*args, **kwargs)Sintetizzare le porte in base alle loro porte di base.

Layout del post

Si tratta di selezione post qubit.

VF2PostLayout(*args, **kwargs)Un passaggio per migliorare un Layout esistente dopo la trasposizione di un circuito su un grafo di accoppiamento, come problema di isomorfismo del sottografo, risolto da VF2++.

Pass aggiuntivi

BarrierBeforeFinalMeasurements(*args, **kwargs)Aggiungere una barriera prima delle misure finali.
CheckGateDirection(*args, **kwargs)Verificare se le porte a due qubit seguono la giusta direzione rispetto alla mappa di accoppiamento.
CheckMap(*args, **kwargs)Controlla se un circuito DAG è già mappato in una mappa di accoppiamento.
ContainsInstruction(*args, **kwargs)Un passaggio di analisi per rilevare se il DAG contiene un'istruzione specifica.
DAGFixedPoint(*args, **kwargs)Verifica se il DAG ha raggiunto un punto fisso.
Error(*args, **kwargs)Passaggio di errore da richiamare quando si verifica un errore.
FilterOpNodes(*args, **kwargs)Rimuovere tutte le operazioni che corrispondono a una funzione di filtro
FixedPoint(*args, **kwargs)Verifica se una proprietà ha raggiunto un punto fisso.
GateDirection(*args, **kwargs)Modificare le porte asimmetriche per adattarle alla direzione di accoppiamento dell'hardware.
GatesInBasis(*args, **kwargs)Verificare se tutte le porte di un DAG sono in un dato insieme di porte
MergeAdjacentBarriers(*args, **kwargs)Restituisce un circuito con tutte le barriere adiacenti unite insieme.
MinimumPoint(*args, **kwargs)Verificare se il DAG ha raggiunto un punto di semi-stabilità relativa rispetto alle esecuzioni precedenti
RemoveBarriers(*args, **kwargs)Restituire un circuito con una barriera rimossa.
RemoveFinalMeasurements(*args, **kwargs)Rimuovere le misure e le barriere finali alla fine di un circuito.
UnrollForLoops(*args, **kwargs)UnrollForLoops il passaggio di transpilation srotola i cicli for quando possibile.
WrapAngles(*args, **kwargs)Avvolge gli angoli al di fuori del limite specificato nel target.

Dati aggiuntivi

qiskit.transpiler.passes.utils.wrap_angles.WRAP_ANGLE_REGISTRY

Una sede storica per WrapAngles.DEFAULT_REGISTRY. Questo percorso deve essere utilizzato solo quando è richiesta la piena compatibilità con Qiskit 2.2.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.