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é est encodé sous la forme
Tout état 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.
La première équation stipule que l'application d'opérations aux deux qubits les plus à gauche de n'a aucun effet, c'est-à-dire que est un vecteur propre de avec la valeur propre La deuxième équation est similaire, sauf que les opérations sont appliquées aux deux qubits les plus à droite. L'idée est que, si on considère 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 et 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 , car est un vecteur propre des deux observables avec la valeur propre 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.
Les deux équations ci-dessus impliquent donc que le circuit de vérification de parité produit la sortie ce qui est le syndrome indiquant qu'aucune erreur n'a été détectée.
Les opérations de Pauli à 3 qubits et 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.
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 à 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 selon l'action d'une opération (ou erreur ).
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 et en tant qu'observables.
Commençons par le premier générateur du stabilisateur. L'état a été affecté par une erreur 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 et anticommutent, alors que toute matrice commute avec la matrice identité, il s'ensuit que anticommute avec Par ailleurs, comme est un encodage valide d'un qubit, agit trivialement sur
Par conséquent, est un vecteur propre de avec la valeur propre Lorsque la mesure associée à l'observable est effectuée sur l'état le résultat est donc certain d'être celui associé à la valeur propre
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
Ce qu'on constate en examinant ces équations, c'est que, quel que soit l'état initial l'état corrompu est un vecteur propre des deux générateurs du stabilisateur, et que la valeur propre soit ou 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 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.
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 soit 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.
Pour chaque erreur dans le tableau, la colonne correspondante révèle donc comment cette erreur transforme tout encodage donné en un vecteur propre ou 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 et plutôt que des entrées et — et il est courant de penser à un syndrome comme étant une chaîne binaire plutôt qu'une colonne d'entrées et — mais on peut tout aussi bien considérer ces vecteurs avec des entrées et 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.
Chaque générateur du stabilisateur divise l'espace en deux sous-espaces de même dimension, à savoir l'espace des vecteurs propres et l'espace des vecteurs propres pour cet observable. Par exemple, les vecteurs propres de 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 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 est l'espace engendré par et , 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 et parmi les 64 opérations de Pauli à 3 qubits possibles, il y en a exactement 16 dans cette catégorie (incluant par exemple et ), 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 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, 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 sur le qubit logique encodé.
Encore une fois, c'est un phénomène qui se généralise à tous les codes stabilisateurs.