Sari la conținutul principal

Discretizarea erorilor

Până acum am analizat erorile XX și erorile ZZ în contextul codului Shor cu 9 qubiți, iar în această secțiune vom analiza erori arbitrare. Vom constata că, pentru a gestiona astfel de erori, nu trebuie să facem nimic diferit față de ceea ce am discutat deja; capacitatea de a corecta erori XX, erori ZZ sau pe ambele implică automat capacitatea de a corecta erori arbitrare. Acest fenomen este uneori numit discretizarea erorilor.

Erori unitare ale qubitului

Să începem cu erorile unitare pe un singur qubit. De exemplu, o astfel de eroare ar putea corespunde unei rotații foarte mici a sferei Bloch, reprezentând poate o eroare cauzată de un Gate care nu este perfect. Sau ar putea fi orice altă operație unitară asupra unui qubit, nu neapărat una apropiată de identitate.

S-ar putea părea că este dificil să corectezi astfel de erori. La urma urmei, există infinit de multe erori posibile de acest tip, și este de neconceput că am putea identifica fiecare eroare exact și apoi să o anulăm. Cu toate acestea, atâta timp cât putem corecta un bit-flip, un phase-flip sau pe ambele, vom reuși să corectăm o eroare unitară arbitrară pe un singur qubit folosind procedurile descrise anterior în lecție.

Pentru a înțelege de ce este astfel, să recunoaștem mai întâi că putem exprima o matrice unitară arbitrară 2×22 \times 2 U,U, care reprezintă o eroare pe un singur qubit, ca o combinație liniară a celor patru matrice Pauli (inclusiv matricea identitate).

U=αI+βX+γY+δZU = \alpha \mathbb{I} + \beta X + \gamma Y + \delta Z

Cum vom vedea, atunci când se rulează circuitele de detecție a erorilor, măsurătorile care ne furnizează biții de sindrom colapsează efectiv starea codificării în mod probabilistic, la una în care o eroare (sau absența unei erori) reprezentată de una dintre cele patru matrice Pauli a avut loc. (Rezultă din faptul că UU este unitar că numerele α,\alpha, β,\beta, γ,\gamma, și δ\delta trebuie să satisfacă α2+β2+γ2+δ2=1,\vert\alpha\vert^2 + \vert\beta\vert^2 + \vert\gamma\vert^2 + \vert\delta\vert^2 = 1, și într-adevăr, valorile α2,\vert\alpha\vert^2, β2,\vert\beta\vert^2, γ2,\vert\gamma\vert^2, și δ2\vert\delta\vert^2 sunt probabilitățile cu care starea codificată colapsează la una pentru care eroarea Pauli corespunzătoare a apărut.)

Pentru a explica cum funcționează aceasta în detaliu, va fi convenabil să folosim indici pentru a indica pe care qubit acționează o anumită operație unitară. De exemplu, folosind convenția de numerotare a qubiților din Qiskit (Q8,Q7,,Q0)(\mathsf{Q}_8,\mathsf{Q}_7,\ldots,\mathsf{Q}_0) pentru a numerota cei 9 qubiți folosiți pentru codul Shor, avem aceste expresii pentru diverse operații unitare pe qubiți individuali, unde în fiecare caz tensorăm matricea unitară cu matricea identitate pe fiecare alt qubit.

X0=IIIIIIIIXZ4=IIIIZIIIIU7=IUIIIIIII\begin{aligned} X_0 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes X \\[1.5mm] Z_4 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \\[1.5mm] U_7 & = \mathbb{I} \otimes U \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \end{aligned}

Astfel, în particular, pentru o operație unitară dată U,U, putem specifica acțiunea lui UU aplicat qubitului kk prin formula următoare, similară cu cea anterioară, cu excepția că fiecare matrice reprezintă o operație aplicată qubitului k.k.

Uk=αIk+βXk+γYk+δZkU_k = \alpha \mathbb{I}_k + \beta X_k + \gamma Y_k + \delta Z_k

