Dépannage ouvert QASM - Amazon Braket

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Dépannage ouvert QASM

Cette section fournit des conseils de dépannage qui peuvent être utiles en cas d'erreur lors de l'utilisation d'Open QASM 3.0.

Inclure une erreur de déclaration

Braket ne dispose actuellement pas de fichier de bibliothèque de portail standard à inclure dans les QASM programmes ouverts. Par exemple, l'exemple suivant génère une erreur d'analyseur.

OPENQASM 3; include "standardlib.inc";

Ce code génère le message d'erreur : No terminal matches '"' in the current parser context, at line 2 col 17.

Non contigu qubits error

Utilisation de la méthode non contiguë qubits sur les appareils dont requiresContiguousQubitIndices la fonction de true fonctionnalité est définie sur l'appareil, une erreur s'affiche.

Lors de l'exécution de tâches quantiques sur des simulateurs et IonQ, le programme suivant déclenche l'erreur.

OPENQASM 3; qubit[4] q; h q[0]; cnot q[0], q[2]; cnot q[0], q[3];

Ce code génère le message d'erreur : Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].

Mixage physique qubits avec virtuel qubits error

Mixage physique qubits avec virtuel qubits dans le même programme n'est pas autorisé et entraîne une erreur. Le code suivant génère l'erreur.

OPENQASM 3; qubit[2] q; cnot q[0], $1;

Ce code génère le message d'erreur : [line 4] mixes physical qubits and qubits registers.

Demande de types de résultats et mesures qubits dans la même erreur de programme

Demander des types de résultats et cela qubits sont mesurés explicitement dans le même programme, ce qui entraîne une erreur. Le code suivant génère l'erreur.

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])

Ce code génère le message d'erreur : Qubits should not be explicitly measured when result types are requested.

Classique et qubit erreur de dépassement des limites du registre

Un seul registre classique et un qubit les inscriptions sont autorisées. Le code suivant génère l'erreur.

OPENQASM 3; qubit[2] q0; qubit[2] q1;

Ce code génère le message d'erreur : [line 4] cannot declare a qubit register. Only 1 qubit register is supported.

Boîte non précédée d'une erreur de pragma textuelle

Toutes les cases doivent être précédées d'un verbatim pragma. Le code suivant génère l'erreur.

box{ rx(0.5) $0; }

Ce code génère le message d'erreur : In verbatim boxes, native gates are required. x is not a device native gate.

Erreur concernant les portes natives manquantes dans les boîtes Verbatim

Les boîtes verbatim doivent avoir des portes natives et physiques qubits. Le code suivant génère l'erreur native gates.

#pragma braket verbatim box{ x $0; }

Ce code génère le message d'erreur : In verbatim boxes, native gates are required. x is not a device native gate.

Boîtes verbatim manquantes qubits error

Les boîtes à verbatim doivent avoir un qubits. Le code suivant génère le physique manquant qubits erreur.

qubit[2] q; #pragma braket verbatim box{ rx(0.1) q[0]; }

Ce code génère le message d'erreur : Physical qubits are required in verbatim box.

Il manque une erreur « braket » dans le pragma textuel

Vous devez inclure le mot « braket » dans le verbatim pragma. Le code suivant génère l'erreur.

#pragma braket verbatim // Correct #pragma verbatim // wrong

Ce code génère le message d'erreur : You must include “braket” in the verbatim pragma

Unique qubits erreur ne peut pas être indexée

Unique qubits ne peut pas être indexé. Le code suivant génère l'erreur.

OPENQASM 3; qubit q; h q[0];

Ce code génère l'erreur suivante : [line 4] single qubit cannot be indexed.

Cependant, célibataire qubit les tableaux peuvent être indexés comme suit :

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

Le physique qubits en deux qubit la porte n'est pas connectée (erreur)

Pour utiliser le physique qubits, vérifiez d'abord que l'appareil utilise un support physique qubits en cochant device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits puis en vérifiant le graphe de connectivité en cochant device.properties.paradigm.connectivity.connectivityGraph oudevice.properties.paradigm.connectivity.fullyConnected.

OPENQASM 3; cnot $0, $14;

Ce code génère le message d'erreur : [line 3] has disconnected qubits 0 and 14

Avertissement de support du simulateur local

Il LocalSimulator prend en charge les fonctionnalités avancées d'Open QASM qui peuvent ne pas être disponibles sur les simulateurs QPUs ou à la demande. Si votre programme contient des fonctionnalités linguistiques spécifiques uniquement àLocalSimulator, comme le montre l'exemple suivant, vous recevrez un avertissement.

qasm_string = """ qubit[2] q; h q[0]; ctrl @ x q[0], q[1]; """ qasm_program = Program(source=qasm_string)

Ce code génère l'avertissement suivant : « Ce programme utilise les fonctionnalités du QASM langage ouvert uniquement prises en charge dans le LocalSimulator. Certaines de ces fonctionnalités peuvent ne pas être prises en charge sur les simulateurs QPUs ou à la demande.

Pour plus d'informations sur les QASM fonctionnalités Open prises en charge, cliquez ici.