Přeskočit na hlavní obsah

Řízení šíření chyb

Kvantové výpočty odolné vůči chybám se podobají závodu mezi chybami a opravou chyb. Pokud je počet chyb dostatečně malý, oprava chyb je úspěšně opraví; ale pokud je chyb příliš mnoho, oprava chyb selže.

Z tohoto důvodu je třeba věnovat dostatečnou pozornost způsobu, jakým se kvantové výpočty provádějí v implementacích Circuit odolných vůči chybám, aby se řídilo šíření chyb. To znamená, že chyba na jednom Qubit se může prostřednictvím Gate v kvantovém Circuit potenciálně rozšířit na více Qubit, což může způsobit dramatický nárůst počtu chyb. To je zásadní problém, protože pokud se nám nepodaří šíření chyb kontrolovat, naše úsilí o opravu chyb bude rychle zahlceno. Pokud na druhou stranu dokážeme udržet šíření chyb pod kontrolou, pak má oprava chyb reálnou šanci udržet krok, což umožní opravovat chyby dostatečně rychle, aby kvantový výpočet fungoval podle záměru.

Výchozím bodem technické diskuse o tomto problému je poznání, že dvou-Qubit Gate (nebo obecněji vícero-Qubit Gate) mohou šířit chyby, i když fungují dokonale. Uvažme například Gate řízený-NOT a předpokládejme, že na řídicím Qubit dojde k chybě XX těsně před provedením Gate řízeného-NOT. Jak jsme již pozorovali v lekci „Oprava kvantových chyb", je to ekvivalentní chybě XX vyskytující se na obou Qubit po provedení řízeného-NOT. A situace je podobná pro chybu ZZ působící na cílový Qubit místo řídicího před provedením Gate řízeného-NOT.

Circuit representations of error propagation by CNOT gates

Jedná se o šíření chyb, protože nešťastné umístění chyby XX nebo ZZ před Gate řízeným-NOT ji efektivně promění ve dvě chyby po Gate řízeném-NOT. K tomu dochází i když je Gate řízený-NOT dokonalý, a nesmíme zapomínat, že daný Gate řízený-NOT může být sám o sobě zašuměný, což může vytvořit korelované chyby na dvou Qubit.

K našim obavám přispívá fakt, že následující dvou-Qubit Gate mohou tyto chyby šířit ještě dále, jak naznačuje následující obrázek.

Circuit representations of error propagation by multiple CNOT gates

V jistém smyslu se tomu nelze vyhnout; dokud budeme používat vícero-Qubit Gate, bude existovat potenciál pro šíření chyb. Nicméně, jak probereme v následujících podsekcích, lze podniknout kroky k omezení škod, které to způsobuje, a umožnit tak zvládnutí šířených chyb.

Transverzální implementace Gate

Nejjednodušší známý způsob, jak zmírnit šíření chyb v kvantových Circuit odolných vůči chybám, je implementovat Gate transverzálně, což znamená vytvořit pro ně gadgety, které mají určitou jednoduchou formu. Konkrétně gadgety musí být tenzorovým součinem operací (jinými slovy kvantový Circuit o hloubce jedna), kde každá operace může působit pouze na jednu pozici Qubit v rámci každého kódového bloku, kterého se dotýká. Nejsnáze se to vysvětlí na příkladech.

Příklady transverzálních implementací Gate

Uvažme následující obrázek, který naznačuje transverzální implementaci Gate CNOT. (Tato konkrétní implementace, kde se CNOT provádí Qubit po Qubit, funguje pouze pro CSS kódy — ale funguje ve skutečnosti pro všechny CSS kódy.)

Transversal implementation of a CNOT gate

Na tomto obrázku jsou dva kódové bloky, každý zobrazený jako sestávající z pěti Qubit (i když jich může být více, jak již bylo naznačeno). Circuit na pravé straně má hloubku jedna a každý z Gate CNOT působí na jednu pozici Qubit v rámci každého bloku: řídicí i cíl pro první CNOT je nejvyšší Qubit (tedy Qubit 0 podle konvence číslování Qiskit), řídicí i cíl pro druhý CNOT je Qubit druhý shora (tedy Qubit 1) a tak dále. Jedná se tedy o transverzální gadget.