Acum presupunem că ψ\vert\psi\rangle este codificarea cu 9 qubiți a unei stări de qubit. Dacă eroarea UU are loc pe qubitului k,k, obținem starea Ukψ,U_k \vert\psi\rangle, care poate fi exprimată ca o combinație liniară de operații Pauli ce acționează asupra ψ\vert\psi\rangle după cum urmează.

Ukψ=αψ+βXkψ+γYkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + \gamma Y_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

În acest moment, să facem substituția Y=iXZ.Y = iXZ.

Ukψ=αψ+βXkψ+iγXkZkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + i \gamma X_kZ_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

Acum să luăm în considerare pașii de detecție și corecție a erorilor descriși anterior. Putem să ne gândim la rezultatele măsurătorilor pentru cele trei verificări de paritate ale codului interior împreună cu cea a codului exterior colectiv, ca la un singur sindrom format din 8 biți. Imediat înainte de măsurătorile propriu-zise în baza standard care produc acești biți de sindrom, starea are forma următoare.

αI syndromeψ+βXk syndromeXkψ+iγXkZk syndromeXkZkψ+δZk syndromeZkψ\begin{gathered} \alpha\,\vert \mathbb{I} \text{ syndrome}\rangle \otimes \vert\psi\rangle \\ + \beta\,\vert X_k \text{ syndrome}\rangle \otimes X_k\vert\psi\rangle \\ + i \gamma\,\vert X_k Z_k \text{ syndrome}\rangle \otimes X_k Z_k\vert\psi\rangle \\ + \delta\,\vert Z_k \text{ syndrome}\rangle \otimes Z_k\vert\psi\rangle \end{gathered}

Pentru a fi clar, avem două sisteme în acest moment. Sistemul din stânga este cel format din 8 qubiți pe care îi vom măsura pentru a obține sindromul, unde I syndrome,\vert \mathbb{I} \text{ syndrome}\rangle, Xk syndrome,\vert X_k \text{ syndrome}\rangle, și celelalte, se referă la oricare stare în baza standard a celor 8 qubiți care este compatibilă cu eroarea corespunzătoare (sau non-eroarea). Sistemul din dreapta este cel format din 9 qubiți pe care îi folosim pentru codificare.

Observă că aceste două sisteme sunt acum corelate (în general), și acesta este cheia pentru înțelegerea funcționării. Prin măsurarea sindromului, starea celor 9 qubiți din dreapta colapsează efectiv la una în care o eroare Pauli compatibilă cu sindromul măsurat a fost aplicată unuia dintre qubiți. Mai mult, sindromul însuși furnizează suficiente informații pentru a putea anula eroarea și a recupera codificarea originală ψ.\vert\psi\rangle.

În particular, dacă qubiții de sindrom sunt măsurați și sunt efectuate corecțiile corespunzătoare, obținem o stare care poate fi exprimată ca o matrice densitate,

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

unde

ξ=α2I syndromeI syndrome+β2Xk syndromeXk syndrome+γ2XkZk syndromeXkZk syndrome+δ2Zk syndromeZk syndrome.\begin{aligned} \xi = & \vert\alpha\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[1mm] & + \vert\beta\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[1mm] & + \vert\gamma\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[1mm] & + \vert\delta\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert. \end{aligned}

Esențial, aceasta este o stare produs: avem codificarea originală, necoroptă, ca factor tensor din dreapta, iar în stânga avem o matrice densitate ξ\xi care descrie un sindrom de eroare aleator. Nu mai există nicio corelație cu sistemul din dreapta, cel de care ne pasă, deoarece erorile au fost corectate. În acest moment putem renunța la qubiții de sindrom sau îi putem reseta pentru a-i folosi din nou. Aceasta este modalitatea prin care aleatorietatea — sau entropia — creată de erori este eliminată din sistem.

