AddPreCircuitNonMarkovianErrorChecks
class AddPreCircuitNonMarkovianErrorChecks(*args, **kwargs)
Basen: TransformationPass
Füge am Anfang der Schaltung auf aktiven Qubits nicht-Markovsche Fehlerprüfungen ein, die mit einer Messung enden.
Eine nicht-Markovsche Fehlerprüfung vor dem Schaltkreis besteht aus einem schmalbandigen X-Impuls, der das Qubit aus dem Zustand dreht, gefolgt von einem normalen X-Impuls, der das Qubit zurück in den Grundzustand dreht, sowie einer Messung. Wenn es der QPU bei einem bestimmten Durchlauf nicht gelingt, das Qubit von „ “ umzudrehen, kann diese Probe 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 Messwerte 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 "_pre" Registernamen ein 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 Vorabprüfungsmessungen verwendet werden soll. Entweder oder
"xslow""rx". - pre_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 „_ps“ enden, ignoriert, um zu vermeiden, dass Pre-Check-Register zu Post-Check-Registern hinzugefügt werden.
- ignore_creg_names – Eine Liste der genauen Namen klassischer Register, die ignoriert (nicht kopiert) werden sollen. Standardmäßig werden Register mit dem Namen „spec“ ignoriert, um zu vermeiden, dass Pre-Checks zu Spectator-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 das Qiskit-IR-Eingabedaten 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