Problembehandlung: Öffnen QASM - Amazon Braket

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.

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.