Risoluzione dei problemi Open QASM - Amazon Braket

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi Open QASM

Questa sezione fornisce suggerimenti per la risoluzione dei problemi che potrebbero essere utili in caso di errori utilizzando Open 3.0. QASM

Errore di inclusione dell'istruzione

Braket attualmente non dispone di un file di libreria gate standard da includere nei programmi Open. QASM Ad esempio, l'esempio seguente genera un errore del parser.

OPENQASM 3; include "standardlib.inc";

Questo codice genera il messaggio di errore: No terminal matches '"' in the current parser context, at line 2 col 17.

Non contiguo qubits error

Utilizzo di elementi non contigui qubits sui dispositivi che sono requiresContiguousQubitIndices impostati sulla funzionalità true del dispositivo generano un errore.

Quando si eseguono attività quantistiche su simulatori e IonQ, il seguente programma attiva l'errore.

OPENQASM 3; qubit[4] q; h q[0]; cnot q[0], q[2]; cnot q[0], q[3];

Questo codice genera il messaggio di errore: Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].

Miscelazione fisica qubits con virtuale qubits error

Miscelazione fisica qubits con virtuale qubits nello stesso programma non è consentito e genera un errore. Il codice seguente genera l'errore.

OPENQASM 3; qubit[2] q; cnot q[0], $1;

Questo codice genera il messaggio di errore: [line 4] mixes physical qubits and qubits registers.

Richiesta dei tipi di risultati e delle misurazioni qubits nello stesso errore del programma

Richiedere tipi di risultati e altro qubits vengono misurati in modo esplicito nello stesso programma generano un errore. Il codice seguente genera l'errore.

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])

Questo codice genera il messaggio di errore: Qubits should not be explicitly measured when result types are requested.

Classico e qubit limite di registro superato (errore)

Solo un registro classico e uno qubit sono consentiti i registri. Il codice seguente genera l'errore.

OPENQASM 3; qubit[2] q0; qubit[2] q1;

Questo codice genera il messaggio di errore: [line 4] cannot declare a qubit register. Only 1 qubit register is supported.

Casella non preceduta da un errore pragmatico letterale

Tutte le caselle devono essere precedute da un pragma letterale. Il codice seguente genera l'errore.

box{ rx(0.5) $0; }

Questo codice genera il messaggio di errore: In verbatim boxes, native gates are required. x is not a device native gate.

Errore con porte native mancanti nelle caselle Verbatim

Le scatole Verbatim devono avere porte native e fisiche qubits. Il codice seguente genera l'errore native gates.

#pragma braket verbatim box{ x $0; }

Questo codice genera il messaggio di errore: In verbatim boxes, native gates are required. x is not a device native gate.

Le scatole Verbatim sono mancanti qubits error

Le scatole Verbatim devono essere fisiche qubits. Il codice seguente genera il file fisico mancante qubits errore.

qubit[2] q; #pragma braket verbatim box{ rx(0.1) q[0]; }

Questo codice genera il messaggio di errore: Physical qubits are required in verbatim box.

Nel pragma letterale manca l'errore «braket»

Devi includere «parentesi» nel pragma letterale. Il codice seguente genera l'errore.

#pragma braket verbatim // Correct #pragma verbatim // wrong

Questo codice genera il messaggio di errore: You must include “braket” in the verbatim pragma

Singolo qubits non può essere un errore indicizzato

Singolo qubits non può essere indicizzato. Il codice seguente genera l'errore.

OPENQASM 3; qubit q; h q[0];

Questo codice genera l'errore: [line 4] single qubit cannot be indexed.

Tuttavia, singolo qubit gli array possono essere indicizzati come segue:

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

Il fisico qubits in due qubit errore di mancata connessione del cancello

Da usare fisico qubits, verifica innanzitutto che il dispositivo utilizzi dispositivi fisici qubits controllando device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits e quindi verificando il grafico di connettività selezionando device.properties.paradigm.connectivity.connectivityGraph odevice.properties.paradigm.connectivity.fullyConnected.

OPENQASM 3; cnot $0, $14;

Questo codice genera il messaggio di errore: [line 3] has disconnected qubits 0 and 14

Avviso di supporto al simulatore locale

LocalSimulatorSupporta funzionalità avanzate in Open QASM che potrebbero non essere disponibili nei simulatori QPUs o su richiesta. Se il programma contiene funzionalità linguistiche specifiche solo perLocalSimulator, come illustrato nell'esempio seguente, verrà visualizzato un avviso.

qasm_string = """ qubit[2] q; h q[0]; ctrl @ x q[0], q[1]; """ qasm_program = Program(source=qasm_string)

Questo codice genera l'avviso: `Questo programma utilizza le funzionalità del QASM linguaggio Open supportate solo in. LocalSimulator Alcune di queste funzionalità potrebbero non essere supportate nei simulatori QPUs o su richiesta.

Per ulteriori informazioni sulle QASM funzionalità Open supportate, fai clic qui.