Pro druhý příklad — ve skutečnosti třídu příkladů — uvažme libovolnou Pauliho Gate. Pauliho Gate lze vždy implementovat transverzálně, pro jakýkoli stabilizátorový kód, vytvořením gadgetů složených z Pauliho operací. Konkrétně každou Pauliho operaci na logickém Qubit kódovaném stabilizátorovým kódem lze implementovat transverzálně volbou vhodné Pauliho operace na fyzických Qubit použitých pro kódování. To je konzistentní se skutečností, která byla mimochodem zmíněna v lekci „Stabilizátorový formalismus": až na globální fázi Pauliho operace, které komutují s každým stabilizátorovým generátorem stabilizátorového kódu, působí jako Pauliho operace na Qubit nebo Qubit kódované tímto kódem.

Jako konkrétní příklad uvažme 99-Qubit Shorův kód, pro který by se standardní bázové stavy mohly kódovat následovně.

0122(000+111)(000+111)(000+111)1122(000111)(000111)(000111)\begin{aligned} \vert 0\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \\[3mm] \vert 1\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \end{aligned}

Gate XX na logickém Qubit kódovaném tímto kódem lze implementovat transverzálně pomocí 99-Qubit Pauliho operace

ZIIZIIZIIZ \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I}

zatímco Gate ZZ na logickém Qubit lze implementovat transverzálně pomocí 99-Qubit Pauliho operace

XXXIIIIII.X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}.

Obě tyto Pauliho operace mají váhu 3,3, což je minimální požadovaná váha. (99-Qubit Shorův kód má vzdálenost 3,3, takže jakákoli neidentická Pauliho operace o váze 22 nebo méně je detekována jako chyba.)

A pro třetí příklad, 77-Qubit Steaneův kód (a vlastně každý barevný kód) umožňuje transverzální implementaci všech Cliffordových Gate. Již jsme viděli, jak se Gate CNOT implementují transverzálně pro jakýkoli CSS kód, takže zbývá uvážit Gate HH a SS. Hadamardova Gate aplikovaná na všech 77 Qubit Steaneova kódu je ekvivalentní Gate HH aplikované na logický Qubit, který kóduje, zatímco Gate SS^{\dagger} (na rozdíl od Gate SS) aplikovaná na všech 77 Qubit je ekvivalentní logické Gate S.S.

Šíření chyb u transverzálních gadgetů

Nyní, když víme, co jsou transverzální implementace Gate, proberme jejich souvislost se šířením chyb.

Pro transverzální implementaci jedno-Qubit Gate máme v našem gadgetu jednoduše tenzorový součin jedno-Qubit Gate, který působí na kódový blok fyzických Qubit zvoleného kvantového kódu pro opravu chyb. Ačkoli kterákoli z těchto Gate může selhat a zavést chybu, nedojde k žádnému šíření chyb, protože nejsou zapojeny žádné vícero-Qubit Gate. Ihned po aplikaci gadgetu se provede oprava chyb; a pokud je počet chyb zavedených gadgetem (nebo během jeho provádění) dostatečně malý, chyby budou opraveny. Pokud je tedy míra chyb zaváděných poruchovými Gate dostatečně malá, oprava chyb má dobrou šanci na úspěch.

Pro transverzální implementaci dvou-Qubit Gate na druhou stranu existuje potenciál pro šíření chyb — jednoduše se tomu nelze vyhnout, jak jsme již pozorovali. Podstatné však je, že transverzální gadget nikdy nemůže způsobit šíření chyb v rámci jednoho kódového bloku.

Například u výše popsané transverzální implementace Gate CNOT pro CSS kód by se chyba XX mohla vyskytnout na horním Qubit horního kódového bloku těsně před provedením gadgetu a první CNOT v rámci gadgetu tuto chybu rozšíří na horní Qubit ve spodním bloku. Nicméně dvě výsledné chyby jsou nyní v oddělených kódových blocích. Za předpokladu, že náš kód dokáže opravit chybu XX, kroky opravy chyb, které proběhnou po gadgetu, obě chyby XX opraví jednotlivě — protože v každém kódovém bloku nastane pouze jediná chyba. Naproti tomu, kdyby k šíření chyb došlo uvnitř stejného kódového bloku, mohlo by to proměnit chybu s nízkou váhou na chybu s vysokou váhou, kterou kód nedokáže zvládnout.

Neuniverzálnost transverzálních Gate

Pro dva různé stabilizátorové kódy se může stát, že konkrétní Gate lze implementovat transverzálně jedním kódem, ale ne druhým. Například zatímco Gate TT nelze implementovat transverzálně pomocí 77-Qubit Steaneova kódu, existují jiné kódy, pro které to možné je.

