Dlaczego protokoły korekcji błędów działają tylko wtedy, gdy na początku poziomy błędów są już znacząco niskie?

15

Kwantowa korekcja błędów jest fundamentalnym aspektem obliczeń kwantowych, bez których obliczenia kwantowe na dużą skalę są praktycznie niewykonalne.

Jednym aspektem tolerancyjnego na błędy obliczenia kwantowego, o którym często się wspomina, jest to, że do każdego protokołu korekcji błędów przypisano próg częstości błędów . Zasadniczo, aby dane obliczenia były chronione przed błędami za pośrednictwem danego protokołu, poziom błędu bramek musi być poniżej pewnego progu.

Innymi słowy, jeśli poziomy błędów pojedynczych bramek nie są wystarczająco niskie, wówczas nie można zastosować protokołów korekcji błędów, aby uczynić obliczenia bardziej wiarygodnymi.

Dlaczego to? Dlaczego na początku nie można zmniejszyć poziomów błędów, które nie są jeszcze bardzo niskie?

glS
źródło
W pewnym momencie jest po prostu hałas. Czy to dziwne, że istnieje punkt, w którym korekcja błędów z większym prawdopodobieństwem koryguje właściwe części w hałas?
Dyskretna jaszczurka
1
@Discretelizard nie tyle, że może jeden, ale progi są zwykle bardzo niskie (lub wysokie pod względem wierności). Dlaczego to jest takie?
glS

Odpowiedzi:

4

Chcemy porównać to stan wyjścia z pewnego stanu idealnego, tak normalnie, wierność, jest stosowany, ponieważ jest to dobry sposób, aby powiedzieć, jak również możliwe wyniki pomiarów p porównać z możliwych wyników pomiarowych | * F , gdzie | * F jest stan wyjściowy idealny i ρ jest osiągnięty (potencjalnie po zmieszaniu) stan po jakimś procesie hałasu. Ponieważ jesteśmy porównując stany, to F ( | * F , ρ ) = F(|ψ,ρ)ρ|ψ|ψρ

F(|ψ,ρ)=ψ|ρ|ψ.

Opisując zarówno procesów korekcyjnych hałasu i błąd za pomocą operatorów Kraus, gdzie jest kanał hałas z operatorami Kraus N I i E jest kanałem korekcji błędów z Kraus operatorzy E j , stan po hałasu jest ρ ' = N ( | * F ψ | ) = i N i | * F * F | N i, a stan po korekcji szumu i błędu wynosi ρ = ENNiEEj

ρ=N(|ψψ|)=iNi|ψψ|Ni
ρ=EN(|ψψ|)=i,jEjNi|ψψ|NiEj.

Wierność ta jest podana przez

F(|ψ,ρ)=ψ|ρ|ψ=i,jψ|EjNi|ψψ|NiEj|ψ=i,jψ|EjNi|ψψ|EjNi|ψ=i,j|ψ|EjNi|ψ|2.

Aby protokół korekcji błędów miał jakiekolwiek zastosowanie, chcemy, aby wierność po korekcji błędów była większa niż wierność po szumie, ale przed korektą błędu, tak aby stan z korekcją błędów był mniej odróżnialny od stanu nieskorygowanego. Oznacza to, że chcemy To daje

F(|ψ,ρ)>F(|ψ,ρ).
Ponieważ wierność jest dodatnia, można to przepisać jakoi,j| * F| EjNi| * F| 2>i| * F| Ni| * F| 2.
i,j|ψ|EjNi|ψ|2>i|ψ|Ni|ψ|2.
i,j|ψ|EjNi|ψ|2>i|ψ|Ni|ψ|2.

Dzielenie do skorygowania części N c , dla których EN c ( | * F * F | ) = | * F * F | a nie do naprawienia część, N N c , dla których EN N C ( | * F * F | ) = σ . Oznaczające prawdopodobieństwo poprawienia błędu jako P cNNcENc(|ψψ|)=|ψψ|NncENnc(|ψψ|)=σPci nie można go skorygować (tj. wystąpiło zbyt wiele błędów, aby zrekonstruować stan idealny), ponieważ daje i , j | * F | E j N i | * F | 2 = p c + P n c* F | σ | * F P c , gdzie równość zostaną przejęte przez zakładając * F | σ | * F = 0Pnc

