Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Esta sección proporciona consejos de solución de problemas que pueden resultar útiles cuando se producen errores al utilizar OpenQASM 3.0.
En esta sección:
Incluya un error en la sentencia
Actualmente, Braket no tiene un archivo de biblioteca de puertas estándar para incluirlo en los programas de OpenQASM. Por ejemplo, el siguiente ejemplo genera un error en el analizador.
OPENQASM 3;
include "standardlib.inc";
Este código genera el mensaje de error: No terminal matches '"' in the current parser context, at line 2 col 17.
No contiguo qubits error
Uso de sistemas no contiguos qubits en los dispositivos que requiresContiguousQubitIndices
se configuran según true
la capacidad del dispositivo, se produce un error.
Al ejecutar tareas cuánticas en simuladores y IonQ, el siguiente programa desencadena el error.
OPENQASM 3;
qubit[4] q;
h q[0];
cnot q[0], q[2];
cnot q[0], q[3];
Este código genera el mensaje de error: Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].
Mezcla física qubits con virtual qubits error
Mezcla física qubits con virtual qubits en el mismo programa no está permitido y se produce un error. El código siguiente genera el error.
OPENQASM 3;
qubit[2] q;
cnot q[0], $1;
Este código genera el mensaje de error: [line 4] mixes physical qubits and qubits registers.
Solicitud de tipos de resultados y mediciones qubits en el mismo error del programa
Solicitar tipos de resultados y eso qubits si se miden de forma explícita en el mismo programa, se produce un error. El código siguiente genera el error.
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])
Este código genera el mensaje de error: Qubits should not be explicitly measured when result types are requested.
Clásico y qubit error en los límites de registro excedidos
Solo un registro clásico y uno qubit están permitidos los registros. El código siguiente genera el error.
OPENQASM 3;
qubit[2] q0;
qubit[2] q1;
Este código genera el mensaje de error: [line 4] cannot declare a qubit register. Only 1 qubit register is supported.
El recuadro no va precedido de un error pragmático literal
Todas las casillas deben ir precedidas de un pragma literal. El código siguiente genera el error.
box{
rx(0.5) $0;
}
Este código genera el mensaje de error: In verbatim boxes, native gates are required. x is not a device native gate.
Error en los cuadros literales sin puertas nativas
Los buzones literales deben tener puertas nativas y físicas qubits. El siguiente código genera el error de puertas nativas.
#pragma braket verbatim
box{
x $0;
}
Este código genera el mensaje de error: In verbatim boxes, native gates are required. x is not a device native gate.
A las cajas textuales les falta un elemento físico qubits error
Las buzones literales deben ser físicas qubits. El siguiente código genera el elemento físico que falta qubits .
qubit[2] q;
#pragma braket verbatim
box{
rx(0.1) q[0];
}
Este código genera el mensaje de error: Physical qubits are required in verbatim box.
Falta el error «braket» del pragma literal
Debe incluir «corchete» en el pragma literal. El código siguiente genera el error.
#pragma braket verbatim // Correct
#pragma verbatim // wrong
Este código genera el mensaje de error: You must include “braket” in the verbatim pragma
Única qubits no se puede indexar (error)
Única qubits no se puede indexar. El código siguiente genera el error.
OPENQASM 3;
qubit q;
h q[0];
Este código genera el error: [line 4] single qubit cannot be indexed.
Sin embargo, solo qubit las matrices se pueden indexar de la siguiente manera:
OPENQASM 3;
qubit[1] q;
h q[0]; // This is valid
El físico qubits en un par qubit error de puerta no está conectada
Para usar la física qubits, primero confirme que el dispositivo utiliza un dispositivo físico qubits comprobando device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits
y, a continuación, compruebe el gráfico de conectividad marcando device.properties.paradigm.connectivity.connectivityGraph
odevice.properties.paradigm.connectivity.fullyConnected
.
OPENQASM 3;
cnot $0, $14;
Este código genera el mensaje de error: [line 3] has disconnected qubits 0 and 14
Advertencia de soporte para simuladores locales
LocalSimulator
Admite funciones avanzadas de OpenQASM que pueden no estar disponibles en los simuladores QPUs o bajo demanda. Si su programa contiene funciones de lenguaje específicas únicamente para elLocalSimulator
, como se ve en el siguiente ejemplo, recibirá una advertencia.
qasm_string = """
qubit[2] q;
h q[0];
ctrl @ x q[0], q[1];
"""
qasm_program = Program(source=qasm_string)
Este código genera la siguiente advertencia: `Este programa utiliza funciones del lenguaje OpenQASM que solo son compatibles con. LocalSimulator Es posible que algunas de estas funciones no sean compatibles con los simuladores o bajo demanda. QPUs
Para obtener más información sobre las funciones de OpenQASM compatibles, consulte la página Compatibilidad avanzada con las funciones de OpenQASM en el simulador local.