AddPostSelectionMeasures
class AddPostSelectionMeasures(*args, **kwargs)
Basen: TransformationPass
Fügen Sie nach jeder Terminalmessung eine Nachselektionsmessung hinzu.
Eine Post-Selection-Messung ist eine Messung, die auf eine reguläre Messung an einem bestimmten Qubit folgt. Es besteht aus einem schmalbandigen X-Impuls, gefolgt von einem regulären Messvorgang. Bei Abwesenheit von Rauschen wird erwartet, dass es (b + 1) % 2 liefert, wobei b das Ergebnis der ursprünglichen Messung ist.
Bei diesem Durchlauf werden nach jeder Klemmenmessung, d. h. nach jeder Messung, auf die keine weitere Operation an derselben Leitung folgt, Nachselektionsmessungen hinzugefügt. Die hinzugefügten Messungen werden nach einer Barriere platziert und schreiben in neue klassische Register, die Kopien der DAG-Register sind, mit geänderten Namen.
Wenn dieser Durchlauf auf eine Kontrollflussoperation stößt, durchläuft er alle seine Blöcke. Es markiert nur diejenigen Qubits als "abgeschlossen", die in jedem der Blöcke abgeschlossen sind, und behandelt jedes andere Qubit als nicht abgeschlossen.
Initialisieren Sie den Pass.
Parameter
- x_pulse_type - Der Typ des X-Impulses, der für die Nachselektionsmessungen verwendet wird.
- post_selection_suffix - Ein festes Suffix, das an die Namen der klassischen Register angehängt wird, wenn diese kopiert werden.
Attribute
is_analysis_pass
Prüfen Sie, ob der Pass ein Analysepass ist.
Wenn der Pass ein AnalysisPass, ist, bedeutet dies, dass der Pass die DAG analysieren und die Ergebnisse dieser Analyse in den Eigenschaftssatz schreiben kann. Änderungen an der DAG sind bei dieser Art von Pass nicht zulässig.
is_transformation_pass
Prüfen Sie, ob der Pass ein Transformationspass ist.
Wenn es sich bei dem Pass um TransformationPass, handelt, bedeutet dies, dass der Pass die DAG manipulieren kann, aber den Eigenschaftssatz nicht verändern kann (aber er kann gelesen werden).
Methoden
execute
execute(passmanager_ir, state, callback=None)
Ausführen der Optimierungsaufgabe für die Eingabe Qiskit IR.
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
Optimierte Qiskit IR und Stand des Workflows.
Rückgabetyp
name
run
run(dag)
Führen Sie einen Durchlauf auf dem DAGCircuit durch. Dies wird durch den Entwickler des Ausweises umgesetzt.
Parameter
dag (DAGCircuit) – der Tag, an dem der Pass ausgeführt wird.
Erhöht
NotImplementedError - wenn dies für einen Durchgang nicht implementiert wird.
update_status
update_status(state, run_state)
Aktualisieren Sie den Workflow-Status.
Parameter
- state (PassManagerState) – Übergeben Sie den Status des Managers zur Aktualisierung.
- run_state (RunState) – Erledigungsstatus der aktuellen Aufgabe.
Rückgabe
Aktualisierter Status des Passmanagers.
Rückgabetyp