Résolution des problèmes liés à OpenQASM - 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.

Résolution des problèmes liés à OpenQASM

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

Inclure une erreur de déclaration

Braket n'a actuellement pas de fichier de bibliothèque de portail standard à inclure dans les programmes OpenQASM. 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.

Erreur non contiguë qubits

L'utilisation de la méthode non contiguë qubits sur les appareils dont la fonctionnalité est définie requiresContiguousQubitIndices comme telle entraîne une erreur. true

Lorsque vous exécutez des tâches quantiques sur des simulateursIonQ, 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].

Mélange d'erreur physique qubits et d'qubitserreur virtuelle

Le mélange du physique qubits et du 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.

Erreur lors de la demande de types de résultats et de la mesure qubits dans le même programme

La demande de types de résultats qubits mesurés explicitement dans le même programme 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.

Erreur de dépassement des limites classiques et des limites de qubit registre

Un seul registre classique et un seul qubit registre sont autorisés. 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.

Erreur physique manquante dans les boîtes verbatim qubits

Les boîtes verbatim doivent être physiques. qubits Le code suivant génère l'qubitserreur physique manquante.

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

Une seule qubits erreur ne peut pas être indexée

Le single 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, les qubit tableaux individuels peuvent être indexés comme suit :

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

L'erreur physique qubits dans une qubit porte à deux portes n'est pas connectée

Pour utiliser le physiquequbits, vérifiez d'abord que le périphérique utilise le physique qubits en cochant, device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits puis vérifiez le graphique 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'OpenQASM 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 langage OpenQASM 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 fonctionnalités prises en charge par OpenQASM, consultez la page Support des fonctionnalités avancées d'OpenQASM sur le simulateur local.