Bohužel pro žádný netriviální kvantový kód pro opravu chyb nikdy není možné implementovat univerzální množinu Gate transverzálně. Tento fakt je známý jako Eastinova-Knillova věta.

Theorem

Eastinova-Knillova věta: Pro jakýkoli kvantový kód pro opravu chyb se vzdáleností alespoň 2 množina logických Gate, které lze implementovat transverzálně, generuje množinu operací, která je (až na globální fázi) diskrétní, a proto není univerzální.

Důkaz této věty zde nebude vysvětlen. (Není to komplikovaný důkaz, ale vyžaduje základní znalost Lieových grup a Lieových algeber, které nepatří mezi předpoklady této série.) Základní myšlenku však lze vyjádřit intuitivně: Nekonečné rodiny transverzálních operací nemohou zůstat v kódovém prostoru netriviálního kódu, protože nepatrné rozdíly v transverzálních operacích jsou dobře aproximovány Pauliho operacemi s nízkou váhou, které kód detekuje jako chyby.

Shrnutí: transverzální gadgety nabízejí jednoduchou a ze své podstaty odolnou implementaci Gate — ale pro jakoukoli rozumnou volbu kvantového kódu pro opravu chyb nikdy nebude existovat univerzální množina Gate, kterou by bylo možné implementovat tímto způsobem, což vyžaduje použití alternativních gadgetů.

Magické stavy

Vzhledem k tomu, že pro žádnou netriviální volbu kvantového kódu pro opravu chyb není možné implementovat univerzální množinu kvantových Gate transverzálně, musíme zvážit jiné metody pro implementaci Gate odolnou vůči chybám. Jedna známá metoda je založena na pojmu magických stavů, což jsou kvantové stavy Qubit, které umožňují implementace určitých Gate odolné vůči chybám.

Implementace Gate pomocí magických stavů

Začněme tím, že se podíváme na Gate SS a TT, které mají následující maticový popis.

S=(100i)=(100eiπ/2)andT=(1001+i2)=(100eiπ/4)S = \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/2} \end{pmatrix} \qquad\text{and}\qquad T = \begin{pmatrix} 1 & 0\\ 0 & \frac{1+i}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/4} \end{pmatrix}

Podle definice je SS Cliffordova operace, zatímco TT není; Gate TT není možné implementovat pomocí Circuit složeného z Cliffordových Gate (Gate HH, Gate SS a CNOT Gate).

Nicméně je možné implementovat Gate TT (až na globální fázi) pomocí Circuit složeného z Cliffordových Gate, pokud navíc máme k dispozici kopii stavu

T+=120+eiπ/421,T\vert {+} \rangle = \frac{1}{\sqrt{2}} \vert 0 \rangle + \frac{e^{i\pi/4}}{\sqrt{2}} \vert 1\rangle,

a pokud povolíme měření ve standardní bázi a klasicky řízené Gate. Konkrétně následující Circuit ukazuje jeden způsob, jak toho dosáhnout. Jev, který zde vidíme, je poněkud zjednodušený příklad teleportace kvantového Gate.

A circuit diagram depicting magic state injection

Abychom ověřili, že tento Circuit funguje správně, můžeme nejprve spočítat účinek CNOT Gate na vstup.

T+ψCNOT120Tψ+1+i21TψT \vert {+} \rangle \otimes \vert\psi\rangle \stackrel{\text{CNOT}}{\longmapsto} \frac{1}{\sqrt{2}} \vert 0\rangle \otimes T \vert \psi\rangle + \frac{1+i}{2} \vert 1\rangle \otimes T^{\dagger} \vert \psi\rangle

Měření proto dává výsledky 00 a 11 se stejnou pravděpodobností. Pokud je výsledek 0,0, Gate SS se neprovede a výstupní stav je Tψ;T\vert\psi\rangle; a pokud je výsledek 1,1, Gate SS se provede a výstupní stav je STψ=Tψ.ST^{\dagger}\vert\psi\rangle = T\vert \psi\rangle.

Stav T+T\vert {+}\rangle se v tomto kontextu nazývá magický stav, i když není v tomto ohledu jedinečný: i jiné stavy se nazývají magické stavy, když je lze použít podobným způsobem (případně pro jiné Gate a s použitím jiných Circuit). Například záměnou stavu T+T\vert{+}\rangle za stav S+S\vert{+}\rangle a nahrazením Gate SS ve výše uvedeném Circuit za Gate ZZ implementujeme Gate SS — což je potenciálně užitečné pro výpočet odolný proti chybám pomocí kódu, pro který nelze Gate SS implementovat transversálně.

