Skip to main content
IBM Quantum Platform

qiskit_noise_learning.sequences.FidelityIndex

class qiskit_noise_learning.sequences.FidelityIndex(gate_name: str, pauli: QubitSparsePauli, in_z_idxs: frozenset[int], out_z_idxs: frozenset[int], input_pauli: QubitSparsePauli, output_pauli: QubitSparsePauli, sign_flip: bool, meas_idxs: frozenset[int])

GitHub

Bases : object

Données d'index relatives à la fidélité dans un ensemble de portes à réinitialisation de type Pauli-MCM.

Soit KK le nombre de qubits; [K]={0,...,K−1}[K] = \{0, ..., K-1\} et M⊂[K]M\subset [K] désignent les qubits mesurés; et R⊂[K]R \subset [K] les qubits réinitialisés pour la porte. Pour une porte donnée, chaque fidélité est définie par :

  • Un article de Pauli sur les qubits non mesurés et non réinitialisés Q∈P[K]∖(M∪R)Q \in P^{[K]\setminus (M \cup R)},
  • Un opérateur de type « ZZ » ZxZ^x appliqué aux qubits mesurés, x∈Z2Mx \in Z_2^M, et
  • Un opérateur de type « ZZ » ZyZ^y appliqué aux qubits mesurés et réinitialisés, y∈Z2M∪Ry \in Z_2^{M \cup R}.

Cette liste constitue les « données d'index » d'une fidélité généralisée pour une porte donnée, en ce sens qu'il existe une bijection entre toutes les fidélités généralisées et l'ensemble ci-dessus de tous les objets satisfaisant à la description ci-dessus. Voir l'équation (3) du formalisme mathématique pour la décomposition dans laquelle ces termes apparaissent.

Les exposants xx et yy sont stockés sous forme d'ensembles d'indices de qubits sur lesquels ils sont non nuls, à savoir in_z_idxs et out_z_idxs – ce qui revient à dire que ce sont les qubits sur lesquels ZxZ^x et ZyZ^y agissent de manière non triviale.

Le constructeur crée FidelityIndex.from_gate() un FidelityIndex à partir d'un ModelGate et des données d'index unique ci-dessus. Il est FidelityIndex.from_transition() également possible d'utiliser pour construire une instance à partir de la transition de Pauli impliquée par les données d'index. Le FidelityIndex.__init__() est considéré comme un constructeur « de bas niveau » qui reprend toutes les propriétés enregistrées sans validation.

Paramètres

  • gate_name – Le nom de la porte.
  • pauli – Un opérateur de Pauli prenant en charge les qubits non mesurés et non réinitialisés. Notez que pauli.num_qubits détermine la taille des opérateurs renvoyés par self.transition.
  • in_z_idxs – Les indices des qubits pour lesquels la valeur de « xx » est non nulle.
  • out_z_idxs – Les indices des qubits pour lesquels la valeur de « yy » est différente de zéro.
  • input_pauli – La valeur de Pauli à l'entrée de la transition.
  • output_pauli – Le nombre de Pauli de sortie de la transition.
  • sign_flip – Indique si la transition comporte un changement de signe.
  • meas_idxs – Indices des qubits de mesure pour la porte.

__init__

__init__(gate_name: str, pauli: QubitSparsePauli, in_z_idxs: frozenset[int], out_z_idxs: frozenset[int], input_pauli: QubitSparsePauli, output_pauli: QubitSparsePauli, sign_flip: bool, meas_idxs: frozenset[int])


Méthodes

Chronique « 1 »
Chronique « 2 »
__init__(nom_porte, pauli, indices_in_z,...)
from_gate(porte, pauli[, in_z_idxs, out_z_idxs])Construire un indice de fidélité à partir des données d'une porte et d'un index unique.
from_transition(porte, entrée_pauli, sortie_pauli)Construire un indice de fidélité à partir d'une transition de Pauli sur les registres quantiques.
is_valid_for_gate(porte, pauli[, in_z_idxs, ...])Vérifier si les données d'indice fournies constituent un indice de fidélité valide pour la porte.

Attributs

