Aller au contenu principal

Le code de répétition revisité

Nous allons à présent revoir le code de répétition à 3 bits, cette fois en le formulant en termes d'opérations de Pauli. Ce sera notre premier exemple de code stabilisateur.

Observables de Pauli pour le code de répétition

Rappelons que, lorsqu'on applique le code de répétition à 3 bits aux qubits, un vecteur d'état qubit donné α0+β1\alpha\vert 0\rangle + \beta\vert 1\rangle est encodé sous la forme

ψ=α000+β111.\vert\psi\rangle = \alpha\vert 000\rangle + \beta\vert 111\rangle.

Tout état ψ\vert\psi\rangle de cette forme est un encodage valide sur 3 qubits d'un état qubit — mais si on avait un état dont on n'était pas sûr, on pourrait vérifier qu'il s'agit d'un encodage valide en vérifiant les deux équations suivantes.

(ZZI)ψ=ψ(IZZ)ψ=ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I}) \vert\psi\rangle & = \vert\psi\rangle\\[1mm] (\mathbb{I} \otimes Z \otimes Z) \vert\psi\rangle & = \vert\psi\rangle \end{aligned}

La première équation stipule que l'application d'opérations ZZ aux deux qubits les plus à gauche de ψ\vert\psi\rangle n'a aucun effet, c'est-à-dire que ψ\vert\psi\rangle est un vecteur propre de ZZIZ\otimes Z\otimes \mathbb{I} avec la valeur propre 1.1. La deuxième équation est similaire, sauf que les opérations ZZ sont appliquées aux deux qubits les plus à droite. L'idée est que, si on considère ψ\vert\psi\rangle comme une combinaison linéaire d'états de la base standard, alors la première équation implique qu'on ne peut avoir de coefficients non nuls que pour les états de la base standard où les deux bits les plus à gauche ont une parité paire (ou, de manière équivalente, sont égaux), et la deuxième équation implique qu'on ne peut avoir de coefficients non nuls que pour les états de la base standard pour lesquels les deux bits les plus à droite ont une parité paire.

De manière équivalente, si on considère les deux opérations de Pauli ZZIZ\otimes Z\otimes \mathbb{I} et IZZ\mathbb{I}\otimes Z\otimes Z comme des observables, et qu'on les mesure toutes les deux en utilisant les circuits suggérés à la fin de la section précédente, on serait certain d'obtenir des résultats de mesure correspondant aux valeurs propres +1+1, car ψ\vert\psi\rangle est un vecteur propre des deux observables avec la valeur propre 1.1. Mais la version simplifiée du circuit (combiné) pour mesurer indépendamment les deux observables, représentée ici, n'est autre que le circuit de vérification de parité pour le code de répétition à 3 bits.

Circuit de vérification de parité pour le code de répétition à 3 bits

Les deux équations ci-dessus impliquent donc que le circuit de vérification de parité produit la sortie 00,00, ce qui est le syndrome indiquant qu'aucune erreur n'a été détectée.

Les opérations de Pauli à 3 qubits ZZIZ\otimes Z\otimes \mathbb{I} et IZZ\mathbb{I}\otimes Z\otimes Z sont appelées générateurs du stabilisateur pour ce code, et le stabilisateur du code est l'ensemble engendré par les générateurs du stabilisateur.

ZZI,IZZ={III,ZZI,ZIZ,IZZ}\langle Z\otimes Z\otimes \mathbb{I}, \mathbb{I}\otimes Z\otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

Le stabilisateur est un objet mathématique fondamentalement important associé à ce code, et le rôle qu'il joue sera discuté au fil de la leçon. Pour l'instant, observons qu'on aurait pu faire un choix différent pour les générateurs et les vérifications de parité correspondantes, notamment en prenant ZIZZ\otimes\mathbb{I}\otimes Z à la place de l'un des générateurs sélectionnés, mais le stabilisateur et le code lui-même n'en auraient pas été modifiés.

Détection d'erreurs

Nous allons ensuite considérer la détection des retournements de bits pour le code de répétition à 3 bits, en nous concentrant sur les interactions et les relations entre les opérations de Pauli impliquées : les générateurs du stabilisateur et les erreurs elles-mêmes.

Supposons qu'on ait encodé un qubit en utilisant le code de répétition à 3 bits, et qu'une erreur de retournement de bit se produise sur le qubit le plus à gauche. Cela provoque la transformation de l'état ψ\vert\psi\rangle selon l'action d'une opération XX (ou erreur XX).