Gadgety odolné proti chybám z magických stavů

Nemusí být zřejmé, že použití magických stavů k implementaci Gate je užitečné pro odolnost proti chybám. Například u výše popsané implementace Gate TT se zdá, že stále potřebujeme aplikovat Gate TT na stav +\vert{+}\rangle, abychom získali magický stav, který pak použijeme k implementaci Gate TT. Jaká je tedy výhoda použití tohoto přístupu pro odolnost proti chybám?

Zde jsou tři klíčové body, které na tuto otázku odpovídají.

  1. Vytváření magických stavů nevyžaduje aplikaci Gate, který se snažíme implementovat, na konkrétní stav. Například aplikace Gate TT na stav +\vert {+} \rangle není jediný způsob, jak získat stav T+T\vert{+}\rangle.

  2. Vytváření magických stavů lze provádět odděleně od výpočtu, ve kterém se používají. To znamená, že chyby, které vzniknou v procesu vytváření magického stavu, se nebudou šířit do samotného prováděného výpočtu.

  3. Pokud lze jednotlivé Gate v Circuit implementujícím zvolený Gate pomocí magického stavu implementovat odolně proti chybám a předpokládáme dostupnost magických stavů, získáme implementaci zvoleného Gate odolnou proti chybám.

Pro zjednodušení následující diskuse se zaměřme konkrétně na Gate TT — s tím, že metodologii lze rozšířit i na jiné Gate. Implementace Gate TT odolná proti chybám pomocí magických stavů má podobu naznačenou následujícím obrázkem.

A circuit diagram depicting magic state injection on an encoded qubit Qubity v původním Circuit s TT-Gate odpovídají logickým Qubitům v tomto diagramu, které jsou kódovány libovolným kódem, který používáme pro odolnost vůči chybám. Vstupy a výstupy v diagramu by proto měly být chápány jako kódování těchto stavů. To znamená zejména to, že ve skutečnosti nepotřebujeme jen magické stavy — potřebujeme kódované magické stavy. Gate v původním Circuit s TT-Gate jsou zde nahrazeny gadgety, o kterých předpokládáme, že jsou odolné vůči chybám.

Tento konkrétní obrázek tedy naznačuje, že už máme odolné gadgety pro CNOT Gate a SS Gate. Pro barevný kód by tyto gadgety mohly být transverzální; pro povrchový kód (nebo jakýkoli jiný CSS kód) lze CNOT provést transverzálně, zatímco gadget pro SS Gate by sám mohl být implementován pomocí magických stavů, jak bylo dříve naznačeno jako možné. (Obrázek také naznačuje, že máme odolný gadget pro provádění měření ve standardní bázi, které jsme dosud ignorovali. To by ve skutečnosti mohlo být náročné pro některé kódy vybrané tak, aby to bylo obtížné, ale pro CSS kód je to záležitost měření každého fyzického Qubitu následovaného klasickým post-processingem.)

Implementace je tedy odolná vůči chybám za předpokladu, že máme kódování magického stavu T+.T\vert{+}\rangle. Ale stále jsme neřešili otázku, jak získáme kódování tohoto stavu. Jedním ze způsobů, jak získat kódované magické stavy (nebo možná přesněji, jak je vylepšit), je proces známý jako destilace magických stavů. Následující diagram ilustruje, jak tento proces vypadá na nejvyšší úrovni.

Diagram Circuit znázorňující destilaci kódovaných magických stavů

Slovně řečeno, sbírka zašuměných kódovaných magických stavů je přivedena do speciálního typu Circuit známého jako destilátor. Všechny výstupní bloky kromě jednoho jsou změřeny — což znamená, že logické Qubity jsou měřeny měřeními ve standardní bázi. Pokud je jakýkoli výsledek měření 1,1, proces selhal a musí být restartován. Pokud však každý výsledek měření je 0,0, výsledný stav horního kódového bloku bude méně zašuměný kódovaný magický stav. Tento stav by pak mohl být spojen s dalšími čtyřmi jako vstupy do dalšího destilátoru, nebo použit k implementaci TT Gate, pokud je považován za dostatečně blízký pravému kódovanému magickému stavu. Samozřejmě, proces musí někde začít, přičemž jednou z možností je připravit je neodolným způsobem.