i,j|ψ|EjNi|ψ|2=Pc+Pncψ|σ|ψPc,
ψ|σ|ψ=0. To fałszywa „korekta” rzutuje na wynik ortogonalny do poprawnego.

Dla kubitów, z (równym) prawdopodobieństwem błędu na każdym kubicie jako p ( uwaga : nie jest to to samo, co parametr szumu, który musiałby zostać użyty do obliczenia prawdopodobieństwa błędu), prawdopodobieństwo posiadania błąd korygujący (przy założeniu, że n kubitów zostało użytych do zakodowania k kubitów, co pozwala na błędy do t kubitów, określone przez n - k 4 t singletona ) wynosi P cnpnktnk4t.

Pc=jt(nj)pj(1p)nj=(1p)n+np(1p)n1+12n(n1)p2(1p)n2+O(p3)=1(nt+1)pt+1+O(pt+2)

Ni=jαi,jPjPj χj,k=iαi,jαi,k

i|ψ|Ni|ψ|2=j,kχj,kψ|Pj|ψψ|Pk|ψχ0,,0,
χ0,0=(1p)n

1(nt+1)pt+1(1p)n.
ρ1ppt+1p

ppt+1pn=5t=1p0.29

Edytuj z komentarzy:

Pc+Pnc=1

i,j|ψ|EjNi|ψ|2=ψ|σ|ψ+Pc(1ψ|σ|ψ).

1(1ψ|σ|ψ)(nt+1)pt+1(1p)n,

1

Pokazuje to z grubsza przybliżenie, że korekcja błędów lub jedynie zmniejszenie wskaźników błędów nie wystarcza do obliczeń odpornych na uszkodzenia , chyba że błędy są bardzo niskie, w zależności od głębokości obwodu.

Mithrandir24601
źródło
Myślę, że próbujesz wyjaśnić, do jakiego poziomu błędu fizycznego prawdopodobieństwo błędów nie do naprawienia jest niskie? Zauważ, że progi tolerancji na awarie są mniejsze (rzędy wielkości dla wielu kodów)
M. Stern
@ M.Stern Więc jest to (bardzo przybliżone) oszacowanie, kiedy korekcja błędu „zmniejsza błąd” (tj. Zwiększa wierność o pewną wartość po zastosowaniu szumu), więc zdecydowanie nie jest to próg tolerancji na uszkodzenia, nie. Wykonanie korekcji błędów mogło zwiększyć wierność po szumie o pewną wartość, ale nie zresetowało go ani nic, więc wierność po prostu zmniejszy się (i błąd (błędy)) rozprzestrzeniają się, nawet jeśli korekcja błędu jest stale stosowana, pokazując korekcję błędów sam w sobie nie wystarcza na odporność na awarie
Mithrandir24601
Hm, glS będzie musiał ocenić, czy to odpowie na pytanie. W każdym razie jest to interesujące i dobrze napisane. Zakładasz więc, że stan jest ortogonalny, jeśli błędów nie da się naprawić, prawda? (Jest to z pewnością uzasadnione w wielu scenariuszach.) Inną skrajnością byłoby, gdy istnieje 50/50 szansa na logiczny błąd w przypadku błędów nie do naprawienia.
M. Stern
@ M.Stern Thanks! Tak, albo te stany są ortogonalne, albo przyjmują dolną granicę. Ponieważ porównywanie jednej dolnej granicy z drugą nie jest dobrym pomysłem, założyłem, że są one ortogonalne. Jeśli są jakieś zmiany, które Twoim zdaniem przydałyby się na końcu, zrób to! Hmm ... Myślę, że ryzyko błędu logicznego 50/50 doprowadziłoby do tego samego rezultatu, tylko z różnymi różnymi czynnikami na końcu
Mithrandir24601
4

Jest już dobra odpowiedź matematyczna, więc postaram się podać odpowiedź łatwą do zrozumienia.

