Aller au contenu principal

Discrétisation des erreurs

Jusqu'à présent, nous avons considéré les erreurs XX et ZZ dans le contexte du code de Shor à 9 qubits, et dans cette section nous allons considérer des erreurs arbitraires. Ce que nous verrons, c'est que pour gérer de telles erreurs, nous n'avons rien à faire de différent de ce dont nous avons déjà discuté ; la capacité à corriger les erreurs XX, les erreurs ZZ, ou les deux, implique la capacité à corriger des erreurs arbitraires. Ce phénomène est parfois appelé la discrétisation des erreurs.

Erreurs unitaires sur un qubit

Commençons par les erreurs unitaires sur un seul qubit. Par exemple, une telle erreur pourrait correspondre à une très petite rotation de la sphère de Bloch, représentant peut-être une erreur subie par une porte imparfaite. Ou elle pourrait être n'importe quelle autre opération unitaire sur un qubit, pas nécessairement proche de l'identité.

Il pourrait sembler difficile de corriger de telles erreurs. Après tout, il existe une infinité d'erreurs possibles de ce type, et il est inconcevable qu'on puisse identifier chaque erreur exactement et ensuite l'annuler. Cependant, tant qu'on peut corriger un retournement de bit, un retournement de phase, ou les deux, on réussira à corriger une erreur unitaire arbitraire sur un seul qubit en utilisant les procédures décrites précédemment dans la leçon.

Pour comprendre pourquoi c'est le cas, reconnaissons d'abord qu'on peut exprimer une matrice unitaire 2×22 \times 2 arbitraire U,U, représentant une erreur sur un seul qubit, comme une combinaison linéaire des quatre matrices de Pauli (y compris la matrice identité).

U=αI+βX+γY+δZU = \alpha \mathbb{I} + \beta X + \gamma Y + \delta Z

Comme nous le verrons, lorsque les circuits de détection d'erreurs sont exécutés, les mesures qui nous donnent les bits du syndrome effondrent effectivement de manière probabiliste l'état de l'encodage vers un état où une erreur (ou l'absence d'erreur) représentée par l'une des quatre matrices de Pauli s'est produite. (Il découle du fait que UU est unitaire que les nombres α,\alpha, β,\beta, γ\gamma et δ\delta doivent satisfaire α2+β2+γ2+δ2=1,\vert\alpha\vert^2 + \vert\beta\vert^2 + \vert\gamma\vert^2 + \vert\delta\vert^2 = 1, et en effet, les valeurs α2,\vert\alpha\vert^2, β2,\vert\beta\vert^2, γ2\vert\gamma\vert^2 et δ2\vert\delta\vert^2 sont les probabilités avec lesquelles l'état encodé s'effondre vers un état pour lequel l'erreur de Pauli correspondante s'est produite.)

Pour expliquer le fonctionnement de ceci plus en détail, il sera commode d'utiliser des indices pour indiquer sur quel qubit une opération unitaire qubit donnée agit. Par exemple, en utilisant la convention de numérotation des qubits de Qiskit (Q8,Q7,,Q0)(\mathsf{Q}_8,\mathsf{Q}_7,\ldots,\mathsf{Q}_0) pour numéroter les 9 qubits utilisés pour le code de Shor, nous avons ces expressions pour diverses opérations unitaires sur des qubits individuels, où dans chaque cas on tensorise la matrice unitaire avec la matrice identité sur chaque autre qubit.

X0=IIIIIIIIXZ4=IIIIZIIIIU7=IUIIIIIII\begin{aligned} X_0 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes X \\[1.5mm] Z_4 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \\[1.5mm] U_7 & = \mathbb{I} \otimes U \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \end{aligned}

Ainsi, en particulier, pour une opération unitaire qubit donnée U,U, on peut spécifier l'action de UU appliquée au qubit kk par la formule suivante, qui est similaire à la précédente sauf que chaque matrice représente une opération appliquée au qubit k.k.

