AddPostCircuitNonMarkovianErrorChecks
class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)
Basen: TransformationPass
Füge am Ende der Schaltung auf den aktiven Qubits, die mit einer Messung abgeschlossen wird, nicht-markovsche Fehlerprüfungen hinzu.
Eine nicht-markovsche Fehlerprüfung nach dem Schaltkreis besteht aus einem schmalbandigen X-Impuls, der nach einer Endmessung erfolgt und den Zustand des Qubits aus dem gemessenen Zustand umkehrt. Anschließend wird der Zustand gemessen, und falls es der QPU bei einem bestimmten Durchlauf nicht gelungen ist, das Qubit umzukehren, kann diese Stichprobe als unzuverlässig angesehen und verworfen werden. Durch die nachträgliche Auswahl nur jener Stichproben, die alle Prüfungen bestehen, lässt sich die Genauigkeit der aus der QPU entnommenen Verteilungen verbessern.
Die hinzugefügten Messungen werden in neue klassische Register geschrieben, bei denen es sich um Kopien der DAG-Register handelt, deren Namen geändert wurden (standardmäßig wird dem Registernamen ein "_ps" Anhang hinzugefügt).
Diese Durchläufe werden nur auf Heron-QPUs unterstützt, die fraktionierte Gatter unterstützen.
Den Durchgang initialisieren.
Parameter
- x_pulse_type – Der Typ des X-Impulses, der für die Nachmessungen verwendet werden soll. Entweder oder
"xslow""rx". - post_check_suffix – Ein festes Suffix, das beim Kopieren an die Namen der klassischen Register angehängt wird.
- ignore_creg_suffixes – Eine Liste von Suffixen für klassische Register, die ignoriert (nicht kopiert) werden sollen. Standardmäßig werden Register, die mit „_pre“ enden, ignoriert, um zu vermeiden, dass Post-Check-Register zu Pre-Check-Registern hinzugefügt werden.
Attribute
is_analysis_pass
Prüfen Sie, ob es sich bei dem Durchlauf um einen Analysedurchlauf handelt.
Wenn es sich bei dem Pass um einen „ AnalysisPass, “ handelt, bedeutet dies, dass der Pass den DAG analysieren und die Ergebnisse dieser Analyse in den Eigenschaftssatz schreiben kann. Änderungen am DAG sind bei dieser Art von Durchlauf nicht zulässig.
is_transformation_pass
Prüfe, ob es sich bei dem Pass um einen Transformationspass handelt.
Wenn es sich bei dem Pass um einen „ TransformationPass, “ handelt, bedeutet dies, dass der Pass den DAG bearbeiten kann, die Eigenschaften jedoch nicht ändern darf (sie können jedoch gelesen werden).
Methoden
execute
execute(passmanager_ir, state, callback=None)
Optimierungsaufgabe für die Qiskit-IR-Eingabe ausführen.
Parameter
- passmanager_ir (DAGCircuit) – Qiskit IR zur Optimierung.
- state (DAGCircuit) – Zustand, der mit der Ausführung des Workflows durch den Pass-Manager selbst verbunden ist.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Eine Callback-Funktion, die bei jeder Ausführung einer Optimierungsaufgabe aufgerufen wird.
Rückgabe
Optimiertes Qiskit-IR und aktueller Stand des Workflows.
Rückgabetyp
name
run
run(dag)
Führen Sie einen Durchlauf auf dem DAGCircuit durch. Dies wird vom Pass-Entwickler umgesetzt.
Parameter
dag (DAGCircuit) – der Tag, an dem die Passfahrt stattfindet.
Erhöhungen
NotImplementedError – wenn dies für einen Durchlauf nicht umgesetzt wird.
update_status
update_status(state, run_state)
Status des Workflows aktualisieren.
Parameter
- state (PassManagerState) – Übergeben Sie den Status des Managers zur Aktualisierung.
- run_state (RunState) – Fertigstellungsstatus der aktuellen Aufgabe.
Rückgabe
Status des Pass-Managers aktualisiert.
Rückgabetyp