Solución de problemas de OpenQASM - Amazon Braket

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.

Solución de problemas de OpenQASM

Esta sección proporciona consejos de solución de problemas que pueden resultar útiles cuando se producen errores al utilizar OpenQASM 3.0.

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.

Error no contiguo qubits

El uso de dispositivos no contiguos qubits en dispositivos que requiresContiguousQubitIndices estén configurados según la capacidad del dispositivo true provocará un error.

Al ejecutar tareas cuánticas en simuladoresIonQ, 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].

Mezclando un error físico qubits con qubits un error virtual

No se permite mezclar lo físico qubits con lo virtual qubits en el mismo programa 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.

Al solicitar los tipos de resultados y medirlos qubits en el mismo programa, se produjo un error

Si se solicitan tipos de resultados que qubits se midan 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.

Error: se superaron los límites clásicos y de qubit registro

Solo se permite un qubit registro clásico y un registro. 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.

Falta un error físico en las cajas textuales qubits

Las buzones literales deben ser físicas. qubits El siguiente código genera el error físico qubits que falta.

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

Un solo qubits error no se puede indexar

El elemento individual 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, las qubit matrices individuales se pueden indexar de la siguiente manera:

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

El error físico qubits en una qubit puerta con dos puertas no está conectada

Para utilizar la conexión físicaqubits, compruebe primero que el dispositivo utilice la conexión física qubits 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

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