Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Problembehandlung: Öffnen QASM
Dieser Abschnitt enthält Hinweise zur Problembehandlung, die nützlich sein können, wenn Fehler bei der Verwendung von Open QASM 3.0 auftreten.
In diesem Abschnitt:
- Anweisungsfehler einschließen
- Nicht zusammenhängend qubits error
- Mischen (physisch) qubits mit virtuellem qubits error
- Ergebnistypen anfordern und messen qubits im gleichen Programmfehler
- Klassisch und qubit Fehler bei Überschreitung der Registergrenzen
- Feld, dem kein wörtlicher Pragma-Fehler vorausgeht
- Fehler bei verbatim-Boxen, bei denen native Gates fehlen
- Wörtliche Boxen fehlen physisch qubits error
- Im wörtlichen Pragma fehlt der Fehler „Braket“
- Einzel qubits Fehler kann nicht indexiert werden
- Das Physische qubits in einer Zwei qubit Fehler: Gate sind nicht verbunden
- Warnung zur Unterstützung des lokalen Simulators
Anweisungsfehler einschließen
Braket verfügt derzeit nicht über eine Standard-Gate-Bibliotheksdatei, die in QASM Open-Programme aufgenommen werden könnte. Das folgende Beispiel löst beispielsweise einen Parser-Fehler aus.
OPENQASM 3; include "standardlib.inc";
Dieser Code generiert die Fehlermeldung: No terminal matches '"' in the current parser context, at line 2 col 17.
Nicht zusammenhängend qubits error
Verwenden von nicht zusammenhängenden qubits auf Geräten, die true
in der Gerätefunktion auf requiresContiguousQubitIndices
eingestellt sind, führt zu einem Fehler.
Bei der Ausführung von Quantenaufgaben auf Simulatoren und IonQ, löst das folgende Programm den Fehler aus.
OPENQASM 3; qubit[4] q; h q[0]; cnot q[0], q[2]; cnot q[0], q[3];
Dieser Code generiert die Fehlermeldung: Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].
Mischen (physisch) qubits mit virtuellem qubits error
Mischen (physisch) qubits mit virtuellem qubits im selben Programm ist nicht erlaubt und führt zu einem Fehler. Der folgende Code generiert den Fehler.
OPENQASM 3; qubit[2] q; cnot q[0], $1;
Dieser Code generiert die Fehlermeldung: [line 4] mixes physical qubits and qubits registers.
Ergebnistypen anfordern und messen qubits im gleichen Programmfehler
Ergebnistypen anfordern und das qubits werden explizit im selben Programm gemessen, führt zu einem Fehler. Der folgende Code generiert den Fehler.
OPENQASM 3; qubit[2] q; h q[0]; cnot q[0], q[1]; measure q; #pragma braket result expectation x(q[0]) @ z(q[1])
Dieser Code generiert die Fehlermeldung: Qubits should not be explicitly measured when result types are requested.
Klassisch und qubit Fehler bei Überschreitung der Registergrenzen
Nur ein klassisches Register und eines qubit Register sind erlaubt. Der folgende Code generiert den Fehler.
OPENQASM 3; qubit[2] q0; qubit[2] q1;
Dieser Code generiert die Fehlermeldung: [line 4] cannot declare a qubit register. Only 1 qubit register is supported.
Feld, dem kein wörtlicher Pragma-Fehler vorausgeht
Allen Feldern muss ein wörtliches Pragma vorangestellt werden. Der folgende Code generiert den Fehler.
box{ rx(0.5) $0; }
Dieser Code generiert die Fehlermeldung: In verbatim boxes, native gates are required. x is not a device native gate.
Fehler bei verbatim-Boxen, bei denen native Gates fehlen
Verbatim-Boxen sollten systemeigene Gates und physische Eingänge haben qubits. Der folgende Code generiert den nativen Gates-Fehler.
#pragma braket verbatim box{ x $0; }
Dieser Code generiert die Fehlermeldung: In verbatim boxes, native gates are required. x is not a device native gate.
Wörtliche Boxen fehlen physisch qubits error
Verbatim-Boxen müssen physisch sein qubits. Der folgende Code generiert das fehlende physische qubits Fehler.
qubit[2] q; #pragma braket verbatim box{ rx(0.1) q[0]; }
Dieser Code generiert die Fehlermeldung: Physical qubits are required in verbatim box.
Im wörtlichen Pragma fehlt der Fehler „Braket“
Sie müssen „Braket“ in das wörtliche Pragma aufnehmen. Der folgende Code generiert den Fehler.
#pragma braket verbatim // Correct #pragma verbatim // wrong
Dieser Code generiert die Fehlermeldung: You must include “braket” in the verbatim pragma
Einzel qubits Fehler kann nicht indexiert werden
Einzel qubits kann nicht indexiert werden. Der folgende Code generiert den Fehler.
OPENQASM 3; qubit q; h q[0];
Dieser Code generiert den Fehler: [line 4] single qubit cannot be indexed.
Jedoch Single qubit Arrays können wie folgt indexiert werden:
OPENQASM 3; qubit[1] q; h q[0]; // This is valid
Das Physische qubits in einer Zwei qubit Fehler: Gate sind nicht verbunden
Um physisch zu verwenden qubits, vergewissern Sie sich zunächst, dass das Gerät physische Geräte verwendet qubits indem Sie das Verbindungsdiagramm überprüfen device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits
und dann überprüfen, indem Sie device.properties.paradigm.connectivity.connectivityGraph
oder überprüfendevice.properties.paradigm.connectivity.fullyConnected
.
OPENQASM 3; cnot $0, $14;
Dieser Code generiert die Fehlermeldung: [line 3] has disconnected qubits 0 and 14
Warnung zur Unterstützung des lokalen Simulators
Das LocalSimulator
unterstützt erweiterte Funktionen in OpenQASM, die möglicherweise nicht auf Simulatoren QPUs oder On-Demand-Simulatoren verfügbar sind. Wenn Ihr Programm Sprachfunktionen enthält, die nur für den spezifisch sindLocalSimulator
, wie im folgenden Beispiel gezeigt, erhalten Sie eine Warnung.
qasm_string = """ qubit[2] q; h q[0]; ctrl @ x q[0], q[1]; """ qasm_program = Program(source=qasm_string)
Dieser Code generiert die Warnung: `Dieses Programm verwendet QASM Open-Language-Funktionen, die nur in der LocalSimulator unterstützt werden. Einige dieser Funktionen werden möglicherweise nicht auf Simulatoren QPUs oder On-Demand-Simulatoren unterstützt.
Weitere Informationen zu den unterstützten QASM Open-Funktionen finden Sie hier.