ψ(XII)ψ\vert\psi\rangle \mapsto (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle

Cette erreur peut être détectée en effectuant les vérifications de parité pour le code de répétition à 3 bits, comme discuté dans la leçon précédente, ce qui est équivalent à mesurer de façon non destructive les générateurs du stabilisateur ZZIZ\otimes Z\otimes \mathbb{I} et IZZ\mathbb{I}\otimes Z\otimes Z en tant qu'observables.

Commençons par le premier générateur du stabilisateur. L'état ψ\vert\psi\rangle a été affecté par une erreur XX sur le qubit le plus à gauche, et notre objectif est de comprendre comment la mesure de ce générateur du stabilisateur, en tant qu'observable, est influencée par cette erreur. Parce que XX et ZZ anticommutent, alors que toute matrice commute avec la matrice identité, il s'ensuit que ZZIZ\otimes Z\otimes \mathbb{I} anticommute avec XII.X\otimes\mathbb{I}\otimes\mathbb{I}. Par ailleurs, comme ψ\vert\psi\rangle est un encodage valide d'un qubit, ZZIZ\otimes Z\otimes \mathbb{I} agit trivialement sur ψ.\vert\psi\rangle.

(ZZI)(XII)ψ=(XII)(ZZI)ψ=(XII)ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\vert\psi\rangle \\ & = -(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

Par conséquent, (XII)ψ(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle est un vecteur propre de ZZIZ \otimes Z \otimes \mathbb{I} avec la valeur propre 1.-1. Lorsque la mesure associée à l'observable ZZIZ \otimes Z \otimes \mathbb{I} est effectuée sur l'état (XII)ψ,(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle, le résultat est donc certain d'être celui associé à la valeur propre 1.-1.

Un raisonnement similaire peut être appliqué au deuxième générateur du stabilisateur, mais cette fois l'erreur commute avec le générateur du stabilisateur plutôt qu'anticommuter, et le résultat pour cette mesure est donc celui associé à la valeur propre +1.+1.

(IZZ)(XII)ψ=(XII)(IZZ)ψ=(XII)ψ\begin{aligned} (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z)\vert\psi\rangle\\ & = (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

Ce qu'on constate en examinant ces équations, c'est que, quel que soit l'état initial ψ,\vert\psi\rangle, l'état corrompu est un vecteur propre des deux générateurs du stabilisateur, et que la valeur propre soit +1+1 ou 1-1 est déterminée par le fait que l'erreur commute ou anticommute avec chaque générateur du stabilisateur. Pour les erreurs représentées par des opérations de Pauli, ce sera toujours l'un ou l'autre, car deux opérations de Pauli quelconques commutent ou anticommutent. Par ailleurs, l'état réel ψ\vert\psi\rangle ne joue pas un rôle important, sauf pour le fait que les générateurs du stabilisateur agissent trivialement sur cet état.

Pour cette raison, on n'a pas besoin en général de se préoccuper de l'état encodé spécifique avec lequel on travaille. Tout ce qui compte, c'est de savoir si l'erreur commute ou anticommute avec chaque générateur du stabilisateur. En particulier, voici les équations pertinentes concernant cette erreur particulière pour ce code.

(ZZI)(XII)=(XII)(ZZI)(IZZ)(XII)=(XII)(IZZ)\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\\[1mm] (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) \end{aligned}

Voici un tableau avec une ligne pour chaque générateur du stabilisateur et une colonne pour chaque erreur. L'entrée dans le tableau est soit +1+1 soit 1-1 selon que l'erreur et le générateur du stabilisateur commutent ou anticommutent. Le tableau ne comprend des colonnes que pour les erreurs correspondant à un seul retournement de bit, ainsi qu'aucune erreur du tout, ce qui est décrit par l'identité tensorisée avec elle-même trois fois. On pourrait ajouter d'autres colonnes pour d'autres erreurs, mais pour l'instant notre attention se portera uniquement sur ces erreurs.

IIIXIIIXIIIXZZI+111+1IZZ+1+111\begin{array}{c|cccc} & \mathbb{I}\otimes\mathbb{I} \otimes\mathbb{I} & X \otimes \mathbb{I} \otimes \mathbb{I} & \mathbb{I}\otimes X\otimes\mathbb{I} & \mathbb{I} \otimes\mathbb{I} \otimes X \\ \hline Z\otimes Z\otimes\mathbb{I} & +1 & -1 & -1 & +1 \\ \mathbb{I}\otimes Z\otimes Z & +1 & +1 & -1 & -1 \end{array}

Pour chaque erreur dans le tableau, la colonne correspondante révèle donc comment cette erreur transforme tout encodage donné en un vecteur propre +1+1 ou 1-1 de chaque générateur du stabilisateur. De manière équivalente, les colonnes décrivent le syndrome qu'on obtiendrait à partir des vérifications de parité, qui sont équivalentes à des mesures non destructives des générateurs du stabilisateur en tant qu'observables. Bien sûr, le tableau a des entrées +1+1 et 1-1 plutôt que des entrées 00 et 11 — et il est courant de penser à un syndrome comme étant une chaîne binaire plutôt qu'une colonne d'entrées +1+1 et 1-1 — mais on peut tout aussi bien considérer ces vecteurs avec des entrées +1+1 et 1-1 comme syndromes pour les relier directement aux valeurs propres des générateurs du stabilisateur. En général, les syndromes nous donnent des informations sur l'erreur qui s'est produite, et si on sait que l'une des quatre erreurs possibles listées dans le tableau s'est produite, le syndrome indique laquelle c'était.

Syndromes

Les encodages pour le code de répétition à 3 bits sont des états à 3 qubits, ce sont donc des vecteurs unitaires dans un espace vectoriel complexe de dimension 8. Les quatre syndromes possibles divisent effectivement cet espace de dimension 8 en quatre sous-espaces de dimension 2, où les vecteurs d'état quantique dans chaque sous-espace produisent toujours le même syndrome. Le diagramme suivant illustre spécifiquement comment l'espace de dimension 8 est divisé par les deux générateurs du stabilisateur.

Division en sous-espaces pour le code de répétition à 3 bits

Chaque générateur du stabilisateur divise l'espace en deux sous-espaces de même dimension, à savoir l'espace des vecteurs propres +1+1 et l'espace des vecteurs propres 1-1 pour cet observable. Par exemple, les vecteurs propres +1+1 de ZZIZ\otimes Z\otimes\mathbb{I} sont des combinaisons linéaires d'états de la base standard pour lesquels les deux bits les plus à gauche ont une parité paire, et les vecteurs propres 1-1 sont des combinaisons linéaires d'états de la base standard pour lesquels les deux bits les plus à gauche ont une parité impaire. La situation est similaire pour l'autre générateur du stabilisateur, sauf que pour celui-ci ce sont les deux bits les plus à droite plutôt que les deux bits les plus à gauche.

Les quatre sous-espaces de dimension 2 correspondant aux quatre syndromes possibles sont faciles à décrire dans ce cas, grâce au fait qu'il s'agit d'un code très simple. En particulier, le sous-espace correspondant au syndrome (+1,+1)(+1,+1) est l'espace engendré par 000\vert 000\rangle et 111\vert 111\rangle, qui est l'espace des encodages valides (également connu sous le nom d'espace du code), et en général les espaces sont engendrés par les états de la base standard indiqués dans les carrés correspondants.

Les syndromes partitionnent également toutes les opérations de Pauli à 3 qubits en 4 collections de taille égale, selon le syndrome que cette opération (en tant qu'erreur) provoquerait. Par exemple, toute opération de Pauli qui commute avec les deux générateurs du stabilisateur produit le syndrome (+1,+1),(+1,+1), et parmi les 64 opérations de Pauli à 3 qubits possibles, il y en a exactement 16 dans cette catégorie (incluant par exemple IIZ,\mathbb{I}\otimes \mathbb{I}\otimes Z, ZZZ,Z\otimes Z\otimes Z, et XXXX\otimes X\otimes X), et de même pour les 3 autres syndromes.

Ces deux propriétés — que les syndromes partitionnent à la fois l'espace d'états dans lequel vivent les encodages et toutes les opérations de Pauli sur cet espace en collections de taille égale — sont vraies en général pour les codes stabilisateurs, que nous définirons précisément dans la prochaine section.

Bien que ce soit principalement une remarque annexe à ce stade, il vaut la peine de mentionner que les opérations de Pauli qui commutent avec les deux générateurs du stabilisateur, ou de manière équivalente les opérations de Pauli qui produisent le syndrome (+1,+1),(+1,+1), mais qui ne sont pas elles-mêmes proportionnelles à des éléments du stabilisateur, se comportent en fait exactement comme des opérations de Pauli à un seul qubit sur le qubit encodé (c'est-à-dire le qubit logique) pour ce code. Par exemple, XXXX\otimes X \otimes X commute avec les deux générateurs du stabilisateur, mais n'est pas lui-même proportionnel à un élément du stabilisateur, et en effet l'effet de cette opération sur un encodage est équivalent à une porte XX sur le qubit logique encodé.

(XXX)(α000+β111)=α111+β000(X\otimes X \otimes X)(\alpha \vert 000\rangle + \beta \vert 111\rangle) = \alpha \vert 111\rangle + \beta \vert 000\rangle

Encore une fois, c'est un phénomène qui se généralise à tous les codes stabilisateurs.