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.

(Z⊗Z⊗I)∣ψ⟩=∣ψ⟩(I⊗Z⊗Z)∣ψ⟩=∣ψ⟩\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 Z⊗Z⊗IZ\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 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} e I⊗Z⊗Z\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 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} e I⊗Z⊗Z\mathbb{I}\otimes Z\otimes Z sono chiamate generatori stabilizzatori per questo codice, e lo stabilizzatore del codice è l'insieme generato dai generatori stabilizzatori.

⟨Z⊗Z⊗I,I⊗Z⊗Z⟩={I⊗I⊗I,Z⊗Z⊗I,Z⊗I⊗Z,I⊗Z⊗Z}\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 Z⊗I⊗ZZ\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).

∣ψ⟩↦(X⊗I⊗I)∣ψ⟩\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 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} e I⊗Z⊗Z\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 Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} anti-commuta con X⊗I⊗I.X\otimes\mathbb{I}\otimes\mathbb{I}. D'altro canto, poiché ∣ψ⟩\vert\psi\rangle è una codifica valida di un qubit, Z⊗Z⊗IZ\otimes Z\otimes \mathbb{I} agisce banalmente su ∣ψ⟩.\vert\psi\rangle.

(Z⊗Z⊗I)(X⊗I⊗I)∣ψ⟩=−(X⊗I⊗I)(Z⊗Z⊗I)∣ψ⟩=−(X⊗I⊗I)∣ψ⟩\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, (X⊗I⊗I)∣ψ⟩(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle è un autovettore di Z⊗Z⊗IZ \otimes Z \otimes \mathbb{I} con autovalore −1.-1. Quando la misura associata all'osservabile Z⊗Z⊗IZ \otimes Z \otimes \mathbb{I} viene eseguita sullo stato (X⊗I⊗I)∣ψ⟩,(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.

(I⊗Z⊗Z)(X⊗I⊗I)∣ψ⟩=(X⊗I⊗I)(I⊗Z⊗Z)∣ψ⟩=(X⊗I⊗I)∣ψ⟩\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.

(Z⊗Z⊗I)(X⊗I⊗I)=−(X⊗I⊗I)(Z⊗Z⊗I)(I⊗Z⊗Z)(X⊗I⊗I)=(X⊗I⊗I)(I⊗Z⊗Z)\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.

I⊗I⊗IX⊗I⊗II⊗X⊗II⊗I⊗XZ⊗Z⊗I+1−1−1+1I⊗Z⊗Z+1+1−1−1\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 Z⊗Z⊗IZ\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 I⊗I⊗Z,\mathbb{I}\otimes \mathbb{I}\otimes Z, Z⊗Z⊗Z,Z\otimes Z\otimes Z, e X⊗X⊗XX\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, X⊗X⊗XX\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.

(X⊗X⊗X)(α∣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.