Prüfungen
qiskit_paulice.checks
Funktion zum Auffinden effektiver Pauli-Prüfungen in der Raumzeit.
add_pauli_checks
add_pauli_checks(circuit, target_qubits, noise_model, cost='gamma', cost_nshots=10000, method='windowed', ancilla_qubits=None, check_creg_name='checks_c', check_qreg_name='checks_q', seed=None)
Füge einem Clifford-Schaltkreis Raumzeit-Pauli-Prüfungen hinzu.
Der Algorithmus zur Auswahl von Prüfungen ermittelt für jedes Ziel-Qubit gültige Prüfungen mit geringem Gewicht in der Reihenfolge, in der sie in angegeben sind, target_qubits und wählt die Prüfung aus, die die größte Fehlererkennungsabdeckung bietet (d. h. den cost Wert minimiert). target_qubits[0]Sobald ein Scheck auf festgelegt wurde, bleibt er für den Rest des Algorithmus gültig, und es wird nach einem gültigen Scheck auf target_qubits[1] gesucht. Aus diesem Grund kann die Reihenfolge der target_qubits einen gewissen Einfluss auf die Menge der von der Funktion erzeugten Prüfungen haben.
Diese Funktion erzeugt qiskit_paulice.CheckedCircuit Instanzen, die eine Anzahl von Prüfungen enthalten, die von 0 bis zu einer Prüfung pro Ziel-Qubit reicht. Es kann aufschlussreich sein, die Konvergenz der Kostenfunktion bei zunehmender Anzahl von Prüfungen zu betrachten, da man möglicherweise bereits bei einer geringeren Anzahl von Prüfungen eine Konvergenz der Kosten feststellen kann.
Einzelheiten zur Ermittlung wirksamer Pauli-Prüfungen in der Raumzeit finden Sie im ergänzenden Abschnitt. II-VI von Martiel, Javadi.
Parameter
-
circuit (QuantumCircuit) – Der Clifford-Schaltkreis zur Darstellung mit Raumzeit-Pauli-Checkmustern. Die Schaltung muss mit einer Messung an mindestens einem Qubit abgeschlossen werden. Die Schaltung kann auf virtuellen oder physikalischen Qubits definiert werden.
ancilla_qubitsWenn die Schaltung über ein Layout verfügt, muss der Benutzer dieses bereitstellen. -
target_qubits (Sequence[int]) – Qubit-Indizes,
circuitdie dazu dienen, die Prüf-Qubits mit der Nutzlast zu verschränken.ancilla_qubitsWenncircuitein Layout aufweist (ISA-Modus), handelt es sich hierbei um physikalische Qubit-Indizes, die im selben Indexraum wie liegen. -
noise_model (NoiseModel) – Ein Rauschmodell, das die Auswirkungen von Rauschen auf das Zielgerät beschreibt. Dieses Modell wird verwendet, um die Auswirkungen einer bestimmten Prüfung während des Kommissionierprozesses abzuschätzen. Zwar lässt sich ein Rauschmodell aus gelerntem Pauli-Lindblad-Rauschen generieren, doch reicht oft schon eine gröbere Annäherung des Rauschens aus, das anhand von Backend-Benchmark-Daten erzeugt wurde. Durch das Einfügen von Prüfwerten eingeführte Ancilla-/Zielkanten, die nicht in den bereitgestellten
GateWiseNoiseDaten enthaltenLayeredNoisesind, werden automatisch abgeleitet (Medianwert pro Pauli-Paar über die bereitgestellten Daten); geben Sie diese explizit an, um die Ableitung zu überschreiben. -
cost (Literal['gamma', 'LER']) –
Zu optimierende Kennzahl. Kann oder
"LER"sein"gamma"(logische Fehlerrate)."gamma": Der Gamma-Wert, der dem inversen logischen Rauschkanal zugeordnet ist (d. h. dem Rauschkanal, der aus Fehlern innerhalb des Messlichtkegels besteht, die durch die Prüfungen nicht erkannt werden können)."LER": Die empirische Fehlerquote nach der Nachselektion. Führt Monte-Carlo-Simulationen durch, um den Anteil der nachselektierten Aufnahmen zu berechnen, die von ungedecktem logischem Rauschen betroffen sind.
-
cost_nshots (int) – Anzahl der Monte-Carlo-Durchläufe, die von Monte-Carlo-basierten Kostenmetriken verwendet werden (derzeit nur
"LER"). -
method (Literal['windowed', 'genetic', 'windowed_genetic']) –
Wählen Sie die Kommissioniermethode aus (
"windowed","genetic", oder"windowed_genetic"). Jede Methode fügt nacheinander Prüfungen hinzutarget_qubits. Sobald eine Überprüfung für ein bestimmtes Ziel-Qubit festgeschrieben wurde, wird sie nicht rückgängig gemacht, auch wenn weitere Überprüfungen hinzukommen.costJede Methode wählt Prüfungen aus, die eine maximale Fehlererkennungsfähigkeit bieten (d. h. den geringsten Fehleranteil)."windowed": Wähle kleine Teilmengen der Leitungen jedes Ziel-Qubits aus, um geeignete Prüfwerte zu finden"genetic": Aus dem gesamten Drahtraum jedes Ziel-Qubits eine Reihe von Kandidatenprüfungen ableiten"windowed_genetic": Führe eine genetische Suche innerhalb zufälliger Fenster von Leitungen auf jedem Ziel-Qubit durch
-
ancilla_qubits (Sequence[int] | None) – Liste der Indizes der physikalischen Qubits (jeweils einer pro Index in
target_qubits), die angibt, wo die Prüf-Ancillas im Ausgangskreis platziert werden sollen.NoneErforderlich, wenncircuit.layoutnicht ist.ancilla_qubits[i]wird bei der Durchführung deri-ten Prüfung verschränkte Gatter mittarget_qubits[i]teilen. -
check_creg_name (str) – Name des klassischen Registers für Kontrollmessungen (Standard: „checks_c“)
-
check_qreg_name (str) – Name des Quantenregisters, das die Prüf-Ancillas in den Ausgangsschaltungen enthält (Standard: „checks_q“). Wird im ISA-Modus ignoriert.
-
seed (int | None) – Zufallszahl zur Steuerung der Zufälligkeit bei der Suche nach geeigneten Prüfungen. Zwar steuert dieser Startwert einen Teil der Zufälligkeit im Algorithmus, doch besteht bei der Verwendung
LERder Kostenfunktion oder einer der beiden Varianten der genetischen Auswahlmethode nach wie vor ein gewisser Nichtdeterminismus.NoneDie Kombination auscost="gamma"undmethod="windowed"ist vollständig deterministisch, wennseednicht ist.
Rückgabe
Eine Liste von qiskit_paulice.CheckedCircuit Instanzen – Instanzen, die den reinen Schaltkreis ohne Prüfungen enthalten, sowie jeweils eine Instanz für jede hinzugefügte Prüfung. Das letzte Element der Ausgabe enthält die qiskit_paulice.CheckedCircuit mit Prüfwerten für jedes Ziel-Qubit, vorausgesetzt, es konnte ein gültiger Satz von Prüfwerten gefunden werden.