Contrôle de la propagation des erreurs
Le calcul quantique tolérant aux fautes ressemble à une course entre les erreurs et la correction d'erreurs. Si le nombre d'erreurs est suffisamment faible, la correction d'erreurs réussira à les corriger ; mais s'il y a trop d'erreurs, la correction d'erreurs échouera.
Pour cette raison, une attention suffisante doit être accordée à la façon dont les calculs quantiques sont effectués dans les implémentations tolérantes aux fautes de circuits, pour contrôler la propagation des erreurs. En effet, une erreur sur un qubit peut potentiellement se propager à plusieurs qubits par l'action des portes dans un circuit quantique, ce qui peut entraîner une augmentation dramatique du nombre d'erreurs. C'est une préoccupation primordiale, car si nous ne parvenons pas à contrôler la propagation des erreurs, nos efforts de correction d'erreurs seront rapidement submergés par les erreurs. Si, en revanche, nous sommes capables de maintenir la propagation des erreurs sous contrôle, la correction d'erreurs a une chance de suivre, permettant aux erreurs d'être corrigées à un rythme suffisamment élevé pour que le calcul quantique fonctionne comme prévu.
Le point de départ d'une discussion technique de cette question est la reconnaissance que les portes à deux qubits (ou les portes à plusieurs qubits plus généralement) peuvent propager des erreurs, même lorsqu'elles fonctionnent parfaitement. Par exemple, considère une porte NOT contrôlé, et suppose qu'une erreur se produit sur le qubit de contrôle juste avant que la porte NOT contrôlé soit effectuée. Comme nous l'avons déjà observé dans la leçon « Correction des erreurs quantiques », cela est équivalent à une erreur se produisant sur les deux qubits après que la porte NOT contrôlé est effectuée. La situation est similaire pour une erreur agissant sur la cible plutôt que sur le contrôle avant que la porte NOT contrôlé soit effectuée.
Il s'agit d'une propagation d'erreurs, car l'emplacement malheureux d'une erreur ou avant la porte NOT contrôlé la transforme effectivement en deux erreurs après la porte NOT contrôlé. Cela se produit même lorsque la porte NOT contrôlé est parfaite, et nous ne devons pas oublier qu'une porte NOT contrôlé donnée peut elle-même être bruyante, ce qui peut créer des erreurs corrélées sur deux qubits.
Ce qui s'ajoute à nos préoccupations est le fait que des portes à deux qubits ultérieures pourraient propager ces erreurs encore plus loin, comme le suggère la figure suivante.
Dans un sens, nous ne pouvons jamais contourner cela ; tant que nous utilisons des portes à plusieurs qubits, il y aura un potentiel de propagation d'erreurs. Cependant, comme nous le verrons dans les sous-sections suivantes, des mesures peuvent être prises pour limiter les dégâts causés, permettant de gérer les erreurs propagées.
Implémentations de portes transversales
La façon la plus simple connue pour atténuer la propagation d'erreurs dans les circuits quantiques tolérants aux fautes est d'implémenter les portes transversalement, ce qui signifie construire des gadgets pour eux qui ont une certaine forme simple. Plus précisément, les gadgets doivent être un produit tensoriel d'opérations (ou, en d'autres termes, un circuit quantique de profondeur un), où chaque opération ne peut agir que sur une seule position de qubit dans chaque bloc de code qu'elle touche. Cela est peut-être plus facile à expliquer à travers quelques exemples.
Exemples d'implémentations de portes transversales
Considère la figure suivante, qui suggère une implémentation transversale d'une porte CNOT. (Cette implémentation particulière, où les CNOT sont effectués qubit par qubit, ne fonctionne que pour les codes CSS — mais elle fonctionne effectivement pour tous les codes CSS.)
Il y a deux blocs de code dans cette figure, chacun représenté comme composé de cinq qubits (bien que ce puisse être davantage, comme cela a déjà été suggéré). Le circuit à droite a une profondeur de un, et chacune des portes CNOT agit sur une seule position de qubit dans chaque bloc : le contrôle et la cible pour le premier CNOT sont tous deux le qubit le plus en haut (c'est-à-dire le qubit 0 selon la convention de numérotation de Qiskit), le contrôle et la cible pour le deuxième CNOT sont tous deux le qubit deuxième en partant du haut (c'est-à-dire le qubit 1), et ainsi de suite. Il s'agit donc d'un gadget transversal.
Pour un deuxième exemple — réellement une classe d'exemples — considère toute porte de Pauli. Les portes de Pauli peuvent toujours être implémentées transversalement, pour tout code stabilisateur, en construisant des gadgets composés d'opérations de Pauli. En particulier, toute opération de Pauli sur un qubit logique encodé par un code stabilisateur peut être implémentée transversalement en choisissant une opération de Pauli appropriée sur les qubits physiques utilisés pour l'encodage. Cela est cohérent avec un fait mentionné en passant dans la leçon « Formalisme des stabilisateurs » : à une phase globale près, les opérations de Pauli qui commutent avec chaque générateur de stabilisateur d'un code stabilisateur agissent comme des opérations de Pauli sur le qubit ou les qubits encodés par ce code.
Comme exemple spécifique, considère le code de Shor à qubits, pour lequel les états de la base standard pourraient être encodés comme suit.