Skip to main content
IBM Quantum Platform

Modèles de bruit

qiskit_paulice.noise_models

Spécification d'un modèle de bruit pour l'évaluation des tests de Pauli spatio-temporels.

NoiseModel

class NoiseModel(gate_noise=None, readout_noise=None, idling_noise=None)

GitHub

Bases : object

Modèle de bruit utilisé pour déterminer les emplacements optimaux des circuits dans le cadre des contrôles de Pauli spatio-temporels.

Paramètres

  • gate_noise (GateNoise | None)
  • readout_noise (float | None)
  • idling_noise (float | None)

from_backend

classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)

GitHub

Instancier un NoiseModel à partir des données d'étalonnage du backend.

Les clés « edge » du dictionnaire obtenu GateWiseNoise utilisent des indices de qubits virtuels (positions dans layout). layoutSi la disposition du circuit d'entrée assure une correspondance cohérente entre les indices virtuels et physiques, les touches servent également d'indices physiques.

None``idling_noise est toujours None issu de cette méthode; si backend l'étalonnage de la lecture fait défaut, readout_noise il sera également.

Paramètres

  • backend (BackendV2) – Un backend contenant les probabilités d'erreur des portes à deux qubits pour chaque arête de la carte de couplage, ainsi que les informations relatives aux erreurs de lecture pour chaque qubit du schéma.
  • layout (Sequence[int]) – Indices des qubits physiques au niveau du backend à inclure dans le modèle de bruit. Cet ordre définit l'indexation des qubits virtuels (le qubit virtuel 0 correspond à layout[0], etc.).
  • uniform_gate_noise (bool) – Si True, le gate_noise champ dans la sortie NoiseModel sera un UniformGateNoise et on suppose que la probabilité d'erreur est répartie uniformément entre les 15 bases de Pauli non identitaires afin de former un canal de dépolarisation uniforme qui affectera de manière égale toutes les portes d'intrication. FalseDans ce cas, gate_noise sera une GateWiseNoise instance dans laquelle chaque arête sera associée à un canal de bruit personnalisé, basé sur les données d'étalonnage du backend.
  • pauli_bases (Sequence[str] | None) – Pour GateWiseNoise les modèles, pauli_bases il s’agit des bases sur lesquelles sera répartie la probabilité d’erreur communiquée par le backend. Chaque base est une chaîne de Pauli de deux caractères associée, de gauche à droite, au tuple d'arête; ainsi "XZ" , sur l'arête (a, b) , on place X sur a et Z sur b. Par défaut, le système utilise la base de Pauli complète 2Q, à l'exception de "II". UniformNoiseEn effet, on suppose que la base est complète, et cet argument est donc ignoré.

Retours

Une NoiseModel instance contenant le bruit de grille et le bruit de lecture, dérivée des données d'étalonnage du backend.

Augmentations

ValueError – Le backend ne dispose pas des données d'étalonnage ou la configuration contient des indices de qubits non valides.

Type de retour

NoiseModel

from_pauli_lindblad_maps

classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)

GitHub

Créer une « NoiseModel » à partir des applications de Pauli-Lindblad.

Cette méthode construit un NoiseModel à partir PauliLindbladMap d'instances représentant les canaux de bruit affectant les portes et, éventuellement, les mesures. Le bruit de la porte est spécifié à l'aide de layer_noise l'argument. On suppose que chaque PauliLindbladMap instance agit sur une couche unique de portes d'intrication. Le bruit de lecture est caractérisé par un paramètre unique PauliLindbladMap comprenant les générateurs de Pauli-X à un seul qubit et leurs taux associés.

Paramètres

  • layer_noise (Sequence[PauliLindbladMap]) – Une séquence PauliLindbladMap d'objets, où chaque carte représente le canal de bruit d'une couche d'intrication unique du circuit.
  • readout_noise (PauliLindbladMap | None) – En option PauliLindbladMap : intégration de générateurs de particules X de Pauli sur chaque qubit pour pallier les erreurs de lecture.

Retours

Une NoiseModel instance reflétant le ou les modèles de bruit définis dans les données d'entrée PauliLindbladMap``s. ``idling_noise sera toujours utilisée None pour cette méthode.

Augmentations

  • ValueError – Le poids du générateur d'erreurs est supérieur à 2.
  • ValueError – Le générateur d'erreurs de lecture n'est pas Pauli-X.

Type de retour

NoiseModel

gate_noise

Type : GateNoise | None

Valeur par défaut : None

Erreurs survenant lors des opérations sur les portes à 2 qubits. Peut être :

  • UniformNoise: Probabilité d'erreur identique pour toutes les portes. La probabilité d'erreur est répartie de manière égale entre chacune des bases de Pauli représentées dans le canal.
  • LayeredNoise: canal de bruit de Pauli-Lindblad par couche d'intrication distincte
  • GateWiseNoise: canal de bruit de Pauli-Lindblad par arête d'intrication unique

idling_noise

Type : float | None

Valeur par défaut : None

Taux de désintégration des qubits pendant la période d'inactivité. La probabilité d'erreur totale est donnée par 1 - exp(-t / idling_noise).

readout_noise

Type : float | None

Valeur par défaut : None

Probabilité d'inversion de bit pendant la mesure.

UniformGateNoise

Valeur par défaut : <class 'float'>

Une probabilité de dépolarisation appliquée de manière uniforme à toutes les portes à 2 qubits.

Cette probabilité sera répartie de manière égale entre les 15 états de Pauli non identitaires de la base de Pauli à 2 qubits afin de former le canal de dépolarisation. Ce canal de bruit sera appliqué après chaque porte d'intrication.

LayeredGateNoise

Modèle de bruit en couches associant des couches d'intrication uniques à des générateurs d'erreurs de Pauli.

Remarque

On suppose que l'erreur de Pauli-Lindblad associée à chaque couche d'intrication est définie avant les portes de cette couche.

Les clés sont des tuples composés de paires d'indices de qubits (arêtes) définissant une couche. Les valeurs sont des listes de (pauli, rate) tuples où pauli est une chaîne de Pauli ou une chaîne de Pauli définie sur tous les qubits et rate est le taux d'erreur associé.

alias de dict[tuple[tuple[int, int], …], list[tuple[Pauli | str, float]]]

GateWiseNoise

Modèle de bruit par porte associant des paires de qubits à un canal de bruit de Pauli.

Les clés sont des tuples composés de paires d'indices de qubits représentant des arêtes. Les valeurs sont des listes de tuples (pauli, taux), où pauli est une chaîne de Pauli à deux caractères et rate est le taux d'erreur associé. (pauli_str, indices)PauliLindbladMapLa chaîne est associée, de gauche à droite, au tuple d'arête — conformément à la forme « clairsemée » de : pour chaque arête (a, b), "XZ" place X sur a et Z sur b.

alias de dict[tuple[int, int], list[tuple[str, float]]]

GateNoise

Valeur par défaut : float | dict[tuple[tuple[int, int], ...], list[tuple[qiskit.quantum_info.operators.symplectic.pauli.Pauli | str, float]]] | dict[tuple[int, int], list[tuple[str, float]]]

Le bruit de porte peut être uniforme (float), par couches (dict) ou par porte (dict).

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.