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
In questa sezione:
- Errore di inclusione dell'istruzione
- Non contiguo qubits error
- Miscelazione fisica qubits con virtuale qubits error
- Richiesta dei tipi di risultati e delle misurazioni qubits nello stesso errore del programma
- Classico e qubit limite di registro superato (errore)
- Casella non preceduta da un errore pragmatico letterale
- Errore con porte native mancanti nelle caselle Verbatim
- Le scatole Verbatim sono mancanti qubits error
- Nel pragma letterale manca l'errore «braket»
- Singolo qubits non può essere un errore indicizzato
- Il fisico qubits in due qubit errore di mancata connessione del cancello
- Avviso di supporto al simulatore locale
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
LocalSimulator
Supporta 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.