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 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.