ApplyLayout
class qiskit.transpiler.passes.ApplyLayout(*args, **kwargs)
Bases : TransformationPass
Appliquer ou mettre à jour la correspondance entre les qubits virtuels et les qubits physiques dans la base de données DAGCircuit.
Un "layout" dans Qiskit est un mappage de qubits virtuels (que l'utilisateur crée typiquement en termes de circuits) aux qubits physiques utilisés pour les représenter sur le matériel.
Cette passe a deux modes de fonctionnement, en fonction de l'état des touches layout et post_layout dans l'onglet PropertySet:
-
Fonctionnement standard :
post_layoutn'est pas réglé. Il s'agit d'uneDAGCircuitdéfinie sur des qubits virtuels, et la réécrit en termes de qubits physiques. Dans ce cas, le champlayoutdoit avoir été choisi par une passe de mise en page (par exempleSetLayoutouVF2Layout), et ce champ ainsi que le champDAGCircuitdoivent avoir été étendus avec des ancillas (voirEnlargeWithAncillaetFullAncillaAllocation). -
Amélioration d'une mise en page :
post_layoutest défini (par exemple parVF2PostLayout). Dans ce cas, le sitepost_layoutdoit déjà avoir la bonne taille. Il est interprété comme un étiquetage supplémentaire qui vient s'ajouter à l'étiquetage déjà appliqué à l'entréeDAGCircuit.Après l'exécution de la passe, le champ
layoutsera mis à jour pour représenter la composition des deux réétiquetages, de même que le champDAGCircuitet toute permutation finale. Le champpost_layoutsera supprimé.
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 (DAGCircuit) – IR Qiskit à optimiser.
- state (DAGCircuit) – État lié à l'exécution du flux de travail par le gestionnaire de passes lui-même.
- callback (Callable[[Task, DAGCircuit, 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
name
run
run(dag)
Exécutez la passe ApplyLayout sur dag.
Paramètres
dag (DAGCircuit) – DAG à la carte.
Retours
Un DAG mappé (avec des qubits physiques).
Type de retour
Augmentations
TranspilerError – si aucune configuration n'est trouvée dans property_set ou s'il n'y a pas suffisamment de qubits physiques.
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