Vai al contenuto principale

Il codice a ripetizione rivisitato

Ora esamineremo nuovamente il codice a ripetizione a 3 bit, questa volta formulandolo in termini di operazioni di Pauli. Questo sarà il nostro primo esempio di codice stabilizzatore.

Osservabili di Pauli per il codice a ripetizione

Ricorda che, quando applichiamo il codice a ripetizione a 3 bit ai qubit, un dato vettore di stato di qubit α0+β1\alpha\vert 0\rangle + \beta\vert 1\rangle viene codificato come

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

Qualsiasi stato ψ\vert\psi\rangle di questa forma è una codifica valida a 3 qubit di uno stato di qubit — ma se avessimo uno stato di cui non fossimo sicuri, potremmo verificare di avere una codifica valida controllando le due equazioni seguenti.

(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 prima equazione afferma che applicare operazioni ZZ ai due qubit più a sinistra di ψ\vert\psi\rangle non produce alcun effetto, il che significa che ψ\vert\psi\rangle è un autovettore di ZZIZ\otimes Z\otimes \mathbb{I} con autovalore 1.1. La seconda equazione è analoga, ma le operazioni ZZ sono applicate ai due qubit più a destra. L'idea è che, se pensiamo a ψ\vert\psi\rangle come combinazione lineare di stati della base standard, la prima equazione implica che possono avere coefficienti non nulli solo gli stati della base standard per cui i due bit più a sinistra hanno parità pari (o, equivalentemente, sono uguali), mentre la seconda equazione implica che possono avere coefficienti non nulli solo quelli per cui i due bit più a destra hanno parità pari.

In modo equivalente, se consideriamo le due operazioni di Pauli ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z come osservabili e le misuriamo entrambe usando i circuiti suggeriti alla fine della sezione precedente, avremmo la certezza di ottenere esiti di misura corrispondenti agli autovalori +1+1, poiché ψ\vert\psi\rangle è autovettore di entrambi gli osservabili con autovalore 1.1. Tuttavia, la versione semplificata del circuito (combinato) per misurare indipendentemente entrambi gli osservabili, mostrata qui, non è altro che il circuito di controllo della parità per il codice a ripetizione a 3 bit.

Circuito di controllo della parità per il codice a ripetizione a 3 bit

Le due equazioni sopra implicano quindi che il circuito di controllo della parità restituisce 00,00, che è la sindrome che indica l'assenza di errori rilevati.

Le operazioni di Pauli a 3 qubit ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z sono chiamate generatori stabilizzatori per questo codice, e lo stabilizzatore del codice è l'insieme generato dai generatori stabilizzatori.

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 \}

Lo stabilizzatore è un oggetto matematico fondamentalmente importante associato a questo codice, e il ruolo che svolge verrà discusso nel prosieguo della lezione. Per ora, osserviamo che avremmo potuto fare una scelta diversa per i generatori e i controlli di parità corrispondenti, in particolare prendendo ZIZZ\otimes\mathbb{I}\otimes Z al posto di uno dei generatori che abbiamo selezionato, ma lo stabilizzatore e il codice stesso sarebbero rimasti invariati.

Rilevamento degli errori

Ora considereremo il rilevamento dei bit-flip per il codice a ripetizione a 3 bit, concentrandoci sulle interazioni e le relazioni tra le operazioni di Pauli coinvolte: i generatori stabilizzatori e gli errori stessi.

Supponiamo di aver codificato un qubit usando il codice a ripetizione a 3 bit e che si verifichi un errore di bit-flip sul qubit più a sinistra. Questo trasforma lo stato ψ\vert\psi\rangle secondo l'azione di un'operazione XX (o errore XX).

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

Questo errore può essere rilevato eseguendo i controlli di parità per il codice a ripetizione a 3 bit, come discusso nella lezione precedente, il che equivale a misurare in modo non distruttivo i generatori stabilizzatori ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z come osservabili.

Iniziamo con il primo generatore stabilizzatore. Lo stato ψ\vert\psi\rangle è stato colpito da un errore XX sul qubit più a sinistra, e il nostro obiettivo è capire come la misura di questo generatore stabilizzatore, come osservabile, venga influenzata da questo errore. Poiché XX e ZZ anti-commutano, mentre qualsiasi matrice commuta con la matrice identità, ne consegue che ZZIZ\otimes Z\otimes \mathbb{I} anti-commuta con XII.X\otimes\mathbb{I}\otimes\mathbb{I}. D'altro canto, poiché ψ\vert\psi\rangle è una codifica valida di un qubit, ZZIZ\otimes Z\otimes \mathbb{I} agisce banalmente su ψ.\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}

Pertanto, (XII)ψ(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle è un autovettore di ZZIZ \otimes Z \otimes \mathbb{I} con autovalore 1.-1. Quando la misura associata all'osservabile ZZIZ \otimes Z \otimes \mathbb{I} viene eseguita sullo stato (XII)ψ,(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle, l'esito è quindi certo essere quello associato all'autovalore 1.-1.

Un ragionamento analogo può essere applicato al secondo generatore stabilizzatore, ma in questo caso l'errore commuta con il generatore stabilizzatore invece di anti-commutare, quindi l'esito di questa misura è quello associato all'autovalore +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}

Quello che scopriamo considerando queste equazioni è che, indipendentemente dallo stato originale ψ,\vert\psi\rangle, lo stato corrotto è un autovettore di entrambi i generatori stabilizzatori, e se l'autovalore è +1+1 o 1-1 è determinato dal fatto che l'errore commuti o anti-commuti con ciascun generatore stabilizzatore. Per errori rappresentati da operazioni di Pauli, sarà sempre l'uno o l'altro, poiché due operazioni di Pauli qualsiasi o commutano o anti-commutano. D'altro canto, lo stato effettivo ψ\vert\psi\rangle non svolge un ruolo importante, eccetto per il fatto che i generatori stabilizzatori agiscono banalmente su questo stato.

Per questo motivo, in generale non è necessario preoccuparsi dello specifico stato codificato con cui stiamo lavorando. Ciò che conta è se l'errore commuta o anti-commuta con ciascun generatore stabilizzatore. In particolare, queste sono le equazioni rilevanti riguardo a questo particolare errore per questo codice.

(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}

Ecco una tabella con una riga per ogni generatore stabilizzatore e una colonna per ogni errore. La voce nella tabella è +1+1 o 1-1 a seconda che l'errore e il generatore stabilizzatore commutino o anti-commutino. La tabella include solo le colonne per gli errori corrispondenti a un singolo bit-flip, nonché nessun errore, descritto dall'identità tensorializzata con se stessa tre volte. Potremmo aggiungere altre colonne per altri errori, ma per ora ci concentreremo solo su questi errori.

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}