Uk=αIk+βXk+γYk+δZkU_k = \alpha \mathbb{I}_k + \beta X_k + \gamma Y_k + \delta Z_k

Supposons maintenant que ψ\vert\psi\rangle soit l'encodage à 9 qubits d'un état qubit. Si l'erreur UU se produit sur le qubit kk, on obtient l'état Ukψ,U_k \vert\psi\rangle, qui peut s'exprimer comme une combinaison linéaire d'opérations de Pauli agissant sur ψ\vert\psi\rangle comme suit.

Ukψ=αψ+βXkψ+γYkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + \gamma Y_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

À ce stade, faisons la substitution Y=iXZ.Y = iXZ.

Ukψ=αψ+βXkψ+iγXkZkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + i \gamma X_kZ_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

Considérons maintenant les étapes de détection et de correction d'erreurs décrites précédemment. On peut penser aux résultats de mesure pour les trois vérifications de parité du code interne ainsi que celle pour le code externe collectivement comme un syndrome unique composé de 8 bits. Juste avant les mesures standard effectives qui produisent ces bits de syndrome, l'état a la forme suivante.

αI syndromeψ+βXk syndromeXkψ+iγXkZk syndromeXkZkψ+δZk syndromeZkψ\begin{gathered} \alpha\,\vert \mathbb{I} \text{ syndrome}\rangle \otimes \vert\psi\rangle \\ + \beta\,\vert X_k \text{ syndrome}\rangle \otimes X_k\vert\psi\rangle \\ + i \gamma\,\vert X_k Z_k \text{ syndrome}\rangle \otimes X_k Z_k\vert\psi\rangle \\ + \delta\,\vert Z_k \text{ syndrome}\rangle \otimes Z_k\vert\psi\rangle \end{gathered}

Pour être clair, nous avons deux systèmes à ce stade. Le système de gauche est les 8 qubits qu'on va mesurer pour obtenir le syndrome, où I syndrome,\vert \mathbb{I} \text{ syndrome}\rangle, Xk syndrome,\vert X_k \text{ syndrome}\rangle, etc., désignent quel état de la base standard à 8 qubits est compatible avec l'erreur correspondante (ou l'absence d'erreur). Le système de droite est les 9 qubits qu'on utilise pour l'encodage.

Remarquons que ces deux systèmes sont maintenant corrélés (en général), et c'est la clé du fonctionnement de ceci. En mesurant le syndrome, l'état des 9 qubits de droite s'effondre effectivement vers un état dans lequel une erreur de Pauli compatible avec le syndrome mesuré a été appliquée à l'un des qubits. De plus, le syndrome lui-même fournit suffisamment d'informations pour qu'on puisse annuler l'erreur et récupérer l'encodage original ψ.\vert\psi\rangle.

En particulier, si les qubits du syndrome sont mesurés et que les corrections appropriées sont effectuées, on obtient un état qui peut être exprimé comme une matrice densité,

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

ξ=α2I syndromeI syndrome+β2Xk syndromeXk syndrome+γ2XkZk syndromeXkZk syndrome+δ2Zk syndromeZk syndrome.\begin{aligned} \xi = & \vert\alpha\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[1mm] & + \vert\beta\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[1mm] & + \vert\gamma\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[1mm] & + \vert\delta\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert. \end{aligned}

Il s'agit d'un état produit de façon cruciale : on a notre encodage original non corrompu comme facteur tensoriel de droite, et à gauche on a une matrice densité ξ\xi qui décrit un syndrome d'erreur aléatoire. Il n'y a plus de corrélation avec le système de droite, qui est celui qui nous importe, car les erreurs ont été corrigées. À ce stade, on peut jeter les qubits du syndrome ou les réinitialiser pour les réutiliser. C'est ainsi que l'aléatoire — ou l'entropie — créée par les erreurs est supprimée du système.

C'est la discrétisation des erreurs pour le cas particulier des erreurs unitaires. En essence, en mesurant le syndrome, on projette effectivement l'erreur sur une erreur décrite par une matrice de Pauli.

