Sdílet prostřednictvím


Úvod do opravy kvantových chyb

Tento článek vysvětluje základy opravy kvantových chyb, typy kvantových chyb a některé běžné kódy oprav kvantových chyb. Poskytuje také příklad, jak opravit chyby pomocí tří qubitového kódu.

Co je oprava kvantových chyb?

Oprava kvantových chyb (QEC) je technika, která nám umožňuje chránit kvantové informace před chybami. Oprava chyb je obzvláště důležitá v kvantových počítačích, protože efektivní kvantové algoritmy využívají rozsáhlé kvantové počítače, které jsou citlivé na šum.

Základním principem opravy kvantových chyb je, že se zvýší počet bitů použitých ke kódování daného množství informací. Tato redundance umožňuje kódu zjišťovat a opravovat chyby.

Míry chyb pro kvantové počítače jsou obvykle vyšší než chyby klasického počítače kvůli problémům spojeným s sestavováním a operačními kvantovými systémy. Šum, dekoherence a nedostatky v kvantových branách můžou způsobit chyby v kvantových výpočtech. Aktuální kvantové počítače mají chybovost v rozsahu od 1 do 0,1 %. Jinými slovy to znamená, že v průměru jeden z každých 100 až 1000 kvantových gate operací vede k chybě.

Typy kvantových chyb

Existují dva základní typy kvantových chyb: bitové překlopení bitů a překlopení fází.

