Solución de problemas: Open QASM - 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: Open QASM

En esta sección se proporcionan consejos de solución de problemas que pueden resultar útiles cuando se producen errores al utilizar Open 3.0. QASM

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

LocalSimulatorAdmite funciones avanzadas de Open QASM 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 de QASM lenguaje abierto que solo son compatibles con. LocalSimulator Es posible que algunas de estas funciones no sean compatibles con los simuladores QPUs o bajo demanda.

Para obtener más información sobre las QASM funciones de Open compatibles, haga clic aquí.