Skip to main content
IBM Quantum Platform

Passages du transpilateur

qiskit.transpiler.passes


Sélection de la disposition (placement)

SetLayout(*args, **kwargs)Fixe la propriété layout à la disposition donnée.
TrivialLayout(*args, **kwargs)Choisissez une disposition en assignant les qubits du circuit n aux qubits de l'appareil 0, .., n-1.
DenseLayout(*args, **kwargs)Choisissez une disposition en trouvant le sous-ensemble de qubits le plus connecté.
SabreLayout(*args, **kwargs)Choisir une disposition par routage bidirectionnel itératif du circuit d'entrée.
CSPLayout(*args, **kwargs)Si possible, choisit une présentation comme un CSP, en utilisant le backtracking.
VF2Layout(*args, **kwargs)Une passe pour choisir la disposition d'un circuit sur un graphe de couplage, comme un problème d'isomorphisme de sous-graphes, résolu par VF2++.
ApplyLayout(*args, **kwargs)Appliquez ou mettez à jour la correspondance entre les qubits virtuels et les qubits physiques dans le DAGCircuit.
Layout2qDistance(*args, **kwargs)Évaluer la qualité de la sélection de la mise en page.
EnlargeWithAncilla(*args, **kwargs)Étendre le dag avec des qubits virtuels qui sont dans la disposition mais pas encore dans le circuit.
FullAncillaAllocation(*args, **kwargs)Attribuer tous les nœuds inactifs de la carte de couplage ou de la cible en tant qu'ancilla sur le schéma.
SabrePreLayout(*args, **kwargs)Choisissez une disposition de départ à utiliser pour les essais supplémentaires de la disposition Sabre.

Routage

