SabrePreLayout
class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)
Bases : AnalysisPass
Choisissez une disposition de départ à utiliser pour les essais supplémentaires de la disposition Sabre.
Ce passage consiste à enrichir la carte de couplage en y ajoutant de plus en plus d’arêtes « supplémentaires » jusqu’à ce que l’ VF2 e parvienne à trouver un isomorphisme parfait entre les graphes. Plus précisément, la carte de couplage augmentée contient des arêtes entre des nœuds qui se trouvent à une distance donnée les uns d des autres dans la carte de couplage d'origine. Les arêtes d'origine sont exemptes de bruit, tandis que les arêtes supplémentaires présentent un bruit qui augmente de manière exponentielle avec la distance. La valeur de d est augmentée jusqu'à ce qu'un isomorphisme soit trouvé.
Intuitivement, une meilleure configuration de l' VF2 e implique moins d'arêtes supplémentaires et des distances plus courtes entre celles-ci.
Valeurs définies pour les propriétés écrites
sabre_starting_layouts (list[Layout])
Une liste optionnelle d'objets Layout à utiliser pour les essais supplémentaires de mise en page de Sabre.
Références :
[1] Henry Zou et Matthew Treinish et Kevin Hartman et Alexander Ivrii et Jake Lishman. “LightSABRE: Un algorithme SABRE léger et amélioré" arXiv:2409.08368
param coupling_map
Graphique orienté représentant la carte de couplage d'origine ou un modèle cible du backend (y compris sa connectivité).
param max_distance
La distance maximale pour l'exécution d' VF2 s à l'aide de la carte de couplage augmentée. Cela précise notamment la distance maximale entre les nœuds d'origine qui se retrouvent connectés dans la carte de couplage augmentée.
param erreur_taux
Le taux d'erreur à attribuer aux arêtes « supplémentaires ». Un taux d'erreur différent de zéro incite l' VF2 e à privilégier les arêtes d'origine plutôt que les arêtes supplémentaires.
paramètre max_trials_vf2
Définit le nombre maximal d'essais d' VF2. Cette option est principalement conservée pour des raisons de compatibilité ascendante depuis l'introduction de l'évaluation à la volée dans VF2, qui a été intégrée à Qiskit 2.3. Pour limiter la durée du passage, définissez plutôt les paramètres max_distance``call_limit_vf2 et.
paramètre call_limit_vf2
Le nombre maximal de tentatives d'extension de la correspondance effectuées par la recherche d'isomorphisme interne d' VF2. Si None, alors il n'y a pas de limite. S'il s'agit d'un triplet, la recherche commence par le premier élément, puis passe au deuxième dès que la première correspondance est trouvée, sans réinitialiser le nombre d'étapes effectuées. Cette approche permet d'effectuer une recherche approfondie de n'importe quelle correspondance, tout en mettant fin rapidement à la recherche avec un budget d'extension réduit si une correspondance est trouvée.
param improve_layout
Non utilisé (cette option est devenue obsolète avec l'introduction de la notation en temps réel dans VF2 ).
paramètre min_distance
La distance pour la première exécution de l' VF2 ation avec la carte de couplage augmentée. Ce paramètre min_distance > 1 ignore toutes les vérifications de distances plus courtes, et en particulier la vérification « distance-1 », qui correspond à l'exécution de VF2Layout la passe.
soulève TranspilerError
Lors de l'exécution, si l'argument coupling_map n'est pas fourni.
Attributs
is_analysis_pass
Vérifier si la passe est une passe d'analyse.
Si le passe est un AnalysisPass,, cela signifie qu'il peut analyser le DAG et écrire les résultats de cette analyse dans l'ensemble de propriétés. Les modifications sur le DAG ne sont pas autorisées par ce type de passe.
is_transformation_pass
Vérifier si le laissez-passer est un laissez-passer de transformation.
Si la passe est une TransformationPass,, cela signifie qu'elle peut manipuler le DAG, mais qu'elle ne peut pas modifier l'ensemble des propriétés (mais qu'elle peut les lire).
Méthodes
execute
execute(passmanager_ir, state, callback=None)
Exécuter la tâche d'optimisation pour l'entrée Qiskit IR.
Paramètres
- passmanager_ir (IR) – IR Qiskit à optimiser.
- state (PassManagerState) – État associé à l'exécution du flux de travail par le gestionnaire de passe lui-même.
- callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – Une fonction de rappel qui est appelée à chaque exécution d'une tâche d'optimisation.
Retours
Qiskit IR optimisé et état du flux de travail.
Type de retour
tuple [ IR_OUT, PassManagerState ]
name
run
run(dag)
Exécuter la passe SabrePreLayout sur dag.
La disposition de départ découverte est inscrite dans l'ensemble de propriétés sabre_starting_layouts.
Paramètres
dag (DAGCircuit) – DAG pour lequel créer un schéma de départ.
update_status
update_status(state, run_state)
Mettre à jour le statut du flux de travail.
Paramètres
- state (PassManagerState) – Transmettre l'état du gestionnaire à mettre à jour.
- run_state (RunState) – Statut d'achèvement de la tâche en cours.
Retours
Mise à jour de l'état du gestionnaire de passe.
Type de retour