Existují různé známé způsoby, jak sestavit samotný destilátor, ale ty zde nebudou vysvětleny ani analyzovány. Na logické úrovni je typický přístup — pozoruhodně a poněkud shodou okolností — spuštění kódovacího Circuit pro stabilizátorový kód pozpátku! To by ve skutečnosti mohl být jiný stabilizátorový kód, než ten používaný pro opravu chyb. Například by se mohl potenciálně použít povrchový nebo barevný kód pro opravu chyb, ale spustit enkodér pro 55-Qubitový kód pozpátku za účelem destilace magických stavů. Kódovací Circuit pro stabilizátorové kódy vyžadují pouze Cliffordovy Gate, což zjednodušuje odolnou implementaci destilátoru. Ve skutečnosti jsou specifika závislá na použitých kódech.

Stručně řečeno, tato sekce si kladla za cíl poskytnout pouze velmi obecnou diskusi o magických stavech, se záměrem poskytnout jen základní představu o tom, jak to funguje. Někdy se tvrdí, že režie pro použití magických stavů k odolné implementaci Gate by byla extrémně vysoká, přičemž drtivá většina práce by šla do procesu destilace. To však ve skutečnosti není tak jasné — existuje mnoho potenciálních způsobů, jak tyto procesy optimalizovat. Existují navíc alternativní přístupy k budování odolných gadgetů pro Gate, které nelze implementovat transverzálně. Například deformace kódu a přepínání kódu jsou klíčová slova spojená s některými z těchto schémat — a nové způsoby se nadále vyvíjejí a zdokonalují.

Odolná oprava chyb

Kromě implementace různých gadgetů potřebných pro odolnou implementaci daného kvantového Circuit existuje další důležitá otázka, kterou je třeba si uvědomit: implementace samotných kroků opravy chyb. To se vrací k myšlence, že cokoli zahrnující kvantovou informaci je náchylné k chybám — včetně Circuit, které jsou samy o sobě určeny k opravě chyb.

Uvažuj například typ Circuit popsaný v lekci „Stabilizátorový formalismus" pro nedestruktivní měření generátorů stabilizátoru pomocí odhadu fáze. Tyto Circuit zjevně nejsou odolné vůči chybám, protože mohou způsobit šíření chyb v kódovém bloku, na kterém operují. To se může zdát poměrně problematické, ale existuje několik známých způsobů, jak provádět opravu chyb odolně tak, aby nedocházelo k šíření chyb v opravovaných kódových blocích.

Jedna metoda je známá jako Shorova oprava chyb, protože ji poprvé objevil Peter Shor. Myšlenka je provádět měření syndromů pomocí takzvaného cat stavu, což je nn-Qubitový stav tvaru

120n+121n,\frac{1}{\sqrt{2}} \vert 0^n \rangle + \frac{1}{\sqrt{2}} \vert 1^n \rangle,

kde 0n0^n a 1n1^n označují řetězce samých nul a samých jedniček délky n.n. Například se jedná o stav ϕ+\vert\phi^+\rangle pro n=2n=2 a GHZ stav pro n=3,n=3, ale obecně Shorova oprava chyb vyžaduje takový stav pro nn rovné váze měřeného generátoru stabilizátoru.

Jako příklad zde zobrazený Circuit měří generátor stabilizátoru tvaru P2P1P0.P_2\otimes P_1 \otimes P_0.

Shorův Circuit pro detekci chyb

To vyžaduje konstrukci samotného cat stavu, a aby to spolehlivě fungovalo v přítomnosti chyb a potenciálně vadných Gate, metoda ve skutečnosti vyžaduje opakované spouštění Circuit jako je tento, aby se daly odvodit závěry o tom, kde mohly různé chyby nastat během procesu.

Alternativní metoda je známá jako Steaneova oprava chyb. Tato metoda funguje odlišně a funguje pouze pro CSS kódy. Myšlenka je taková, že ve skutečnosti neprovádíme měření syndromů na kódovaných kvantových stavech v Circuit, který se snažíme spustit, ale místo toho záměrně šíříme chyby do pracovního systému, a poté tento systém změříme a klasicky detekujeme chyby. Následující diagramy Circuit ilustrují, jak to lze provést pro detekci XX a ZZ chyb.

Steaneův Circuit pro detekci chyb