• Aucun résultat trouvé

Circuit d’encodage

Dans le document Décodage Viterbi Dégénéré (Page 39-43)

Codes stabilisateurs

2.4 Circuit d’encodage

L’idée générale d’un code correcteur d’erreur est de partir avec un certain nombre de qubits logiques(les qubits qui contiendront l’information à protéger) et de les pla-cer dans un espace d’Hilbert plus grand. De cette façon, on peut encoder k qubits logiques avec n qubits physiques, où n > k. On parle alors d’un espace code C avec les paramètres [n,k]. Le rendement d’un tel code est défini par nk. Ce code C est un sous-espace de l’espace d’Hilbert de dimension 2n. Le code correcteur d’erreur est alors une fonctione : H2k → C qui prend les éléments de l’espace d’Hilbert H2k et les amène dans le sous-espaceC deH2n. La transformationedoit être isométrique. De fa-çon équivalente, on peut supposer qu’on accolen−kqubits dans l’état|0iauxkqubits logiques et que la fonction e : H2kH2nkH2n est unitaire. Cela garanti que tous les mots codes dansCsont uniques. La chaîne résultante den-qubits est ensuite enco-dée avec une transformation unitaireU et donne l’état encodé|ψ¯in =U|ψik⊗ |0ink

comme illustré à la figure 2.5. Il s’agit donc d’une méthode générale pour ajouter de la redondance au système, tel que nous en avons discuté plus haut. Le choix d’une trans-formationU revient à choisir un encodage spécifique. Par exemple, la transformation unitaire dans le cas du code à trois qubits a déjà été décrite à l’équation (2.6). D’autres exemples de transformations unitaireUseront présentés plus tard dans ce chapitre.

Observons maintenant plus en détail l’effet qu’ont les générateursXi,Zi ∈ Gn sur différents qubits. Pour simplifier la notation, appelons|φi =|ψik⊗ |0ink, l’état avant encodage. Il y a trois cas à considérer :

1. un opérateur Zi affecte un desm derniers qubits de |φi, nk+1 < m < n.

Puisque ces qubits commencent tous dans l’état|0i, ces opérateurs n’ont aucun effet sur l’état :Zi|φi =|φi.

2. un opérateurXiaffecte un desmderniers qubits de|φi,nk+1<m <n. L’ef-fet d’une transformationXsur un de ces qubits est de l’inverser :Xi(|ψik|00 . . . 0i =

|ψik|00 . . . 1 . . . 0i.

3. un opérateur Zi ouXi affecte un des k premiers qubits de|φi. L’effet d’un tel opérateur est de changer l’état encodé : |φi = |ψik⊗ |0ink → |φi0 = |ψi0k

|0inkoù|ψi0k =Pi|ψik, Pi ∈ {Xi,Zi}.

Considérons maintenant ces opérateurs dans la représentation de Heisenberg, après

} | ψ ¯ ! n

