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 relativi a OpenQASM
Questa sezione fornisce suggerimenti per la risoluzione dei problemi che potrebbero essere utili in caso di errori utilizzando OpenQASM 3.0.
In questa sezione:
Errore di inclusione dell'istruzione
Braket attualmente non dispone di un file di libreria gate standard da includere nei programmi OpenQASM. 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.
Errore non contiguo qubits
L'utilizzo della funzionalità non contigua qubits su dispositivi requiresContiguousQubitIndices
impostati sulla funzionalità del dispositivo true
genera un errore.
Quando si eseguono attività quantistiche su simulatori eIonQ, 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].
Combinazione di errori fisici qubits con qubits errori virtuali
La combinazione qubits di elementi fisici e virtuali qubits nello stesso programma non è consentita 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 misurazione qubits nello stesso errore di programma
La richiesta di tipi di risultati qubits misurati esplicitamente nello stesso programma genera 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.
I limiti classici e di qubit registro hanno superato l'errore
Sono ammessi solo un qubit registro classico e un registro. 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.
Errore fisico mancante nelle caselle Verbatim qubits
Le scatole Verbatim devono essere fisiche. qubits Il codice seguente genera l'errore fisico qubits mancante.
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
L'errore Single qubits non può essere indicizzato
Il 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, i singoli qubit array possono essere indicizzati come segue:
OPENQASM 3; qubit[1] q; h q[0]; // This is valid
Errore fisico qubits in una connessione a due qubit porte
Per utilizzare dispositivi fisiciqubits, verifica innanzitutto che il dispositivo utilizzi dispositivi fisici qubits controllando device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits
e quindi verifica 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 del simulatore locale
LocalSimulator
Supporta funzionalità avanzate in OpenQASM 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, riceverai 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 linguaggio OpenQASM supportate solo in. LocalSimulator Alcune di queste funzionalità potrebbero non essere supportate nei simulatori QPUs o su richiesta.
Per ulteriori informazioni sulle funzionalità OpenQASM supportate, esplora la pagina Supporto delle funzionalità avanzate per OpenQASM su Local Simulator.