Simula il rumore con OpenQASM 3.0 - Amazon Braket

Impara le basi dell'informatica quantistica con! AWS Iscriviti all'Amazon Braket Digital Learning Plan e ottieni il tuo badge digitale dopo aver completato una serie di corsi di apprendimento e una valutazione digitale.

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 OpenQASM 3.0

Per simulare il rumore con OpenQASM3, si utilizzano istruzioni pragma per aggiungere operatori di rumore. Ad esempio, per simulare la versione rumorosa del programma GHZ fornita in precedenza, è possibile inviare il seguente programma OpenQASM.

// 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 di rumore pragma 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 non qubits 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 e 16 per 2. qubit qubits

  • Tutte le matrici fornite sono CPTP (Completely Positive Trace Preserving).

  • Il prodotto degli operatori Kraus con i loro coniugati di trasposizione deve sommarsi a una matrice di identità.