AddSpectatorMeasures
class AddSpectatorMeasures(*args, **kwargs)
Bases : TransformationPass
Ajouter des mesures sur les qubits spectateurs.
Un qubit actif est un qubit actionné dans le circuit par une instruction sans barrière. Un qubit terminé est un qubit dont la dernière action est une mesure. Un qubit spectateur est un qubit inactif, mais adjacent à un qubit actif sous la carte de couplage. Cette passe ajoute une mesure à tous les qubits spectateurs et, éventuellement via include_unmeasured, à tous les qubits actifs qui ne sont pas des qubits terminés.
Les mesures ajoutées s'inscrivent dans un nouveau registre qui comporte un bit par qubit de spectateur et s'appelle spectator_creg_name.
Lorsque cette passe rencontre une opération de flux de contrôle, elle parcourt tous ses blocs. Il marque comme "actif" tout qubit qui est actif dans au moins un des blocs, et comme "terminé" tout qubit qui est terminé dans chacun des blocs.
Initialiser la passe.
Paramètres
- coupling_map - Une carte de couplage ou une liste de tuples indiquant les paires de qubits voisins.
- include_unmeasured - Indique si les qubits qui sont actifs mais qui ne sont pas terminés par une mesure doivent également être traités comme des spectateurs. Si
True, une mesure terminale est ajoutée sur chacun d'eux. - spectator_creg_name - Le nom du registre classique ajouté pour les mesures sur les qubits du spectateur.
- add_barrier - Indique s'il faut ajouter une barrière agissant sur tous les qubits actifs et les qubits du spectateur avant les mesures du spectateur.
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 de 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)
Effectuer une passe sur le circuit DAG. C'est le développeur du laissez-passer qui s'en charge.
Paramètres
dag (DAGCircuit) – le dag sur lequel la passe est exécutée.
Augmentations
NotImplementedError - lorsqu'il n'est pas mis en œuvre pour un passage.
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