Kwantowa korekcja błędów (QEC) jest (grupą) raczej złożonym algorytmem (algorytmami), który wymaga wielu działań (bramek) na i między kubitami. W QEC w zasadzie łączysz dwa kubity z trzecim kubitem pomocniczym (ancilla) i przenosisz informacje, jeśli pozostałe dwa są równe (pod pewnymi względami) do tego trzeciego kubita. Następnie czytasz te informacje z ancialla. Jeśli mówi ci, że nie są one równe, działasz na podstawie tych informacji (zastosuj korektę). Jak to może pójść nie tak, jeśli nasze kubity i bramy nie są idealne?

QEC może spowodować zanik informacji przechowywanych w kubitach. Każda z tych bram może zniszczyć przechowywane w nich informacje, jeśli nie zostaną wykonane perfekcyjnie. Więc jeśli samo wykonanie QEC niszczy więcej informacji, niż odzyskuje średnio, jest to bezużyteczne.

Myślisz, że znalazłeś błąd, ale go nie znalazłeś. Jeśli porównanie (wykonanie bramek) lub odczyt informacji (ancilla) jest niedoskonały, możesz uzyskać błędne informacje, a tym samym zastosować „złe poprawki” (czytaj: wprowadzaj błędy). Również, jeśli informacje w ancillas zanikną (lub zostaną zmienione przez hałas), zanim będzie można je odczytać, również błędny odczyt.

Celem każdego QEC jest oczywiście wprowadzenie mniej błędów, niż poprawia, więc musisz zminimalizować wyżej wymienione efekty. Jeśli wykonasz całą matematykę, znajdziesz dość surowe wymagania dotyczące kubitów, bramek i odczytów (w zależności od wybranego algorytmu QEC).

3244611user
źródło
4

Wersja klasyczna

Pomyśl o prostej strategii klasycznej korekcji błędów. Masz jeden bit, który chcesz zakodować,

000000111111
Zdecydowałem się zakodować go na 5 bitów, ale każda nieparzysta liczba byłaby wystarczająca (im więcej, tym lepiej). Załóżmy teraz, że wystąpiły pewne błędy odwracania bitów, więc mamy to
01010.
Czy pierwotnie było to zakodowane 0 czy 1? Jeśli założymy, że prawdopodobieństwo błędu na bit,p, jest mniej niż połowa, wtedy spodziewamy się, że mniej niż połowa bitów zawiera błędy. Więc patrzymy na liczbę zer i liczbę jedynek. Cokolwiek jest więcej, zakładamy, że zaczęliśmy. Nazywa się to głosowaniem większościowym. Istnieje pewne prawdopodobieństwo, że się mylimy, ale im więcej bitów zakodowaliśmy, tym mniejsze prawdopodobieństwo.

Z drugiej strony, jeśli to wiemy p>12), nadal możemy dokonać korekty. Po prostu wdrożysz głos mniejszości! Chodzi jednak o to, że musisz wykonać całkowicie odwrotną operację. Jest tutaj ostry próg, który pokazuje przynajmniej, że musisz wiedzieć, w jakim systemie pracujesz.

W przypadku odporności na awarie rzeczy stają się bardziej chaotyczne: 01010Ciąg że masz może nie być tym, co państwo rzeczywiście jest. Może to być coś innego, nadal z pewnymi błędami, które musisz poprawić, ale pomiary wykonane podczas odczytu bitów są również nieco błędne. Z grubsza można sobie wyobrazić, że zmienia to gwałtowne przejście w dwuznaczny region, w którym tak naprawdę nie wiesz, co robić. Jeśli jednak prawdopodobieństwo błędu jest wystarczająco niskie lub wystarczająco wysokie, możesz je poprawić, wystarczy wiedzieć, co się dzieje.

Wersja kwantowa

Ogólnie rzecz biorąc, w reżimie kwantowym sytuacja pogarsza się, ponieważ trzeba radzić sobie z dwoma rodzajami błędów: błędami odwracania bitów (X) i błędy odwracania faz (Z), co powoduje, że region niejednoznaczny staje się większy. Nie będę się tutaj zagłębiał w szczegóły. Istnieje jednak uroczy argument w reżimie kwantowym, który może być pouczający.

