Codes répétitifs
Nous allons commencer cette leçon par une présentation des codes répétitifs. Les codes répétitifs ne protègent pas l'information quantique contre tous les types d'erreurs pouvant survenir sur des qubits, mais ils constituent la base du code de Shor à 9 qubits, que nous verrons dans la prochaine leçon, et ils sont également utiles pour expliquer les bases de la correction d'erreurs.
Encodage et décodage classiques
Les codes répétitifs sont des exemples extrêmement basiques de codes correcteurs d'erreurs. L'idée est que l'on peut protéger des bits contre les erreurs en répétant simplement chaque bit un nombre fixe de fois.
En particulier, considérons d'abord le code répétitif à 3 bits, dans le contexte de l'information classique pour commencer. Ce code encode un bit en trois en répétant le bit trois fois, donc est encodé en et est encodé en
Si rien ne se passe mal, on peut évidemment distinguer les deux possibilités pour le bit original à partir de leurs encodages. L'idée est que s'il y a eu une erreur et qu'un des trois bits a basculé — c'est-à-dire qu'un 0 devient 1 ou qu'un 1 devient 0 — on peut quand même déterminer quel était le bit original en cherchant laquelle des deux valeurs binaires apparaît deux fois. De façon équivalente, on peut décoder en calculant la valeur majoritaire (c'est-à-dire la valeur binaire qui apparaît le plus souvent).
Bien sûr, si 2 ou 3 bits de l'encodage basculent, le décodage ne fonctionnera pas correctement et le mauvais bit sera récupéré, mais si au plus 1 des 3 bits bascule, le décodage sera correct. C'est une propriété typique des codes correcteurs d'erreurs en général : ils peuvent permettre la correction d'erreurs, mais seulement s'il n'y en a pas trop.
Réduction du bruit pour le canal binaire symétrique
Pour illustrer une situation dans laquelle les chances de faire une erreur peuvent être réduites grâce à un code répétitif, supposons que notre objectif soit de communiquer un seul bit à un destinataire hypothétique, et que nous pouvons transmettre des bits via un canal binaire symétrique, qui fait basculer chaque bit qui le traverse indépendamment avec une probabilité C'est-à-dire qu'avec une probabilité le destinataire reçoit le bit envoyé à travers le canal, mais avec une probabilité le bit bascule et le destinataire reçoit la valeur binaire opposée.
Donc, si on choisit de ne pas utiliser le code répétitif à 3 bits et d'envoyer simplement le bit voulu à travers le canal, le destinataire reçoit alors le mauvais bit avec une probabilité En revanche, si on encode d'abord le bit à envoyer avec le code répétitif à 3 bits, puis qu'on envoie chacun des trois bits de l'encodage à travers le canal, alors chacun d'eux bascule indépendamment avec une probabilité Les chances d'un basculement de bit sont désormais plus grandes car il y a maintenant trois bits susceptibles de basculer plutôt qu'un, mais si au plus un des bits bascule, le destinataire décodera correctement. Une erreur persiste donc après décodage uniquement si deux bits ou plus basculent pendant la transmission.
La probabilité que deux bits basculent pendant la transmission est soit pour chacun des trois choix du bit qui ne bascule pas, tandis que la probabilité que les trois bits basculent est La probabilité totale de deux ou trois basculements de bits est donc
Pour des valeurs de inférieures à un demi, cela se traduit par une diminution de la probabilité que le destinataire finisse avec le mauvais bit. Il y aura toujours une chance d'erreur dans ce cas, mais le code diminue cette probabilité. (Pour des valeurs de supérieures à un demi, en revanche, le code augmente en réalité la probabilité que le destinataire reçoive le mauvais bit.)
Encodage de qubits
Le code répétitif à 3 bits est un code correcteur d'erreurs classique, mais on peut se demander ce qui se passe si on essaie de l'utiliser pour protéger des qubits contre des erreurs. Comme nous le verrons, ce n'est pas un code correcteur d'erreurs quantiques très impressionnant, car il rend en réalité certaines erreurs plus probables. C'est cependant la première étape vers le code de Shor, et il nous sera utile d'un point de vue pédagogique.
Pour être clair, lorsque nous parlons du code répétitif à 3 bits utilisé pour des qubits, nous pensons à un encodage d'un qubit où les états de la base standard sont répétés trois fois, de sorte qu'un vecteur d'état à un qubit est encodé comme suit.
Cet encodage est facilement implémenté par le circuit quantique suivant, qui utilise deux qubits de travail initialisés et deux portes CNOT.
Remarque en particulier que cet encodage n'est pas identique à la répétition de l'état quantique trois fois, comme dans le cas d'un vecteur d'état de qubit encodé en Un tel encodage ne peut pas être implémenté pour un état quantique inconnu en raison du théorème de non-clonage.
Erreurs de basculement de bit
Supposons maintenant qu'une erreur se produise après que l'encodage a été effectué. Plus précisément, supposons qu'une porte , c'est-à-dire un basculement de bit, se produise sur l'un des qubits. Par exemple, si le qubit du milieu subit un basculement de bit, l'état des trois qubits est transformé en cet état :
Bien sûr, ce n'est pas le seul type d'erreur qui pourrait se produire — et il est également raisonnable de remettre en question l'hypothèse selon laquelle une erreur prend la forme d'une opération parfaitement unitaire. Nous reviendrons sur ces questions dans la dernière section de la leçon, et pour l'instant nous pouvons considérer une erreur de cette forme comme étant simplement un type possible d'erreur (bien que fondamentalement important).
On peut voir clairement à partir de l'expression mathématique de l'état ci-dessus que le bit du milieu est celui qui diffère à l'intérieur de chaque ket. Mais supposons que nous ayons les trois qubits en notre possession et que nous ne connaissions pas leur état. Si nous soupçonnions qu'un basculement de bit a pu se produire, une option pour vérifier qu'un bit a basculé serait d'effectuer une mesure dans la base standard, ce qui, dans le cas présent, nous ferait voir ou avec des probabilités et respectivement. Dans les deux cas, notre conclusion serait que le bit du milieu a basculé — mais, malheureusement, nous perdrions l'état quantique original C'est l'état que nous cherchons à protéger, donc mesurer dans la base standard est une option insatisfaisante.
Ce que nous pouvons faire à la place, c'est utiliser le circuit quantique suivant, en introduisant l'état encodé dans les trois qubits supérieurs. Ce circuit mesure de façon non destructive la parité des états de la base standard des deux qubits supérieurs ainsi que des deux qubits inférieurs des trois qubits de l'encodage.
Sous l'hypothèse qu'au plus un bit a basculé, on peut facilement déduire des résultats de mesure l'emplacement du basculement de bit (ou son absence). En particulier, comme l'illustrent les quatre schémas de circuit suivants, le résultat de mesure indique qu'aucun basculement de bit ne s'est produit, tandis que les trois autres possibilités indiquent quel qubit a subi un basculement de bit.
Fait crucial, l'état des trois qubits supérieurs ne s'effondre dans aucun des cas, ce qui nous permet de corriger une erreur de basculement de bit si elle s'est produite — en appliquant simplement à nouveau le même basculement de bit avec une porte Le tableau suivant résume les états obtenus après au plus un basculement de bit, les résultats de mesure (appelés syndrome dans le contexte de la correction d'erreurs), et la correction nécessaire pour revenir à l'encodage original.
| État | Syndrome | Correction |
|---|---|---|