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)
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
from_backend
classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)
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, legate_noisechamp dans la sortieNoiseModelsera unUniformGateNoiseet on suppose que la probabilité d'erreur est répartie uniformément entre les15bases 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_noisesera uneGateWiseNoiseinstance 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
GateWiseNoiseles modèles,pauli_basesil 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 placeXsuraetZsurb. 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
from_pauli_lindblad_maps
classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)
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
PauliLindbladMapd'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
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 distincteGateWiseNoise: canal de bruit de Pauli-Lindblad par arête d'intrication unique
idling_noise
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
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.
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.
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).