Wyobraź sobie, że masz stan pojedynczego logicznego kubita przechowywanego w kodzie korekcji błędów kwantowych |ψ przez N.kubity fizyczne. Nie ma znaczenia, co to za kod, jest to całkowicie ogólny argument. Wyobraź sobie teraz tyle hałasu, że niszczy on stan kwantowyN./2)kubity („tyle hałasu” w rzeczywistości oznacza, że ​​błędy występują z prawdopodobieństwem 50:50, nie zbliżonym do 100%, co, jak już powiedzieliśmy, można poprawić). Nie można poprawić tego błędu. Skąd to wiem? Wyobraź sobie, że mam całkowicie bezszelestną wersję i tak jestN./2)kubity i daj pozostałe kubity. Każdy z nas wprowadza wystarczającą liczbę pustych kubitów, abyśmy mieliN.kubitów ogółem i uruchamiamy na nich korekcję błędów. cloning demonstration Gdyby można było wykonać tę korekcję błędów, wynik byłby taki, że oboje mielibyśmy stan pierwotny|ψ. Sklonowalibyśmy logiczny kubit! Ale klonowanie jest niemożliwe, więc korekcja błędów musiała być niemożliwa.

DaftWullie
źródło
2

Wydaje mi się, że są dwie części tego pytania (jedna związana z tytułem, druga związana z samym pytaniem):

1) Do jakiego poziomu szumów działają kody korekcji błędów?
2) Z jaką ilością niedoskonałości w bramach możemy zastosować odporne na błędy obliczenia kwantowe?

Pozwólcie, że podkreślę różnicę: kody korekcji błędów kwantowych mogą być stosowane w wielu różnych scenariuszach, na przykład do korygowania strat w transmisjach. Tutaj ilość hałasu zależy głównie od długości światłowodu, a nie od niedoskonałości bram. Jeśli jednak chcemy zastosować obliczenia kwantowe odporne na uszkodzenia, bramki są głównym źródłem hałasu.

Na 1)

Korekcja błędów działa w przypadku dużych poziomów błędów (mniejszych niż 1/2)). Weźmy na przykład prosty 3-qubitowy kod powtórzenia. Logiczny poziom błędu to po prostu prawdopodobieństwo, że większość głosów się pomyli (pomarańczowa linia tofa(p)=p dla porownania):

plot physical vs logical error rate

Więc ilekroć fizyczny poziom błędu p jest poniżej 1/2), logiczny poziom błędu jest mniejszy niż p. Należy jednak pamiętać, że jest to szczególnie skuteczne w przypadku małychp, ponieważ kod zmienia szybkość z O(p) do O(p2)) zachowanie.

2)

Chcemy opierać się na dowolnie długich obliczeniach kwantowych za pomocą komputera kwantowego. Jednak bramy kwantowe nie są idealne. Aby poradzić sobie z błędami wprowadzonymi przez bramki, stosujemy kwantowe kody korekcji błędów. Oznacza to, że jeden logiczny kubit jest zakodowany w wielu fizycznych kubitach. Ta nadmiarowość pozwala skorygować pewną liczbę błędów w kubitach fizycznych, tak że informacje przechowywane w logicznym kubicie pozostają nienaruszone. Większe kody pozwalają, aby dłuższe obliczenia były nadal dokładne . Jednak większe kody obejmują więcej bramek (na przykład więcej pomiarów syndromu) i bramki te wprowadzają hałas. Widzisz, że jest tu pewien kompromis, a który kod jest optymalny, nie jest oczywiste.
Jeśli szum wprowadzany przez każdą bramkę jest poniżej pewnego progu (tolerancja błędu lub próg dokładności), wówczas można zwiększyć rozmiar kodu, aby umożliwić dowolnie długie obliczenia. Ten próg zależy od kodu, od którego zaczęliśmy (zwykle jest iteracyjnie łączony z samym sobą). Istnieje kilka sposobów oszacowania tej wartości. Często odbywa się to za pomocą symulacji numerycznej: Wprowadź losowe błędy i sprawdź, czy obliczenia nadal działają. Ta metoda zazwyczaj podaje zbyt wysokie wartości progowe. W literaturze jest także kilka dowodów analitycznych, na przykład ten autorstwa Aliferis i Cross .

