Fehlerbehebung bei OpenQASM - 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.

Fehlerbehebung bei OpenQASM

Dieser Abschnitt enthält Hinweise zur Fehlerbehebung, die nützlich sein können, wenn Fehler bei der Verwendung von OpenQASM 3.0 auftreten.

Fehler in der Anweisung einschließen

Braket hat derzeit keine Standard-Gate-Bibliotheksdatei, die in OpenQASM-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ängender Fehler qubits

Die Verwendung von nicht zusammenhängend qubits auf Geräten, die true in der Gerätefunktion auf requiresContiguousQubitIndices eingestellt sind, führt zu einem Fehler.

Beim Ausführen 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 von qubits physischem und virtuellem qubits Fehler

Das Mischen von physisch qubits und virtuell qubits in demselben Programm ist nicht zulässig 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.

Fehler beim Abrufen von Ergebnistypen und Messen qubits im selben Programm

Das Anfordern von qubits Ergebnistypen, die explizit im selben Programm gemessen wurden, 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.

Die klassischen Grenzwerte und die qubit Registergrenzen haben den Fehler überschritten

Nur ein klassisches Register und ein qubit Register sind zulässig. 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 Tore und physische Eingänge haben. qubits Der folgende Code generiert den Native-Gate-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.

Bei den verbatim-Boxen fehlt ein physischer Fehler qubits

Verbatim-Boxen müssen physisch sein. qubits Der folgende Code generiert den fehlenden physikalischen 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

Fehler „Single qubits kann nicht indexiert werden“

Single 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.

Einzelne qubit Arrays können jedoch wie folgt indexiert werden:

OPENQASM 3; qubit[1] q; h q[0]; // This is valid

Fehler: Die physikalischen qubits Verbindungen in zwei qubit Gates sind nicht verbunden

Um physische Geräte zu verwendenqubits, überprüfen Sie zunächst, ob das Gerät physische qubits Geräte verwendet, device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits und überprüfen Sie dann das Verbindungsdiagramm, indem Sie auf device.properties.paradigm.connectivity.connectivityGraph oder klickendevice.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 die 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 OpenQASM-Sprachfunktionen, die nur in der unterstützt werden. LocalSimulator Einige dieser Funktionen werden möglicherweise nicht auf Simulatoren QPUs oder On-Demand-Simulatoren unterstützt.

Weitere Informationen zu den unterstützten OpenQASM-Funktionen finden Sie auf der Seite Erweiterte Funktionsunterstützung für OpenQASM im Local Simulator.