BasicSwap(*args, **kwargs)Tracer (avec un minimum d'effort) un circuit DAGCircuit sur un site coupling_map en ajoutant des portes de permutation.
Commuting2qGateRouter(*args, **kwargs)Une classe permettant d'intervertir une ou plusieurs portes de migration alternante avec la carte de couplage.
LayoutTransformation(*args, **kwargs)Ajoute au circuit un circuit Swap pour une permutation (partielle) donnée.
LookaheadSwap(*args, **kwargs)Cartographier le circuit d'entrée sur une topologie de backend par l'insertion de SWAPs.
SabreSwap(*args, **kwargs)Cartographier le circuit d'entrée sur une topologie de backend par l'insertion de SWAPs.
StarPreRouting()Pré-routage de l'étoile vers le linéaire

Changement de base

BasisTranslator(*args, **kwargs)Traduit les portes vers une base cible en recherchant un ensemble de traductions à partir d'une base donnée EquivalenceLibrary.
Decompose(*args, **kwargs)Développer une porte dans un circuit en utilisant ses règles de décomposition.
TranslateParameterizedGates(*args, **kwargs)Traduire les portes paramétrées en un ensemble de bases pris en charge.
Unroll3qOrMore(*args, **kwargs)Développe récursivement les portes 3q+ jusqu'à ce que le circuit ne contienne plus que des portes 2q ou 1q.
UnrollCustomDefinitions(*args, **kwargs)Déroule des instructions avec des définitions personnalisées.

Optimisations

Collect1qRuns(*args, **kwargs)Collecter des sous-circuits à un qubit.
Collect2qBlocks(*args, **kwargs)Collecter des sous-circuits à deux qubits.
CollectAndCollapse(*args, **kwargs)Un passeur général pour collecter et consolider des blocs de nœuds dans un circuit.
CollectCliffords(*args, **kwargs)Récupère les blocs de portes de Clifford et les remplace par un Clifford objet.
CollectLinearFunctions(*args, **kwargs)Rassemble les blocs de portes linéaires (CXGate et SwapGate les portes ) et les remplace par des fonctions linéaires (LinearFunction).
CollectMultiQBlocks(*args, **kwargs)Rassembler des séquences de portes ininterrompues agissant sur des groupes de qubits.
CommutationAnalysis(*args, **kwargs)Passe d'analyse pour trouver les relations de commutation entre les nœuds du DAG.
CommutativeCancellation(*args, **kwargs)Annulez les portes redondantes (auto-adjointes) grâce aux relations de commutation.
CommutativeInverseCancellation(*args, **kwargs)Annuler les paires de portes inverses en exploitant les relations de commutation.
CommutativeOptimization(*args, **kwargs)Annuler/fusionner les portes en exploitant les relations de commutativité.
ConsolidateBlocks(*args, **kwargs)Remplacer chaque bloc de portes consécutives par un seul nœud unitaire.
ContractIdleWiresInControlFlow(*args, **kwargs)Supprimer les qubits inactifs des opérations de flux de contrôle d'un DAGCircuit.
ConvertToPauliRotations(*args, **kwargs)Convertir un circuit quantique en un circuit équivalent composé de PauliProductRotationGate portes et PauliProductMeasurement d' instructions.
ElidePermutations(*args, **kwargs)Supprimer les opérations de permutation d'un circuit pré-monté
HoareOptimizer(*args, **kwargs)Il s'agit d'un passage de transpondeur utilisant l'optimisation du circuit logique Hoare.
InverseCancellation(*args, **kwargs)Annuler des portes spécifiques qui sont inverses l'une de l'autre lorsqu'elles se produisent l'une après l'autre.
LightCone(*args, **kwargs)Supprimez les portes qui n'ont pas d'incidence sur le résultat d'une mesure sur un circuit.
LitinskiTransformation(*args, **kwargs)Applique la transformée de Litinski à un circuit.
Optimize1qGates(*args, **kwargs)Optimiser les chaînes de portes à qubit unique u1, u2, u3 en les combinant en une seule porte.
Optimize1qGatesDecomposition(*args, **kwargs)Optimiser les chaînes de portes à qubit unique en les combinant en une seule porte.
Optimize1qGatesSimpleCommutation(*args, **kwargs)Optimise les chaînes de portes 1Q interrompues par des portes 2Q en commutant les composants et en resynthétisant les résultats.
OptimizeAnnotated(*args, **kwargs)Passe d'optimisation sur les circuits avec opérations annotées.
OptimizeCliffordT(*args, **kwargs)Optimiser les séquences de portes Clifford+T consécutives.
OptimizeCliffords(*args, **kwargs)Combiner des Cliffords consécutifs sur les mêmes qubits.
OptimizeSwapBeforeMeasure(*args, **kwargs)Supprimer les échanges puis les mesures (et adapter les mesures).
RemoveDiagonalGatesBeforeMeasure(*args, **kwargs)Retirer les barrières diagonales (y compris les barrières diagonales 2Q ) avant une mesure.
RemoveFinalReset(*args, **kwargs)Supprimer la réinitialisation lorsqu'il s'agit de la dernière instruction sur le fil d'un qubit.
RemoveIdentityEquivalent(*args, **kwargs)Supprimer les portes dont les effets sont négligeables.
RemoveResetInZeroState(*args, **kwargs)Retirer la porte de réinitialisation lorsque le qubit est à l'état zéro.
ResetAfterMeasureSimplification(*args, **kwargs)Ce passage remplace la réinitialisation après mesure par une porte X conditionnelle.
Split2QUnitaries(*args, **kwargs)Tenter de décomposer une DAGCircuit opération unitaire à deux qubits en deux portes à un seul qubit.
SubstitutePi4Rotations(*args, **kwargs)Convertir les portes de rotation dont les angles sont des multiples entiers de π/4\pi/4 en ensembles discrets de portes de Clifford, TGate et TdgGate .
TemplateOptimization(*args, **kwargs)Classe pour la passe d'optimisation du modèle.
TwoQubitPeepholeOptimization(*args, **kwargs)Optimisation unitaire unifiée à deux qubits par la méthode du « peephole »

Planification

ALAPScheduleAnalysis(*args, **kwargs)ALAP Scheduling pass, qui planifie l'heure d' arrêt des instructions le plus tard possible.
ASAPScheduleAnalysis(*args, **kwargs)ASAP Scheduling pass, qui planifie l'heure de début des instructions le plus tôt possible.
ConstrainedReschedule(*args, **kwargs)La passe de réordonnancement qui met à jour les heures de démarrage des nœuds pour se conformer aux alignements matériels.
ContextAwareDynamicalDecoupling(*args, **kwargs)Mettre en œuvre un découplage dynamique de la séquence X en tenant compte du contexte de la grille et du qubit.
InstructionDurationCheck(*args, **kwargs)Durée de validation du laissez-passer pour la reprogrammation.
PadDelay(*args, **kwargs)Remplir le temps d'inactivité avec des instructions de retard.
PadDynamicalDecoupling(*args, **kwargs)Passe d'insertion de découplage dynamique.
SetIOLatency(*args, **kwargs)Définir l'information IOLatency pour le circuit d'entrée.
TimeUnitConversion(*args, **kwargs)Choisissez une unité de temps à utiliser dans les passes temporelles suivantes et faites en sorte que toutes les unités de temps des circuits soient cohérentes avec cette unité.

Analyse des circuits

CountOps(*args, **kwargs)Compter les opérations dans un circuit DAG.
CountOpsLongestPath(*args, **kwargs)Comptez le nombre d'opérations sur le chemin le plus long dans un DAGCircuit.
DAGLongestPath(*args, **kwargs)Renvoie le chemin le plus long dans a DAGCircuit sous la forme d'une liste composée de DAGOpNodes, DAGInNodes et DAGOutNodes.
Depth(*args, **kwargs)Calculer la profondeur d'un circuit DAG.
NumTensorFactors(*args, **kwargs)Calculer le nombre de facteurs tensoriels d'un circuit DAG.
ResourceEstimation(*args, **kwargs)Exiger automatiquement des passes d'analyse pour l'estimation des ressources.
Size(*args, **kwargs)Calculer la taille d'un circuit DAG.
Width(*args, **kwargs)Calculer la largeur d'un circuit DAG.

Synthèse

La documentation du plugin synthesis transpiler est disponible sur la page qiskit.transpiler.passes.synthesis.plugin page.

HLSConfig( [utiliser_la_valeur_par_défaut_si_non_spécifiée,...] )La configuration de synthèse de haut niveau permet de spécifier une liste de « méthodes » utilisées par HighLevelSynthesis chaque étape de transformation pour synthétiser différents types d'objets de niveau supérieur.
HighLevelSynthesis(*args, **kwargs)Synthétiser des objets de niveau supérieur et dérouler des définitions personnalisées.
LinearFunctionsToPermutations(*args, **kwargs)Favorise les fonctions linéaires aux permutations lorsque c'est possible.
SolovayKitaev(*args, **kwargs)Décomposer approximativement les portes 1q en une base discrète à l'aide de l'algorithme Solovay-Kitaev.
SynthesizeRZRotations(*args, **kwargs)Remplacer les portes RZ par des décompositions de Clifford-T.
UnitarySynthesis(*args, **kwargs)Synthétiser les portes en fonction de leurs portes de base.

Mise en page

Il s'agit d'une sélection post qubit.

VF2PostLayout(*args, **kwargs)Une passe pour améliorer une présentation existante après transposition d'un circuit sur un graphe de couplage, en tant que problème d'isomorphisme de sous-graphes, résolu par VF2++.

Pass supplémentaires

BarrierBeforeFinalMeasurements(*args, **kwargs)Ajouter une barrière avant les mesures finales.
CheckGateDirection(*args, **kwargs)Vérifier que les portes à deux qubits suivent la bonne direction par rapport à la carte de couplage.
CheckMap(*args, **kwargs)Vérifier si un circuit DAG est déjà associé à une carte de couplage.
ContainsInstruction(*args, **kwargs)Une passe d'analyse pour détecter si le DAG contient une instruction spécifique.
DAGFixedPoint(*args, **kwargs)Vérifier si le DAG a atteint un point fixe.
Error(*args, **kwargs)Passe d'erreur à appeler en cas d'erreur.
FilterOpNodes(*args, **kwargs)Supprimer toutes les opérations qui correspondent à une fonction de filtrage
FixedPoint(*args, **kwargs)Vérifier si une propriété a atteint un point fixe.
GateDirection(*args, **kwargs)Modifier les portes asymétriques pour qu'elles correspondent au sens de couplage du matériel.
GatesInBasis(*args, **kwargs)Vérifier si toutes les portes d'un DAG font partie d'un ensemble de portes donné
MergeAdjacentBarriers(*args, **kwargs)Renvoyer un circuit avec toutes les barrières adjacentes fusionnées.
MinimumPoint(*args, **kwargs)Vérifier si le DAG a atteint un point relativement semi-stable au cours des exécutions précédentes
RemoveBarriers(*args, **kwargs)Renvoyer un circuit dont la barrière a été supprimée.
RemoveFinalMeasurements(*args, **kwargs)Enlever les mesures finales et les barrières à la fin d'un circuit.
UnrollForLoops(*args, **kwargs)UnrollForLoops la passe de transpilation déroule les boucles "for" lorsque cela est possible.
WrapAngles(*args, **kwargs)Enveloppe les angles en dehors de la limite spécifiée dans la cible.

Données supplémentaires

qiskit.transpiler.passes.utils.wrap_angles.WRAP_ANGLE_REGISTRY

Un emplacement historique pour WrapAngles.DEFAULT_REGISTRY. Ce chemin ne doit être utilisé que lorsqu'une compatibilité totale avec Qiskit 2.2 est requise.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.