Codul Shor cu 9 qubiți
Acum ne îndreptăm atenția către codul Shor cu 9 qubiți, un cod de corecție a erorilor cuantice obținut prin combinarea celor două coduri din secțiunea anterioară: codul de repetare de 3 biți pentru qubiți, care permite corectarea unei singure erori de inversare a bitului, și versiunea modificată a acelui cod, care permite corectarea unei singure erori de inversare a fazei.
Descrierea codului
Codul Shor cu 9 qubiți este codul pe care îl obținem prin concatenarea celor două coduri din secțiunea anterioară. Aceasta înseamnă că aplicăm mai întâi o codificare, care codifică un qubit în trei, și apoi aplicăm cealaltă codificare fiecăruia dintre cei trei qubiți folosiți pentru prima codificare, rezultând nouă qubiți în total.
Mai precis, deși am putea aplica cele două coduri în oricare ordine în acest caz particular, vom face alegerea de a aplica mai întâi versiunea modificată a codului de repetare de 3 biți (care detectează erorile de inversare a fazei), și apoi vom codifica fiecare dintre cei trei qubiți rezultați în mod independent folosind codul original de repetare de 3 biți (care detectează erorile de inversare a bitului). Iată o reprezentare prin diagrama de Circuit a acestei codificări.
Așa cum sugerează figura, vom gândi cei nouă qubiți ai codului Shor ca fiind grupați în trei blocuri de câte trei qubiți, unde fiecare bloc este obținut din al doilea pas de codificare (care este codul obișnuit de repetare de 3 biți). Codul obișnuit de repetare de 3 biți, care este aplicat de trei ori independent, se numește codul intern în acest context, în timp ce codul extern este codul folosit pentru primul pas de codificare, și anume versiunea modificată a codului de repetare de 3 biți care detectează erorile de inversare a fazei.
Putem specifica alternativ codul descriind modul în care cele două stări din baza standard pentru qubit-ul original se codifică.
Odată ce știm acest lucru, putem determina prin liniaritate cum se codifică un vector de stare arbitrar al qubit-ului.
Corectarea erorilor de inversare a bitului și a fazei
Erori și porți CNOT
Pentru a analiza modul în care erorile și afectează codificările qubiților, atât pentru codul Shor cu 9 qubiți, cât și pentru alte coduri, va fi util să observăm câteva relații simple între aceste erori și porțile CNOT. Pe măsură ce începem să analizăm codul Shor cu 9 qubiți, acesta este un moment rezonabil pentru a face o pauză și a face acest lucru.
Diagramele de Circuit de mai jos ilustrează trei relații de bază între porțile și porțile CNOT. Mai precis, aplicarea unei porți pe qubit-ul țintă înainte de un CNOT este echivalentă cu inversarea ordinii și efectuarea mai întâi a CNOT, dar aplicarea unei porți pe qubit-ul de control înainte de un CNOT este echivalentă cu aplicarea porților pe ambii qubiți după CNOT. În final, aplicarea porților pe ambii qubiți înainte de un CNOT este echivalentă cu efectuarea mai întâi a CNOT și apoi aplicarea unei porți pe qubit-ul de control. Aceste relații pot fi verificate prin efectuarea înmulțirilor de matrice necesare sau calculând efectul Circuit-urilor asupra stărilor din baza standard.
Situația este similară pentru porțile , cu excepția că rolurile qubiților de control și țintă se inversează. În particular, avem cele trei relații descrise de următoarele circuite cuantice.
Corectarea erorilor de inversare a bitului
Acum vom analiza modul în care erorile pot fi detectate și corectate folosind codul Shor cu 9 qubiți, începând cu erorile de inversare a bitului — la care ne vom referi în general ca erori de acum înainte, pentru concizie.
Pentru a detecta și corecta erorile , putem trata pur și simplu fiecare dintre cele trei blocuri din codificare separat. Fiecare bloc este o codificare a unui qubit folosind codul de repetare de 3 biți, care protejează împotriva erorilor — deci prin efectuarea măsurătorilor sindromului și a corecțiilor de erori descrise anterior pentru fiecare bloc, putem detecta și corecta până la o eroare per bloc. În particular, dacă există cel mult o eroare pe cei nouă qubiți ai codificării, această eroare va fi detectată și corectată prin această procedură.
Pe scurt, corectarea erorilor de inversare a bitului este o problemă simplă pentru acest cod, datorită faptului că codul intern corectează erorile de inversare a bitului.
Corectarea erorilor de inversare a fazei
În continuare vom analiza erorile de inversare a fazei, sau erorile pe scurt. De data aceasta nu este la fel de clar ce ar trebui să facem, deoarece codul extern este cel care detectează erorile , dar codul intern pare să fie cumva „în cale", făcând detectarea și corectarea acestor erori puțin mai dificilă. Presupunem că o eroare apare pe unul dintre cei 9 qubiți ai codului Shor, cum ar fi cel indicat în această diagramă.
Am observat deja ce se întâmplă când apare o eroare atunci când folosim codul de repetare de 3 biți — aceasta este echivalentă cu o eroare care apare înainte de codificare. În contextul codului Shor cu 9 qubiți, aceasta înseamnă că o eroare pe oricare dintre cei trei qubiți dintr-un bloc are întotdeauna același efect, care este echivalent cu o eroare apărând pe qubit-ul corespunzător înainte ca codul intern să fie aplicat.
De exemplu, diagrama de Circuit de mai sus este echivalentă cu diagrama următoare. Acest lucru poate fi demonstrat folosind relațiile dintre porțile și CNOT descrise mai sus, sau pur și simplu evaluând Circuit-urile pe o stare arbitrară de qubit
Aceasta sugerează o opțiune pentru detectarea și corectarea erorilor , care este de a decoda codul intern, lăsându-ne cu cei trei qubiți folosiți pentru codificarea externă împreună cu șase qubiți de spațiu de lucru inițializați. Putem apoi verifica acești trei qubiți ai codului extern pentru erori , și în final putem re-codifica folosind codul intern, pentru a reveni la codificarea cu 9 qubiți pe care o obținem din codul Shor. Dacă detectăm o eroare , o putem fie corecta înainte de re-codificarea cu codul intern, fie o putem corecta după re-codificare, prin aplicarea unei porți oricăruia dintre qubiții din acel bloc.
Iată o diagramă de Circuit care include Circuit-ul de codificare și eroarea sugerată mai sus împreună cu pașii tocmai descriși (dar nu și pasul de corecție propriu-zis).
În acest exemplu particular, măsurătoarea sindromului este care localizează eroarea ca apărând pe unul dintre qubiții din blocul din mijloc.
Un avantaj al corectării erorilor după pasul de re-codificare, față de înainte, este că putem simplifica Circuit-ul de mai sus. Următorul Circuit este echivalent, dar necesită cu patru porți CNOT mai puțin.
Din nou, sindromul nu indică ce qubit a fost afectat de o eroare , ci care bloc a experimentat o eroare , efectul fiind același indiferent de ce qubit din bloc a fost afectat. Putem apoi corecta eroarea aplicând o poartă oricăruia dintre cei trei qubiți ai blocului care a fost afectat.
Ca o paranteză, vedem aici un exemplu de degenerare într-un cod cuantic de corecție a erorilor, unde suntem capabili să corectăm anumite erori (erorile în acest caz) fără a le putea identifica în mod unic.
Erori simultane de inversare a bitului și a fazei
Am văzut acum cum pot fi detectate și corectate atât erorile , cât și erorile folosind codul Shor cu 9 qubiți, și în particular cum pot fi detectate și corectate cel mult o eroare sau cel mult o eroare . Acum să presupunem că atât o eroare de inversare a bitului, cât și una de inversare a fazei apar, posibil pe același qubit. Se dovedește că nu trebuie făcut nimic diferit în această situație față de ceea ce s-a discutat deja — codul este capabil să detecteze și să corecteze până la o eroare și o eroare simultan, fără modificări suplimentare.
Mai precis, erorile sunt detectate prin aplicarea măsurătorii obișnuite a sindromului codului de repetare de 3 biți, care se efectuează separat pe fiecare dintre cele trei blocuri de trei qubiți; iar erorile sunt detectate prin procedura descrisă tocmai mai sus, care este echivalentă cu decodificarea codului intern, efectuarea măsurătorii sindromului pentru codul de repetare de 3 biți modificat pentru inversările de fază, și apoi re-codificarea. Acești doi pași de detectare a erorilor — precum și corecțiile corespunzătoare — pot fi efectuați complet independent unul de celălalt, și de fapt nu contează în ce ordine sunt efectuați.
Pentru a vedea de ce este așa, să luăm în considerare exemplul reprezentat în diagrama de Circuit de mai jos, unde atât o eroare , cât și o eroare au afectat qubit-ul de jos din blocul din mijloc.
Să observăm mai întâi că ordinea erorilor nu contează, în sensul că inversarea poziției erorilor și produce un Circuit echivalent. Pentru a fi clar, și nu comută, ele anticomută:
Aceasta implică faptul că următorul Circuit este echivalent cu cel de mai sus cu un factor de fază globală de
Putem muta acum eroarea la fel ca înainte pentru a obține un alt Circuit echivalent.
În acest moment este evident că dacă procedura de detectare și corectare a erorilor este efectuată mai întâi, eroarea va fi corectată, după care procedura de detectare și corectare a erorilor poate fi efectuată pentru a elimina eroarea ca înainte.
Alternativ, procedura de detectare și corectare a erorilor poate fi efectuată mai întâi. Faptul că această procedură funcționează conform așteptărilor, chiar și în prezența uneia sau mai multor erori , decurge din faptul că porțile pe oricare dintre cei nouă qubiți folosiți pentru codificare comută cu toate porțile din Circuit-ul nostru simplificat pentru măsurarea sindromului pentru erorile . Astfel, această măsurătoare a sindromului va identifica în continuare corect care bloc a fost afectat de o eroare . Faptul că o eroare pe orice bloc este corectată prin aplicarea unei porți oricărui qubit din acel bloc, chiar dacă a apărut și o eroare , decurge din același argument de mai sus privind ordinea porților și care ne dă Circuit-uri echivalente cu o fază globală.
Rezultă că codul Shor cu 9 qubiți poate corecta o eroare , o eroare , sau ambele, pe oricare dintre cei nouă qubiți folosiți pentru acest cod. De fapt, putem corecta mai multe erori decât atât, inclusiv erori multiple (atâta timp cât cad în blocuri diferite) sau erori multiple (atâta timp cât cel mult un bloc experimentează un număr impar dintre ele) — dar în continuare, ceea ce va fi cel mai relevant pentru scopurile acestei lecții este că putem corecta o eroare , o eroare , sau ambele pe orice un qubit.
Reducerea erorilor pentru erori aleatoare
Înainte de a trece la ultima secțiune a lecției, care privește erorile cuantice arbitrare, să luăm în considerare pe scurt performanța codului Shor cu 9 qubiți atunci când erorile reprezentate de matricele Pauli apar aleatoriu pe qubiți.
Pentru a fi mai concreți, să luăm în considerare un model de zgomot simplu în care erorile apar independent pe qubiți, cu fiecare qubit experimentând o eroare cu probabilitatea , și fără nicio corelație între erorile pe qubiți diferiți — pe linii similare cu un canal simetric binar pentru biți clasici. Am putea atribui probabilități diferite pentru apariția erorilor și , dar pentru a păstra lucrurile cât mai simple posibil, vom considera scenariul cel mai defavorabil pentru codul Shor cu 9 qubiți, și anume că o eroare apare pe fiecare dintre qubiții afectați. O eroare , apropo, este echivalentă (până la un factor de fază globală irelevant) cu o eroare și una apărând pe același qubit, dat fiind că Aceasta explică aparenta noastră neglijare a erorilor până în acest punct.
Acum, presupunând că este un qubit într-o anumită stare pe care dorim să o protejăm împotriva erorilor, putem lua în considerare opțiunea de a folosi codul Shor cu 9 qubiți. O întrebare naturală de pus este: „Ar trebui să îl folosim?"
Răspunsul nu este neapărat „da". Dacă există prea mult zgomot, adică în acest context că este prea mare, folosirea codului Shor ar putea de fapt înrăutăți lucrurile — la fel cum codul de repetare de 3 biți este mai rău decât niciun cod atunci când este mai mare decât o jumătate. Dar, dacă este suficient de mic, atunci răspunsul este „da", ar trebui să folosim codul, deoarece va scădea probabilitatea ca starea codificată să devină coruptă. Să vedem de ce este așa, și ce înseamnă ca să fie prea mare sau suficient de mic pentru acest cod.
Codul Shor corectează orice eroare Pauli pe un singur qubit, inclusiv o eroare desigur, dar nu corectează corect două sau mai multe erori . Pentru a fi clar, presupunem că folosim corecțiile pentru erorile și descrise anterior în secțiune. (Desigur, dacă am ști în avans că trebuie să ne îngrijorăm doar de erorile , am alege în mod natural corecțiile diferit — dar asta este trișarea modelului de zgomot, și am putea întotdeauna să schimbăm modelul selectând erori Pauli diferite pentru a face această nouă alegere a corecțiilor să eșueze ori de câte ori doi sau mai mulți qubiți sunt afectați de erori.)
Deci, codul protejează atâta timp cât cel mult unul dintre cei nouă qubiți este afectat de o eroare, ceea ce se întâmplă cu probabilitatea
Altfel, cu probabilitatea
codul nu reușește să protejeze
Mai precis, ceea ce înseamnă asta în acest context este că, până la o fază globală, o operație Pauli non-identitate va fi aplicată qubit-ului nostru (ca qubit logic). Adică, dacă erorile și sunt detectate și corectate pentru codul Shor așa cum s-a descris anterior în lecție, vom rămâne cu codificarea unei stări care este echivalentă, până la o fază globală, cu codificarea unei operații Pauli non-identitate aplicate stării originale a lui Un mod mai succint de a spune asta este că va fi apărut o eroare logică. Aceasta poate sau nu poate afecta starea originală a lui — sau cu alte cuvinte qubit-ul logic pe care l-am codificat cu nouă qubiți fizici — dar, în scopul acestei analize, considerăm că acest eveniment înseamnă eșec.
Pe de altă parte, dacă nu am folosi codul, singurul nostru qubit ar suferi un destin similar (de a fi supus unei operații Pauli non-identitate) cu probabilitatea Codul ajută atunci când prima probabilitate este mai mică decât a doua:
Iată un grafic care ilustrează, pentru valori foarte mici ale lui că codul oferă un avantaj, cu punctul de echilibru apărând la aproximativ
Dacă este mai mic decât acest punct de echilibru, atunci codul ajută; la punctul de echilibru probabilitățile sunt egale, deci ne irosim pur și simplu timpul și 8 qubiți dacă folosim codul; și dincolo de punctul de echilibru nu ar trebui în mod absolut să folosim acest cod deoarece crește șansa unei erori logice pe
Trei și un sfert procente sau cam așa ceva poate nu pare un punct de echilibru foarte bun, mai ales comparativ cu care este punctul de echilibru analogic pentru codul de repetare de 3 biți pentru informația clasică. Această diferență se datorează, în mare parte, faptului că informația cuantică este mai fragilă și mai greu de protejat decât informația clasică. Dar, de asemenea — recunoscând că codul Shor cu 9 qubiți reprezintă o descoperire strălucită, ca primul cod cuantic de corecție a erorilor din lume — trebuie recunoscut că în termeni practici nu este de fapt un cod foarte bun.