Aceasta este discretizarea erorilor pentru cazul special al erorilor unitare. În esență, prin măsurarea sindromului, proiectăm efectiv eroarea pe o eroare descrisă de o matrice Pauli.

La prima vedere, poate părea prea bine pentru a fi adevărat că putem corecta erori unitare arbitrare în acest mod, inclusiv erori minuscule, greu de observat în mod individual. Dar ceea ce este important de înțeles aici este că aceasta este o eroare unitară pe un singur qubit, și prin designul codului, o operație pe un singur qubit nu poate schimba starea qubitului logic care a fost codificat. Tot ceea ce poate face este să mute starea în afara subspatiului de codificări valide, dar atunci detecțiile de erori colapsează starea, iar corecțiile o readuc la punctul de start.

Erori arbitrare ale qubitului

În final, să luăm în considerare erori arbitrare care nu sunt neapărat unitare. Mai precis, vom considera o eroare descrisă de un canal arbitrar de qubit Φ.\Phi. De exemplu, acesta ar putea fi un canal de dephasing sau depolarizare, un canal de resetare, sau un canal ciudat la care nu ne-am mai gândit înainte.

Primul pas este să luăm în considerare orice reprezentare Kraus a lui Φ.\Phi.

Φ(σ)=jAjσAj\Phi(\sigma) = \sum_j A_j \sigma A_j^{\dagger}

Acesta este un canal de qubit, deci fiecare AjA_j este o matrice 2×22\times 2, pe care o putem exprima ca o combinație liniară de matrice Pauli.

Aj=αjI+βjX+γjY+δjZA_j = \alpha_j \mathbb{I} + \beta_j X + \gamma_j Y + \delta_j Z

Aceasta ne permite să exprimăm acțiunea erorii Φ\Phi pe un qubit ales kk în termeni de matrice Pauli după cum urmează.

Φk(ψψ)=j(αjIk+βjXk+γjYk+δjZk)ψψ(αjIk+βjXk+γjYk+δjZk)\Phi_k \bigl( \vert\psi\rangle\langle\psi\vert\bigr) = \sum_j (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k) \vert\psi\rangle\langle\psi\vert (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k)^{\dagger}

Pe scurt, am extins pur și simplu toate matricele noastre Kraus ca combinații liniare de matrice Pauli.

Dacă acum calculăm și măsurăm sindromul de eroare și corectăm orice erori care sunt relevate, vom obține o stare similară cu cea din cazul erorii unitare:

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

unde de această dată avem

ξ=j(αj2I syndromeI syndrome+βj2Xk syndromeXk syndrome+γj2XkZk syndromeXkZk syndrome+δj2Zk syndromeZk syndrome).\begin{aligned} \xi = & \sum_j \Bigl(\vert\alpha_j\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[-3mm] & \qquad + \vert\beta_j\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\gamma_j\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\delta_j\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert \Bigr). \end{aligned}

Detaliile sunt puțin mai complicate și nu sunt prezentate aici. Din punct de vedere conceptual, ideea este identică cu cazul unitar.

Generalizare

Discretizarea erorilor se generalizează la alte coduri cuantice de corectare a erorilor, inclusiv cele care pot detecta și corecta erori pe mai mulți qubiți. În astfel de cazuri, erorile pe mai mulți qubiți pot fi exprimate ca produse tensoriale de matrice Pauli, iar diferite sindroame corespunzătoare specifică corecții ale operațiilor Pauli care pot fi efectuate pe mai mulți qubiți, nu doar pe unul singur.

Din nou, prin măsurarea sindromului, erorile sunt proiectate sau colapsate efectiv pe un set discret de posibilități reprezentate de produse tensoriale de matrice Pauli, și corectând acele erori Pauli, putem recupera starea codificată originală. Între timp, orice aleatorietate generată în proces este transferată în qubiții de sindrom, care sunt eliminați sau resetați, eliminând astfel aleatorietatea generată în acest proces din sistemul care stochează codificarea.