Skip to main content
IBM Quantum Platform

AddSpectatorMeasures

class AddSpectatorMeasures(*args, **kwargs)

GitHub

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.

Remarque

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

tuple [ DAGCircuit, PassManagerState ]

name

name()

Nom du laissez-passer.

Type de retour

str

run

run(dag)

GitHub

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

PassManagerState

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