3.3 Costruzione di codici quantistici
3.3.1 Esempio di codice CSS: il codice Steane
Un importante esempio di codice CSS può essere costruito utiliz- zando il codice di Hamming [7, 4, 3] , che denotiamo con C, la cui matrice di parità è H = 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 , (3.9)
e la matrice generatrice è G = 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 .
Il duale del codice Hamming è il codice [7, 3, 4] generato da H. In questo caso il duale del codice è in realtà contenuto nel codice. Per costruire il codice CSS scegliamo un codice C1 ≡ C e C2 ≡ C⊥.
Dobbiamo innanzitutto vericare che C2 ⊂ C1.
La matrice di parità di C2 ≡ C⊥, per denizione, è uguale alla
trasposta della matrice generatrice di C1 ≡ C :
H (C2) = G (C1) T = 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 . (3.10)
Confrontando 3.9 con 3.10 possiamo notare che lo span delle righe di H (C2)contiene rigorosamente lo span delle righe di H (C1) ,e poichè
i corrispondenti codici sono i nuclei di H (C1)e H (C2) concludiamo
che C2 ⊂ C1.
I codici C1 e C2 hanno entrambi distanza 3, poichè C2⊥= C ⊥⊥
= C, e quindi possono correggere errori su 1 bit.
Il codice CSS (C1, C2) è un codice quantistico [[7, 1]] in quanto è
generato dal codice C1, che è un codice [[7, 4]], e dal codice C2, che
è un codice [[7, 3]]
Questo codice, in grado di correggere errori su un singolo qubit, è noto come codice Steane, dal suo inventore.
Capitolo 4
Codici stabilizzatori
I codici stabilizzatori sono un importante classe di codici quantistici la cui costruzione è analoga a quella dei codici lineari classici. E' utile introdurre, inizialmente, un formalismo stabilizzatore al ne di descrivere le porte unitarie e le misure, e dimostrare un risultato importante che quantica le limitazioni degli operatori stabilizzatori.
4.1 Formalismo stabilizzatore
L'idea di base del formalismo stabilizzatore è che molti stati quanti- stici possono essere descritti più facilmente lavorando con gli opera- tori che li stabilizzano piuttosto che con gli elementi del sottospazio di Hilbert. E' molto utile, inoltre, per descrivere gli errori sui qubit e alcune operazioni come la porta Hadamard, il cancello di fase, la porta CNOT.
Di seguito verrà utilizzata la seguente notazione. Indichiamo con
X1 = X⊗I⊗I = XII X2 = I⊗X⊗I = IXI X3 = I⊗I⊗X = IIX
e
Z1 = Z ⊗I ⊗I = ZII Z2 = I ⊗Z ⊗I = IZI Z3 = I ⊗I ⊗Z = IIZ.
Quindi in generale Zi (risp. Xi) è il prodotto tensore che ha tutte le
componenti uguali a I, tranne l'i − esima componente che è uguale a Z (risp Xi).
La chiave del formalismo stabilizzatore risiede nell'uso intelligente della teoria dei gruppi. Il gruppo di principale interesse è il gruppo di Pauli Gn su n qubit.
Per un singolo qubit il gruppo di Pauli consiste in tutte le matrici di Pauli insieme ai fattori moltiplicativi ±1 e ±i:
G1 ≡ {±I, ±iI, ±X, ±iX, ±Y, ±iY, ±Z, ±iZ} . (4.1)
Questo insieme di matrici forma un gruppo con l'operazione di prodotto matriciale.
Il gruppo di Pauli su n qubit è denito come il prodotto tensoriale n − esimo delle matrici di Pauli, considerando ovviamente i fattori moltiplicativi ±1 e ±i.
Gn =ikA1⊗ . . . ⊗ An| ∀ j ∈ [1, n] , Aj ∈ G1
Supponiamo che S sia un sottogruppo di Gn e deniamo Vs ⊆ 2n
come l'insieme degli stati di n qubit ssati da ogni elemento di S. Vs è lo spazio vettoriale stabilizzato da S, mentre S si dice
stabilizzatore dello spazio Vs, poichè ogni elemento di Vs è stabile
sotto l'azione di elementi di S. Esempio:
Vediamo un esempio del formalismo stabilizzatore in azione. Prendiamo n = 3 e sia
S ≡ {I, Z1Z2, Z2Z3, Z1Z3} .
Il sottospazio ssato da Z1Z2 è generato da
|000i , |001i , |110i , |111i , e quello ssato da Z2Z3 è attraversato da
|000i , |100i , |011i , |111i .
Possiamo notare che gli stati |000i e |111i sono comuni ad entrambi i sottospazi, ma allora Vs non è altro che lo span degli stati |000i e
|111i .
Inoltre, dato che
Z1Z3 = (Z1Z2) ? (Z2Z3) = (Z ⊗ Z ⊗ I) ? (I ⊗ Z ⊗ Z)
I = (Z1Z2)2 = (Z ⊗ Z ⊗ I) ? (Z ⊗ Z ⊗ I) ,
dove con ? indichiamo il prodotto in Gn, si ha
S = hZ1Z2, Z2Z3i .
@
In questo caso particolare abbiamo determinato Vs semplicemente
osservando gli stati stabilizzati da due operatori di S, abbiamo cioè descritto Vs a partire dai suoi generatori; in questo modo il gruppo
è stato descritto in modo compatto.
Per vedere se un operatore è stabilizzato da un gruppo S basta vericare che è stabilizzato dai generatori, poichè poi è stabilizzato automaticamente dai prodotti dei suoi generatori.
Ogni sottogruppo S del gruppo di Pauli può essere utilizzato come stabilizzatore per lo spazio vettoriale banale.
Ad esempio, consideriamo il sottogruppo di G1costituito da {±I, ±X} .
Ovviamente l'unica soluzione di
(−I) |ψi = |ψi
è |ψi = 0, e quindi {±I, ±X} è lo stabilizzatore dello spazio vetto- riale banale.
Il seguente teorema fornisce le condizioni necessarie per le quali un sottoinsieme di Gn sia lo stabilizzatore di uno spazio vettoriale non
Teorema 4.1
Due condizioni necessarie anchè S sia lo stabilizzatore di uno spazio vettoriale non banale Vs sono:
(a) gli elementi di S commutano;
(b) −I non è un elemento di S (e di conseguenza anche ±iI /∈ S). Dim.
Sia VS uno spazio non banale, quindi contiene un vettore diverso da
zero che indichiamo con |ψi .
Siano, inoltre, M ed N due elementi di S, dunque sono prodotti tensoriali di matrici di Pauli.
Come conseguenza delle proprietà delle matrici di Pauli, M ed N sono matrici tali che
M N = −N M o M N = N M.
Per dimostrare (a) supponiamo che MN = −NM e facciamo vedere che questo porta ad un assurdo.
Se −NM = MN, abbiamo che
− |ψi = −N M |ψi = M N |ψi = |ψi
dove le prime e le ultime due uguaglianze derivano dal fatto che M ed N stabilizzano |ψi. Allora
− |ψi = |ψi ,
il che implica che |ψi è il vettore zero, assurdo poichè è in contrad- dizione con le ipotesi.
Per dimostrare la seconda condizione, ovvero che −I /∈ S, basta semplicemente notare che se −I è un elemento di S allora abbiamo −I |ψi = |ψi ,il che porta alla stessa contraddizione di prima.
E' conveniente, per indicare i generatori di uno stabilizzatore, uti- lizzare lo spazio dei vettori binari.
Indichiamo un generatore generico
g = U1⊗ U2⊗ . . . ⊗ Un
dove le matrici Uisono matrici di Pauli, come vettore di Z2n2 , (a| b) ,
dove le matrici Ui sono matrici di Pauli e per ogni i ∈ {1, . . . , n}
ai = ( 1 se Ui = X o Y 0 se Ui = I o Z e bi = ( 1 se Ui = Z o Y 0 se Ui = I o X (4.2) Per esempio, X1X3Z5Y6Z7Y8 = X ⊗ I ⊗ X ⊗ I ⊗ Z ⊗ Y ⊗ Z ⊗ Y è indicato come (10100101| 00001111) .
Uno stabilizzatore con m generatori, quindi, può essere descritto da una matrice m × 2n, che ha per righe gli m generatori. Tale matrice prende il nome di matrice di controllo1.
Esempio:
La matrice di controllo di un codice di Steane a sette qubit, che ha per generatori:
g1 = I I I X X X X
g2 = I X X I I X X
1così chiamata perchè gioca un ruolo, nella teoria dei codici stabilizzatori, analogo alla
g3 = X I X I X I X g4 = I I I Z Z Z Z g5 = I Z Z I I Z Z g6 = Z I Z I Z I Z, è 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 . (4.3) @
Un collegamento utile tra l'indipendenza dei generatori e la matrice di controllo è stabilito dalla seguente proposizione:
Proposizione 4.2
Sia S = hg1, . . . , gli ⊂ Gn tale che −I /∈ S; allora i generatori
g1, . . . , gl sono indipendenti se e solo se le corrispondenti righe della
matrice di controllo sono linearmente indipendenti. Dim.
Dimostriamo la contronominale. Indichiamo con r (g) il vettore 2n−dimensionale che corrisponde alla riga del generatore g della matrice di controllo.
Possiamo osservare che ∀i g2
i = gi e che
r (g) + r (g0) = r (gg0) .
In questo modo le righe della matrice di controllo sono linearmente dipendenti e vale
X
i
air (gi) = 0,
con aj 6= 0 per qualche j, se e solo se Qigiai è uguale all'identità, a
meno di un fattore moltiplicativo.
Ma −I /∈ S, in modo che il fattore moltiplicativo deve essere 1, e l'ultima condizione corrisponde alla condizione
gj = gj−1 =
Y
i6=j
gai
i ,
e quindi g1, . . . , gl non sono generatori indipendenti.
@
Altri risultati utili per il nostro studio sono i seguenti: Proposizione 4.3
Sia S = hg1, . . . , gli ⊂ Gn generato da l generatori linearmente
indipendenti tale che −I /∈ S. Fissiamo i nell'intervallo 1, . . . , l. Allora esiste g ∈ Gn tale che
ggig† = −gi e ggjg†= gj ∀j 6= i,
dove con g† indichiamo il coniugio (coniugato trasposto).
Dim.
Sia C la matrice di controllo associata ai generatori g1, . . . , gl. Le
righe di C sono linearmente indipendenti per la proposizione 5.2, quindi esiste un vettore 2n-dimensionale x tale che
CΛx = ei,
dove ei è un vettore l−dimensionale che ha 1 nella posizione i-esima
Λ = 0 I
I 0
.
Sia g tale che r (g) = xT. Allora, per denizione di x, abbiamo che
r (gj) Λr (g) T = 0, r (gi) Λr (g) T = 1 per i 6= j e quindi ggig† = −gi e ggjg† = gj per i 6= j. @
Un importante risultato per il nostro studio è il seguente: Proposizione 4.4
Sia S = hg1, . . . , gn−ki ⊂ Gn generato da n − k elementi, linear-
mente indipendenti e che commutano, tale che −I /∈ S. Allora VS è
uno spazio vettoriale 2k−dimensionale.
Dim.
Sia x = (x1, . . . , xn−k)un vettore di n−k elementi di Z2. Deniamo
PSx ≡ Qn−k j=1 (I + (−1) xj gj) 2n−k . Poiché (I+gj)
2 è il proiettore sull'autospazio di gj, relativo all'auto-
valore 1, è facile vedere che P(0...0)
S è il proiettore su VS. Per la
proposizione 4.3 ∀ x esiste gx ∈ Gn tale che
gxP (0...0) S (gx)
†
e quindi la dimensione di Px
S è la stessa della dimensione di VS.
Inoltre, per x distinti i Px
S sono ortogonali.
Concludiamo osservando che
I =X
x
PSx.
I è un proiettore sullo spazio 2n−dimensionale, mentre il lato destro
dell'uguaglianza è somma su 2n−k proiettori su spazi che sono orto-
gonali che hanno la stessa dimensione di VS, e quindi la dimensione
di VS è 2k.
@
In tutta la nostra successiva discussione del formalismo stabilizzato- re usiamo la convenzione che gli stabilizzatori sono sempre descrit- ti in termini di generatori indipendenti e commutativi e tale che −I /∈ S.