Au premier abord, il peut sembler trop beau pour être vrai qu'on puisse corriger des erreurs unitaires arbitraires comme celle-ci, même des erreurs minuscules et à peine perceptibles par elles-mêmes. Mais ce qu'il faut réaliser ici, c'est qu'il s'agit d'une erreur unitaire sur un seul qubit, et par la conception du code, une opération sur un seul qubit ne peut pas changer l'état du qubit logique qui a été encodé. Tout ce qu'elle peut éventuellement faire, c'est faire sortir l'état du sous-espace des encodages valides, mais ensuite les détections d'erreurs effondrent l'état et les corrections le ramènent là où il avait commencé.

Erreurs arbitraires sur un qubit

Enfin, considérons des erreurs arbitraires qui ne sont pas nécessairement unitaires. Pour être précis, nous allons considérer une erreur décrite par un canal qubit arbitraire Φ.\Phi. Par exemple, il pourrait s'agir d'un canal de déphasage ou dépolarisant, d'un canal de réinitialisation, ou d'un canal étrange auquel on n'a jamais pensé auparavant.

La première étape consiste à considérer n'importe quelle représentation de Kraus de Φ.\Phi.

Φ(σ)=jAjσAj\Phi(\sigma) = \sum_j A_j \sigma A_j^{\dagger}

C'est un canal qubit, donc chaque AjA_j est une matrice 2×22\times 2, qu'on peut exprimer comme une combinaison linéaire de matrices de Pauli.

Aj=αjI+βjX+γjY+δjZA_j = \alpha_j \mathbb{I} + \beta_j X + \gamma_j Y + \delta_j Z

Cela nous permet d'exprimer l'action de l'erreur Φ\Phi sur un qubit choisi kk en termes de matrices de Pauli comme suit.

Φk(ψψ)=j(αjIk+βjXk+γjYk+δjZk)ψψ(αjIk+βjXk+γjYk+δjZk)\Phi_k \bigl( \vert\psi\rangle\langle\psi\vert\bigr) = \sum_j (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k) \vert\psi\rangle\langle\psi\vert (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k)^{\dagger}

En bref, nous avons simplement développé toutes nos matrices de Kraus comme des combinaisons linéaires de matrices de Pauli.

Si on calcule et mesure maintenant le syndrome d'erreur, et qu'on corrige toutes les erreurs révélées, on obtiendra un état similaire à ce qu'on avait dans le cas d'une erreur unitaire :

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

où cette fois on a

ξ=j(αj2I syndromeI syndrome+βj2Xk syndromeXk syndrome+γj2XkZk syndromeXkZk syndrome+δj2Zk syndromeZk syndrome).\begin{aligned} \xi = & \sum_j \Bigl(\vert\alpha_j\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[-3mm] & \qquad + \vert\beta_j\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\gamma_j\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\delta_j\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert \Bigr). \end{aligned}

Les détails sont un peu plus complexes et ne sont pas montrés ici. Conceptuellement, l'idée est identique au cas unitaire.

Généralisation

La discrétisation des erreurs se généralise à d'autres codes de correction d'erreurs quantiques, notamment ceux qui peuvent détecter et corriger des erreurs sur plusieurs qubits. Dans de tels cas, les erreurs sur plusieurs qubits peuvent être exprimées comme des produits tensoriels de matrices de Pauli, et en correspondance, différents syndromes spécifient des corrections par opérations de Pauli qui peuvent être effectuées sur plusieurs qubits plutôt qu'un seul.

Encore une fois, en mesurant le syndrome, les erreurs sont effectivement projetées ou effondrées sur un ensemble discret de possibilités représentées par des produits tensoriels de matrices de Pauli, et en corrigeant ces erreurs de Pauli, on peut récupérer l'état encodé original. Par ailleurs, tout aléatoire généré dans le processus est déplacé dans les qubits du syndrome, qui sont jetés ou réinitialisés, éliminant ainsi l'aléatoire généré dans ce processus du système qui stocke l'encodage.