M. Sterna
źródło
Drugi akapit dotyczy właściwych punktów, ale nadal jest bardzo jakościowy. Mówisz, że potrzebujesz bramek wprowadzonych przez protokół korekcji błędów, aby bardziej obniżyć poziom błędów, niż je zwiększyć. Jak jednak przejść od tego intuicyjnego pomysłu do rzeczywistej oceny ilościowej powyżej progu? Czy oznacza to również uniwersalny dolny próg, którego nie może pokonać żaden protokół korygujący błędy?
glS
@glS Podejrzewam, że istnieje taki „uniwersalny dolny próg”, tj. wartość błędu, powyżej której nie ma protokołów korekcji odpornych na uszkodzenia. Jednak wartość powinna zależeć zarówno od zestawu bramek, jak i modelu błędu. Ludzie są bardziej zainteresowani pozytywnymi wynikami (pokazującymi istnienie dobrego protokołu odpornego na uszkodzenia). Interesujące może być znalezienie górnych granic, aby zobaczyć „ile pozostało nam miejsca” na ulepszenie naszych programów odpornych na błędy. Sądzę, że nie zostało już wiele miejsca.
Jalex Stark
@glS Masz rację, niektóre rzeczywiste obliczenia ilościowe poprawiłyby tę odpowiedź. Myślę, że te obliczenia są zwykle wykonywane numerycznie? Ale chcę też o tym wiedzieć
M. Stern
@JalexStark Co sprawia, że ​​myślisz, że nie ma już dużo miejsca? Na przykład kod powierzchni nie wydaje się być zoptymalizowany przed tym progiem. Wykorzystuje tylko interakcje najbliższego sąsiada na siatce i ogólnie możesz zrobić znacznie więcej.
M. Stern
@M.Stern I don't have any theorem-based evidence, and I'm not an expert in the area. I was just guessing based on the amount of work done and on how large the best thresholds are.
Jalex Stark
2

You need a surprisingly large number of quantum gates to implement a quantum error correcting code in a fault-tolerant manner. One part of the reason is that there are many errors to detect since a code that can correct all single qubit errors already requires 5 qubits and each error can be of three kinds (corresponding to unintentional X, Y, Z gates). Hence to even just correct any single qubit error, you already need logic to distinguish between these 15 errors plus the no-error situation: XIIII, YIIII, ZIIII, IXIII, IYIII, IZIII, IIXII, IIYII, IIZII, IIIXI, IIIYI, IIIZI, IIIIX, IIIIY, IIIIZ, IIIII where X, Y, Z are the possible single qubit errors and I (identity) denotes the no-error-for-this-qubit situation.

The main part of the reason is, however, that you cannot use straight-forward error detection circuitry: Every CNOT (or every other nontrivial 2 or more qubit gate) forwards errors in one qubit to another qubit which would be disastrous for the most trivial case of a single qubit error correcting code and still very bad for more sophisticated codes. Hence a fault-tolerant (useful) implementation of needs even more effort than one might naively think.

With many gates per error correcting step, you can only permit a very low error rate per step. Here yet another problem arises: Since you may have coherent errors, you must be ready for the worst case that an error ϵ propagates not as Nϵ after N single qubit gates but as N2ϵ. This value must remain sufficiently low such that you overall gain after correcting some (but not all) errors, for example single qubit errors only.

An example for a coherent error is an implementation of a gate G that does, to first order, not simply G but G+ϵX which you might call an error of ϵ because that is the probability corresponding to the probability amplitude ϵ and hence the probability that a measurement directly after the gate reveals that it acted as the error X. After N applications of this gate, again to first order, you have actually applied GN+NϵGNX (if G and X commute, otherwise a more complicated construct that has N distinct terms proportional to ϵ). Hence you would, if measuring then, find an error probability of N2ϵ.

Incoherent errors are more benign. Yet if one must give a single value as an error threshold, then one cannot choose to only assume benign errors!

pyramids
źródło
thanks for the answer, but I would appreciate if you could expand the answer to say more about some of the points here. In particular, 1) what do you mean exactly by saying that you need many gates in the error correcting code because there are "many errors to detect"? 2) What do you mean with "straight-forward logical construct"? 3) Why do "coherent errors" imply an error propagation scaling like N2ϵ instead of Nϵ?
glS
@glS I have substantially expanded the answer to address all your questions. Did I manage to do that?
pyramids