Skip to main content
IBM Quantum Platform

AddPostCircuitNonMarkovianErrorChecks

class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)

GitHub

Bases : TransformationPass

Ajouter des contrôles d'erreur non markoviens à la fin du circuit sur les qubits actifs, se terminant par une mesure.

Un contrôle d'erreur non markovien post-circuit consiste en une impulsion X à bande étroite, appliquée après une mesure finale, qui inverse l'état du qubit par rapport à l'état mesuré ∣x⟩↦∣x⊕1⟩|x\rangle\mapsto|x\oplus1\rangle. L'état est ensuite mesuré, et si le QPU n'a pas réussi à inverser le qubit lors d'un essai donné, cet échantillon peut être considéré comme non fiable et écarté. Le fait de ne retenir, après échantillonnage, que les échantillons qui satisfont à tous les critères de contrôle peut améliorer la fidélité des distributions échantillonnées à partir du QPU.

Les mesures ajoutées sont enregistrées dans de nouveaux registres classiques qui sont des copies des registres du DAG, avec des noms modifiés (par défaut, en ajoutant "_ps" à la fin du nom du registre).

Remarque

Ces passes ne sont prises en charge que sur les QPU Heron prenant en charge les portes fractionnaires.

Initialiser le pass.

Paramètres

  • x_pulse_type – Type d'impulsion X à appliquer pour les mesures de contrôle a posteriori. Soit l'un, "xslow" soit l'autre "rx".
  • post_check_suffix – Suffixe fixe à ajouter aux noms des registres classiques lors de leur copie.
  • ignore_creg_suffixes – Liste des suffixes des registres classiques à ignorer (à ne pas copier). Par défaut, les registres se terminant par « _pre » sont ignorés afin d’éviter d’ajouter une vérification postérieure aux registres de vérification préalable.

Attributs

is_analysis_pass

Vérifiez si le passage est un passage d'analyse.

Si le passe-par-dessus est de type « AnalysisPass, », cela signifie qu’il est capable d’analyser le DAG et d’enregistrer les résultats de cette analyse dans l’ensemble de propriétés. Ce type de passe ne permet pas d'apporter des modifications au DAG.

is_transformation_pass

Vérifiez si le passage est un passage de transformation.

Si le pass est de type « TransformationPass, », cela signifie qu'il peut manipuler le DAG, mais ne peut pas modifier l'ensemble de propriétés (bien qu'il puisse le consulter).


Méthodes

execute

execute(passmanager_ir, state, callback=None)

Exécuter la tâche d'optimisation pour l'IR Qiskit fourni.

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

Optimisation de l'IR de Qiskit et état d'avancement du workflow.

Type de retour

tuple [ DAGCircuit, PassManagerState ]

name

name()

Nom du col.

Type de retour

str

run

run(dag)

GitHub

Lancez un cycle sur le DAGCircuit. Cette fonctionnalité est mise en œuvre par le développeur du pass.

Paramètres

dag (DAGCircuit) – le jour où le col est franchi.

Augmentations

NotImplementedError – lorsque cela n’est pas mis en œuvre pour un passage.

update_status

update_status(state, run_state)

Mettre à jour le statut du workflow.

Paramètres

  • state (PassManagerState) – Transmettre l'état du gestionnaire pour la mise à jour.
  • run_state (RunState) – État d'avancement de la tâche en cours.

Retours

Mise à jour de l'état du gestionnaire de pass.

Type de retour

PassManagerState

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