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.
Dans cette section :
Mélange d'erreur physique qubits et d'qubitserreur virtuelle
Erreur lors de la demande de types de résultats et de la mesure qubits dans le même programme
Erreur de dépassement des limites classiques et des limites de qubit registre
Erreur concernant les portes natives manquantes dans les boîtes Verbatim
L'erreur physique qubits dans une qubit porte à deux portes n'est pas connectée
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.