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à.
Simula il rumore con Open 3.0 QASM
Per simulare il rumore con OpenQASM3, utilizzate le istruzioni pragma per aggiungere operatori di rumore. Ad esempio, per simulare la versione rumorosa del GHZprogramma fornita in precedenza, è possibile inviare il seguente programma Open. QASM
// ghz.qasm // Prepare a GHZ state OPENQASM 3; qubit[3] q; bit[3] c; h q[0]; #pragma braket noise depolarizing(0.75) q[0] cnot q[0], q[1]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] cnot q[1], q[2]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] c = measure q;
Le specifiche per tutti gli operatori Pragma Noise supportati sono fornite nell'elenco seguente.
#pragma braket noise bit_flip(<float in [0,1/2]>) <qubit> #pragma braket noise phase_flip(<float in [0,1/2]>) <qubit> #pragma braket noise pauli_channel(<float>, <float>, <float>) <qubit> #pragma braket noise depolarizing(<float in [0,3/4]>) <qubit> #pragma braket noise two_qubit_depolarizing(<float in [0,15/16]>) <qubit>, <qubit> #pragma braket noise two_qubit_dephasing(<float in [0,3/4]>) <qubit>, <qubit> #pragma braket noise amplitude_damping(<float in [0,1]>) <qubit> #pragma braket noise generalized_amplitude_damping(<float in [0,1]> <float in [0,1]>) <qubit> #pragma braket noise phase_damping(<float in [0,1]>) <qubit> #pragma braket noise kraus([[<complex m0_00>, ], ...], [[<complex m1_00>, ], ...], ...) <qubit>[, <qubit>] // maximum of 2 qubits and maximum of 4 matrices for 1 qubit, 16 for 2
Operatore Kraus
Per generare un operatore Kraus, puoi scorrere un elenco di matrici, stampando ogni elemento della matrice come espressione complessa.
Quando usi gli operatori Kraus, ricorda quanto segue:
-
Il numero di qubits non deve superare 2. La definizione corrente negli schemi
stabilisce questo limite. -
La lunghezza dell'elenco degli argomenti deve essere un multiplo di 8. Ciò significa che deve essere composto solo da matrici 2x2.
-
La lunghezza totale non supera 2 matrici 2*num_qubits. Ciò significa 4 matrici per 1 qubit e 16 per 2 qubits.
-
Tutte le matrici fornite sono completamente a conservazione positiva delle tracce (). CPTP
-
Il prodotto degli operatori Kraus con i loro coniugati di trasposizione deve sommarsi a una matrice di identità.