Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Simulez le bruit avec Open QASM 3.0
Pour simuler le bruit avec OpenQASM3, vous utilisez les instructions pragma pour ajouter des opérateurs de bruit. Par exemple, pour simuler la version bruyante du GHZprogramme fourni précédemment, vous pouvez soumettre le QASM programme Open suivant.
// 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;
Les spécifications de tous les opérateurs de bruit pragma pris en charge sont fournies dans la liste suivante.
#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
Opérateur Kraus
Pour générer un opérateur Kraus, vous pouvez parcourir une liste de matrices en imprimant chaque élément de la matrice sous forme d'expression complexe.
Lorsque vous utilisez les opérateurs Kraus, n'oubliez pas les points suivants :
-
Le nombre de ne qubits doit pas dépasser 2. La définition actuelle dans les schémas
définit cette limite. -
La longueur de la liste d'arguments doit être un multiple de 8. Cela signifie qu'il ne doit être composé que de matrices 2x2.
-
La longueur totale ne dépasse pas 2 matrices 2*num_qubits. Cela signifie 4 matrices pour 1 qubit et 16 pour 2qubits.
-
Toutes les matrices fournies sont totalement positives et préservent les traces (CPTP)
. -
Le produit des opérateurs de Kraus et de leurs conjugués de transposition doit constituer une matrice d'identité.