Per ogni errore nella tabella, la colonna corrispondente rivela come quell'errore trasforma qualsiasi codifica in un autovettore +1+1 o 1-1 di ciascun generatore stabilizzatore. In modo equivalente, le colonne descrivono la sindrome che otterremmo dai controlli di parità, equivalenti a misure non distruttive dei generatori stabilizzatori come osservabili. Naturalmente, la tabella ha voci +1+1 e 1-1 piuttosto che 00 e 11 — ed è comune pensare a una sindrome come a una stringa binaria piuttosto che a una colonna di voci +1+1 e 1-1 — ma possiamo ugualmente pensare a questi vettori con voci +1+1 e 1-1 come sindromi per collegarli direttamente agli autovalori dei generatori stabilizzatori. In generale, le sindromi ci dicono qualcosa su qualsiasi errore si sia verificato, e se sappiamo che si è verificato uno dei quattro possibili errori elencati nella tabella, la sindrome indica qual è.

Sindromi

Le codifiche per il codice a ripetizione a 3 bit sono stati a 3 qubit, quindi sono vettori unitari in uno spazio vettoriale complesso a 8 dimensioni. Le quattro possibili sindromi dividono efficacemente questo spazio a 8 dimensioni in quattro sottospazi a 2 dimensioni, dove i vettori di stato quantistici in ciascun sottospazio producono sempre la stessa sindrome. Il diagramma seguente illustra in modo specifico come lo spazio a 8 dimensioni viene suddiviso dai due generatori stabilizzatori.

Suddivisione del sottospazio per il codice a ripetizione a 3 bit

Ogni generatore stabilizzatore divide lo spazio in due sottospazi di uguale dimensione, cioè lo spazio degli autovettori +1+1 e lo spazio degli autovettori 1-1 per quell'osservabile. Ad esempio, gli autovettori +1+1 di ZZIZ\otimes Z\otimes\mathbb{I} sono combinazioni lineari di stati della base standard per cui i due bit più a sinistra hanno parità pari, e gli autovettori 1-1 sono combinazioni lineari di stati della base standard per cui i due bit più a sinistra hanno parità dispari. La situazione è analoga per l'altro generatore stabilizzatore, eccetto che per quest'ultimo si tratta dei due bit più a destra anziché di quelli più a sinistra.

I quattro sottospazi a 2 dimensioni corrispondenti alle quattro possibili sindromi sono facili da descrivere in questo caso, grazie al fatto che questo è un codice molto semplice. In particolare, il sottospazio corrispondente alla sindrome (+1,+1)(+1,+1) è lo spazio generato da 000\vert 000\rangle e 111\vert 111\rangle, che è lo spazio delle codifiche valide (noto anche come spazio del codice), e in generale gli spazi sono generati dalla base standard mostrata nei quadrati corrispondenti.

Le sindromi partizionano anche tutte le operazioni di Pauli a 3 qubit in 4 insiemi di uguale dimensione, a seconda della sindrome che quell'operazione (come errore) causerebbe. Ad esempio, qualsiasi operazione di Pauli che commuta con entrambi i generatori stabilizzatori produce la sindrome (+1,+1),(+1,+1), e tra le 64 possibili operazioni di Pauli a 3 qubit, ce ne sono esattamente 16 in questa categoria (tra cui IIZ,\mathbb{I}\otimes \mathbb{I}\otimes Z, ZZZ,Z\otimes Z\otimes Z, e XXXX\otimes X\otimes X per esempio), e lo stesso vale per le altre 3 sindromi.

Entrambe queste proprietà — che le sindromi partizionano sia lo spazio degli stati in cui vivono le codifiche sia tutte le operazioni di Pauli su questo spazio in insiemi di uguale dimensione — sono vere in generale per i codici stabilizzatori, che definiremo con precisione nella prossima sezione.

Sebbene sia principalmente un'osservazione marginale a questo punto, vale la pena menzionare che le operazioni di Pauli che commutano con entrambi i generatori stabilizzatori, o equivalentemente le operazioni di Pauli che producono la sindrome (+1,+1),(+1,+1), ma non sono esse stesse proporzionali a elementi dello stabilizzatore, si comportano esattamente come operazioni di Pauli a singolo qubit sul qubit codificato (cioè il qubit logico) per questo codice. Ad esempio, XXXX\otimes X \otimes X commuta con entrambi i generatori stabilizzatori, ma non è proporzionale a nessun elemento dello stabilizzatore, e in effetti l'effetto di questa operazione su una codifica equivale a un gate XX sul qubit logico che viene codificato.

(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

Anche questo è un fenomeno che si generalizza a tutti i codici stabilizzatori.