| ψ ! k {

. .

{ .

n − k

| 0 !

| 0 !

| 0 !

| 0 !

U

FIGURE 2.5 – L’encodage général de k qubits logiques avec n qubits physiques. La transformation unitaireU est une transformation de Clifford. Le résultat de cet enco-dage est l’état|ψ¯in.

l’encodageU. Dans le cas numéro 1, l’encodage créé l’état UZi|φi =UZiUU|φi

=UZiU|ψ¯i

=Si|ψ¯i

=|ψ¯i. (2.10)

On voit queZi appliqué au qubits n−k+1 à nlaisse l’état encodé invariant donc il est transformé en un élément du stabilisateur sous l’action deU. De la même façon, on peut examiner le cas numéro 2 et trouver que

UXi|φi=UXiU|ψ¯i=Ti|ψ¯i. (2.11) On vient de définir un opérateur Ti = UXiU que l’on appelera erreur pure. Ces opérateurs sont appelés ainsi car ce sont ces erreurs qui font sortir l’état de l’espace code. C’est-à-dire que si on mesure les stabilisateursSi sur un étatTi|ψ¯i, on trouve le

syndromes= (0 . . . 1 . . . 00), où il y a un «1» à la ièmeposition. Puisque les opérateurs Si etTisont ainsi liés par le syndrome, on peut introduire la notationT(s)qui signifie l’opérateur T associé au syndrome s, obtenu en mesurant les générateurs Si. Ce qu’on vient de démontrer est que la mesure du syndrome est équivalente à défaire l’encodage (appliquer U) et de mesurer les n−k derniers qubits pour voir s’ils sont toujours dans l’état|0i.

Finalement, on discute du cas numéro 3. Il s’agit des opérateurs Zi et Xi agissant sur les qubits logiques. On les nommera donc des opérateurs logiques et seront définis par

UZiU =Zi (2.12)

UXiU =Xi. (2.13)

L’effet de ces opérateurs est de faire changer l’état logique du qubit. Par exemple, Xi|ψ¯i = |ψ¯i0 |ψ¯i0 est un autre état dans C. Ces types d’opérateurs, ainsi que les erreurs pures seront plus faciles à comprendre à l’aide d’un exemple.

2.4.1 Le code à trois qubits revisité

On revient maintenant à l’exemple du code à trois qubits pour mieux comprendre les opérateurs logiques et les erreurs pures. On a déjà vu que les stabilisateurs de ce code à trois qubits sont S1 = ZZI et S2 = ZIZ. Les erreurs pures sont : T1 = IXI et T2 = I IX. On note les relations suivantes entre les stabilisateurs et les erreurs pures :

[S1,T2] = 0,[S2,T1] =0,{S1,T1}=0,{S2,T2}=0. (2.14) De plus, les stabilisateurs commutent entre eux et il en est de même pour les erreurs pures T. Ceci se généralise pour toute paire de stabilisateurs et erreurs pures, pour n’importe quel code :

[Si,Tj] =0,i 6= j et {Si,Tj}=0,i= j. (2.15) Revenons au code à trois qubits et examinons les opérateurs logiques. Celles-ci sont : ¯X = XXX et ¯Z = ZI I. Si on applique maintenant ces opérateurs sur les états du code (|¯0i,|¯1i) on trouve qu’ils ont le même effet que Xet Z ont sur un qubit

non-encodé :

X¯|¯0i =|¯1i X¯|¯1i=|¯0i

Z¯|¯0i =|¯0i Z¯|¯1i=−|¯1i. (2.16) La dernière chose importante à remarquer est la matrice symplectique représentant la transformation ˜U, voir l’équation (2.6). On remarque que les colonnes de cette matrice nous donnent exactement les opérateurs suivants : ¯X,T1,T2, ¯Z,S1,S2. Encore une fois, cet exemple était donné pour le code à trois qubits, mais c’est la forme générale de la matrice ˜U.

2.4.2 Base Canonique pour Codes Correcteurs

Nous venons de voir que dans le cas du code à trois qubits, on pouvait trouver des opérateurs ¯X, ¯Z,Ti,Siet que ces opérateurs se retrouvaient dans la représentation symplectique de la transformation ˜U. Effectivement, ce formalisme est général et peut s’appliquer à n’importe quel code stabilisateur. On trouve donc qu’une matrice d’en-codage ˜Ugénérale a la forme

U˜ =

 X1 · · · Xk T1 · · · Tnk Z1 · · · Zk S1 · · · Snk

. (2.17)

On retrouve aussi les relations de commutations canoniques, soit toute paire de co-lonnesi,jde la matrice ˜Ucommute ensemble, excepté j =i+n, qui dans ce cas anti-commute. Ce phénomène a déjà été observé pour le cas des erreurs pures et de sta-bilisateurs (voir l’équation (2.15)). Le tout peut-être résumé avec l’équationUΛUT = Λ, comme décrit au premier chapitre. Puisque ces opérateurs forment une base, on pourra dorénavant décomposer une erreurE ∈ Gn de la façon suivante :

E =T· L· S, (2.18)

où T ∈ hTii,L ∈ hX¯i, ¯Zii et S ∈ hSii. Cette décomposition sera fort utile lors du décodage. Puisque ce sont seulement les erreur pures qui font sortir de l’espace code, on peut voir (grâce à la figure 2.6) qu’il y a 2nk syndromes possibles, identifiées par

leur composante de l’erreur pure,Ti.

T 1

T 2

...

T 3

T 2

nk

U | ψ !

!"#$

k

| 00...0 !

! "# $

n−k

Dans le document Décodage Viterbi Dégénéré (Page 39-43)