K chybám překlopení bitů dochází, když se qubit změní na $\ket{0}$ $\ket{1}$ nebo naopak. Chyby překlopení bitů se také označují jako \sigma_x-errors, protože mapují stavy qubitů $\sigma_x={1}$\ket{\ket{0} a $\sigma_x .\ket{0}$\ket{={1}$$ Tato chyba je podobná klasické chybě překlopení.

K chybám překlopení fáze dochází, když qubit změní svou fázi. Označují se také jako \sigma_z-errors, protože mapují stavy $qubitů \sigma_z \ket{0}={0}$\ket{a $\sigma_z{1}\ket{= -.\ket{1}$$$ Tento typ chyby nemá žádný klasický analog.

V kvantových výpočtech se kvantové chyby můžou projevit jako bitové překlopení, překlopení fází nebo kombinace obou.

Jak funguje oprava kvantových chyb?

Kódy oprav kvantových chyb fungují kódováním kvantových informací do větší sady qubitů označovaných jako fyzické qubity. Společný stav fyzických qubitů představuje logický qubit.

Fyzické qubity podléhají chybám způsobeným dekoherencem a nedostatky v kvantových branách. Kód je navržený tak, aby bylo možné detekovat a opravit chyby měřením některých qubitů v kódu.

Představte si například, že chcete odeslat zprávu $\ket{0}$s jedním qubitem . K zakódování zprávy můžete použít tři fyzické qubity, které se označují $\ket{000}$jako kódové heslo. Tento kód pro opravu chyb je kód opakování, protože zpráva se opakuje třikrát.

Teď si představte, že během přenosu dojde k jedné chybě překlopení bitů, aby příjemce obdržel stav $\ket{010}$. V tomto scénáři může příjemce odvodit, že zamýšlená zpráva je $\ket{000}$. Pokud je však zpráva předmětem dvou bitových chyb překlopení, příjemce může odvodit nesprávnou zprávu. A konečně, pokud jsou všechny tři bity překlopené tak, aby se původní zpráva $\ket{000}$ stala $\ket{111}$, příjemce nemá žádný způsob, jak zjistit chybu.

Vzdálenost kódu QEC je minimální počet chyb, které mění jeden kód na jiný, tj. počet chyb, které nelze rozpoznat. Vzdálenost $kódu d$ lze definovat jako

$$d = 2t + 1$$

kde $t$ je počet chyb, které může kód opravit. Tříbitový kód může například rozpoznat a opravit chybu jednoho bitového překlopení, takže $t = 1$, a proto je vzdálenost $kódu d = 3$.

Všimněte si, že kódy opakování, jako je tříbitový kód použitý v tomto příkladu, můžou opravit pouze chyby překlopení bitů a ne chyby překlopení fází. K opravě obou typů chyb jsou potřeba sofistikovanější kódy oprav kvantových chyb.

Typy kódů QEC

Existuje mnoho různých typů kódů QEC, z nichž každá má vlastní vlastnosti a výhody. Mezi běžné kódy QEC patří:

  • Kód opakování: Nejjednodušší kód opravy kvantových chyb, kde je jeden qubit kódován do více qubitů tím, že ho několikrát opakuje. Kód opakování může opravit chyby překlopení bitů, ale ne chyby překlopení fází.

  • Kód Shor: První kód opravy kvantových chyb vyvinutý Peterem Shorem. Zakóduje jeden logický qubit do devíti fyzických qubitů. Kód Shor může opravit chybu překlopení jedním bitem nebo chybu překlopení jedné fáze, ale nemůže opravit oba typy chyb najednou.

  • Kód Steane: Jedná se o sedmi qubitový kód, který dokáže opravit chyby překlopení bitů i fáze. Má výhodu odolnosti proti chybám, což znamená, že samotný proces opravy chyb nezavádí další chyby.

  • Kód povrchu: Jedná se o topologický kód opravy chyb, který používá dvojrozměrnou mřížku qubitů ke kódování logických qubitů. Má vysokou prahovou hodnotu pro opravu chyb a považuje se za jednu z nejslibnějších technik pro kvantové výpočty odolné proti chybám. Estimátor prostředků Azure Quantum používá kód povrchu.

  • Hastings-Haah kód: Tento kód opravy kvantových chyb nabízí lepší náklady na prostorový čas než kódy povrchu na qubitech Majorany v mnoha režimech. U sad instrukcí založených na branách je režie větší, takže tento přístup je méně efektivní než kód povrchu.

Příklad: Tří qubitový kód

Kód opravy chyb se třemi qubity je jednoduchý kód opakování, který dokáže rozpoznat a opravit chybu překlopení jednoho bitu. Zakóduje jeden logický qubit do tří fyzických qubitů tak, že qubit opakuje třikrát.

Tip

Podívejte se na ukázku Q# kódu pro tří qubitový kód.

Představte si, že chcete odeslat libovolný jeden qubit $\ket{\phi}=\alpha\ket{{0} + \beta\ket{1}$. Abyste se vyhnuli chybám, kódujte základní stavy $\ket{0}$ a $\ket{1}$ do společného stavu tří qubitů. Dva logické stavy jsou $\ket{0_L}=\ket{000}$ a $\ket{1_L.}=\ket{111}$

Jeden qubit $\ket{\phi}={0}\alpha\ket{+ \beta\ket{1}$ je proto kódován takto:

$$\ket{\phi}{000}\ket{\alpha=_L + \beta\ket{\ket{\alpha{111}=0_L} + 1_L \beta\ket{}$$

Pojďme si rozdělit kroky tří qubitového kódu.

Příprava qubitů

Nejprve zakódujete jeden qubit $\ket{\phi}=\alpha\ket{{0} +\beta\ket{1}$ do společného stavu tří qubitů.

Dále připravíte dva další qubity ve stavu $\ket{0}$. Globální stav všech tří qubitů je $tedy (\alpha\ket{0} +\beta\ket{1}){000}\alpha\ket{\ket{0}\ket{0}= + . \beta\ket{{100}$

Nakonec zakódujete jeden qubit do společného stavu tří qubitů pomocí dvou operací CNOT. První CNOT používá první qubit jako řízení a působí na druhý qubit, produkce $\alpha\ket{000} + \beta\ket{110}$. Druhý CNOT používá první qubit jako kontrolu a působí na třetí qubit. Stav tří qubitů je nyní $\alpha\ket{000} + \beta\ket{111}$.

Odesílání qubitů

Pošlete všechny tři qubity. Za předpokladu, že k chybám překlopení jednoho bitu může dojít, jsou přijaté qubity v jednom z následujících stavů:

State Chyba
$\alpha\ket{000} + \beta\ket{111}$ Bez chyby
$\alpha\ket{100} + \beta\ket{011}$ Qubit 1
$\alpha\ket{010} + \beta\ket{101}$ Qubit 2
$\alpha\ket{001} + \beta\ket{110}$ Qubit 3

Přidání pomocných qubitů

Nejprve představíte dva další qubity, připravené ve stavu $\ket{00}$. Tento pomocný pár qubitů slouží k extrakci informací o chybě bez přímého měření nebo získání informací o logickém stavu.

Dále provedete čtyři operace CNOT: první dvě operace používají první a druhé přijaté qubity jako řízení a pracují s prvním pomocným qubitem a poslední dvě operace používají první a třetí přijaté qubity jako řízení a pracují s druhým pomocným bitem. Celkový stav všech pěti qubitů je teď:

State Chyba
$(\alpha\ket{000} + \beta\ket{111})\ket{00}$ Bez chyby
$(\alpha\ket{100} + \beta\ket{011})\ket{11}$ Qubit 1
$(\alpha\ket{010} + \beta\ket{101})\ket{10}$ Qubit 2
$(\alpha\ket{001} + \beta\ket{110})\ket{01}$ Qubit 3

Načítání syndromu chyby

Chcete-li načíst informace o chybě, změříte dva pomocné qubity ve výpočetních stavech $\ket{0}$ a $\ket{1}$. Tímto způsobem obnovíte společný stav, který se nazývá syndrom chyby, protože pomáhá diagnostikovat chyby v přijatých qubitech.

Teď víte, ve kterých ze čtyř možných stavů jsou tři přijaté qubity. Chybu můžete opravit použitím operace opravy. V tomto případě pracujete s chybami překlopení bitů, takže oprava je $operace \sigma_x$ použitá na jeden (nebo žádný) qubitů.

Pokud je $\ket{00}$například syndrom chyby , pak přijaté qubity jsou ve stavu $\alpha{000}\ket{+ \beta\ket{{111}$, což je stav, který jste původně odeslali. Pokud je $\ket{11}$syndrom chyby , jsou přijaté qubity ve stavu $\alpha{100}\ket{+ b.\ket{{011}$ U prvního qubitu je trochu chyba překlopení, kterou můžete opravit použitím $operace \sigma_x$ u prvního qubitu.

Syndrom chyby Sbalit stav Oprava
$\ket{00}$ $\alpha\ket{000} + \beta\ket{111}$ Nic nedělat
$\ket{01}$ $\alpha\ket{100} + \beta\ket{011}$ Použití $\sigma_x$ na qubit 3
$\ket{10}$ $\alpha\ket{010} + \beta\ket{101}$ Použití $\sigma_x$ na qubit 2
$\ket{11}$ $\alpha\ket{001} + \beta\ket{110}$ Použití $\sigma_x$ na qubit 1

Extrahování původního qubitu

Nakonec k extrakci jednoho qubitu, který chcete přenést původně, použijete dvě operace CNOT: jeden používá první qubit jako řízení a působí na druhý qubit a druhý qubit používá první qubit jako řízení a působí na třetí.

Stav prvního qubitu je nyní $\alpha\ket{0} + \beta\ket{1}$, což je původní qubit, který jste chtěli přenést.

Důležité

Kód QEC nezíská žádné informace týkající se koeficientů $\alpha$ , $\beta$a proto superpozice výpočetního stavu zůstanou během opravy nedotčené.