Chronique « 1 »
Chronique « 2 »
gate_nameLe nom de la porte.
in_z_idxsLes qubits mesurés transportant une « ZZ » à l'entrée de l'instrument.
meas_idxsLes indices des qubits physiques mesurés par la porte.
observable_idxsIndices des qubits de l'observable « ZZ » associée, par ordre croissant.
out_z_idxsLes qubits mesurés et réinitialisés transmettent une « ZZ » sur la sortie de l'instrument.
pauliL'opérateur de Pauli sur la partie Clifford de la porte modèle.
sign_flipLa transition associée à cette fidélité s'accompagne-t-elle d'un changement de signe?
transitionLa transition de l'opérateur de Pauli sans phase associée à cet indice de fidélité.

from_gate

classmethod from_gate(gate: ModelGate, pauli: QubitSparsePauli, in_z_idxs: frozenset[int] = frozenset({}), out_z_idxs: frozenset[int] = frozenset({})) → Self

Construire un indice de fidélité à partir des données d'une porte et d'un index unique.

Paramètres

  • portail – Le portail modèle.
  • pauli – Un opérateur de Pauli prenant en charge les qubits non mesurés et non réinitialisés.
  • in_z_idxs – Sous-ensemble des indices des qubits de mesure portant une « ZZ » sur l'entrée de l'instrument.
  • out_z_idxs – Sous-ensemble de l'union des indices des qubits de mesure et de réinitialisation qui déterminent l' ZZ e de la sortie de l'instrument.

Augmentations

ValueError : si les données fournies ne correspondent pas à la porte.

is_valid_for_gate

classmethod is_valid_for_gate(gate: ModelGate, pauli: QubitSparsePauli, in_z_idxs: frozenset[int] = frozenset({}), out_z_idxs: frozenset[int] = frozenset({})) → bool

Vérifier si les données d'indice fournies constituent un indice de fidélité valide pour la porte.

Cette opération effectue les mêmes contrôles de cohérence (sans effet secondaire) que from_gate(), sans créer l'index ni calculer sa transition.

Paramètres

  • portail – Le portail modèle.
  • pauli – Un opérateur de Pauli prenant en charge les qubits non mesurés et non réinitialisés.
  • in_z_idxs – Sous-ensemble des indices des qubits de mesure portant une « ZZ » sur l'entrée de l'instrument.
  • out_z_idxs – Sous-ensemble de l'union des indices des qubits de mesure et de réinitialisation qui déterminent l' ZZ e de la sortie de l'instrument.

from_transition

classmethod from_transition(gate: ModelGate, in_pauli: QubitSparsePauli, out_pauli: QubitSparsePauli) → Self

Construire un indice de fidélité à partir d'une transition de Pauli sur les registres quantiques.

Ce constructeur déduit les ensembles d'indices de Pauli et d' ZZ s d'un FidelityIndex à partir de la transition de Pauli donnée.

Paramètres

  • portail – Le portail modèle.
  • in_pauli – L'entrée Pauli dans le registre quantique.
  • out_pauli – La sortie Pauli sur le registre quantique.

Augmentations

ValueError : si la paire d'opérateurs de Pauli n'implique pas une valeur valide FidelityIndex.

gate_name

Type : str

Le nom de la porte.

pauli

Type : QubitSparsePauli

L'opérateur de Pauli sur la partie Clifford de la porte modèle.

in_z_idxs

Type : frozenset[int]

Les qubits mesurés transportant une « ZZ » à l'entrée de l'instrument.

out_z_idxs

Type : frozenset[int]

Les qubits mesurés et réinitialisés transmettent une « ZZ » sur la sortie de l'instrument.

meas_idxs

Type : frozenset[int]

Les indices des qubits physiques mesurés par la porte.

sign_flip

Type : bool

La transition associée à cette fidélité s'accompagne-t-elle d'un changement de signe?

transition

Type : tuple[QubitSparsePauli, QubitSparsePauli]

La transition de l'opérateur de Pauli sans phase associée à cet indice de fidélité.

observable_idxs

Type : list[int]

Indices des qubits de l'observable « ZZ » associée, par ordre croissant.

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