Přeskočit na hlavní obsah

Stabilizátorové kódy

Nyní si definujeme stabilizátorové kódy obecně. Probereme také některé jejich základní vlastnosti a způsob fungování, včetně toho, jak se kódují stavy a jak se pomocí těchto kódů detekují a opravují chyby.

Definice stabilizátorových kódů

nn-Qubit stabilizátorový kód je určen seznamem nn-Qubit Pauliho operací P1,,Pr.P_1,\ldots,P_r. Tyto operace se v tomto kontextu nazývají stabilizátorové generátory a musí splňovat následující tři vlastnosti.

  1. Všechny stabilizátorové generátory spolu komutují.

    PjPk=PkPj(pro vsˇechna j,k{1,,r})P_j P_k = P_k P_j \qquad \text{(pro všechna $j,k\in\{1,\ldots,r\}$)}
  2. Stabilizátorové generátory tvoří minimální generující množinu.

    PkP1,,Pk1,Pk+1,,Pr(pro vsˇechna k{1,,r})P_k \notin \langle P_1,\ldots,P_{k-1},P_{k+1},\ldots,P_r\rangle \qquad \text{(pro všechna $k\in\{1,\ldots,r\}$)}
  3. Alespoň jeden kvantový stavový vektor je fixován všemi stabilizátorovými generátory.

    InP1,,Pr-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle

    (Není zřejmé, že existence kvantového stavového vektoru ψ\vert\psi\rangle fixovaného všemi stabilizátorovými generátory, tedy P1ψ==Prψ=ψ,P_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle, je ekvivalentní podmínce InP1,,Pr,-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle, ale skutečně tomu tak je, a důvod uvidíme o něco později v této lekci.)

Pokud máme takový seznam P1,,Pr,P_1,\ldots,P_r, pak kódový prostor definovaný těmito stabilizátorovými generátory je podprostor C\mathcal{C} obsahující každý nn-Qubit kvantový stavový vektor fixovaný všemi rr těmito stabilizátorovými generátory.

C={ψ:P1ψ==Prψ=ψ}\mathcal{C} = \bigl\{ \vert\psi\rangle \,:\, P_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle \bigr\}

Kvantové stavové vektory v tomto podprostoru jsou přesně ty, které lze považovat za platná kódování kvantových stavů. Samotný proces kódování probereme později.

A konečně, stabilizátor kódu definovaného stabilizátorovými generátory P1,,PrP_1, \ldots, P_r je množina generovaná těmito operacemi:

P1,,Pr.\langle P_1,\ldots,P_r\rangle.

Přirozený způsob, jak o stabilizátorovém kódu přemýšlet, je chápat stabilizátorové generátory jako pozorovatelné veličiny a souhrnně interpretovat výsledky měření přidružených k těmto pozorovatelným veličinám jako chybový syndrom. Platná kódování jsou nn-Qubit kvantové stavové vektory, pro které je zaručeno, že všechny výsledky měření, jakožto vlastní hodnoty, budou +1.+1. Jakýkoli jiný syndrom, kde se vyskytuje alespoň jeden výsledek měření 1,-1, signalizuje, že byla detekována chyba.

Brzy se podíváme na několik příkladů, ale nejprve je na místě pár poznámek ke třem podmínkám kladeným na stabilizátorové generátory.

První podmínka je přirozená s ohledem na interpretaci stabilizátorových generátorů jako pozorovatelných veličin, neboť z ní plyne, že nezáleží na pořadí, v jakém se měření provádějí: pozorovatelné veličiny komutují, takže i měření komutují. To přirozeně ukládá určitá algebraická omezení na stabilizátorové kódy, která jsou důležitá pro jejich fungování.

Druhá podmínka vyžaduje, aby stabilizátorové generátory tvořily minimální generující množinu, což znamená, že odstraněním kteréhokoli z nich by vznikl menší stabilizátor. Přísně vzato, tato podmínka není skutečně nezbytná pro to, jak stabilizátorové kódy fungují v operačním smyslu — a jak uvidíme v příští lekci, někdy skutečně dává smysl uvažovat o množinách stabilizátorových generátorů pro kódy, které tuto podmínku ve skutečnosti nesplňují. Pro účely analýzy stabilizátorových kódů a vysvětlení jejich vlastností však budeme předpokládat, že tato podmínka platí. Stručně řečeno, tato podmínka zaručuje, že každá pozorovatelná veličina, kterou měříme k získání chybového syndromu, přidává informaci o možných chybách, místo aby byla redundantní a produkovala výsledky, které by šlo odvodit z ostatních měření stabilizátorových generátorů.

Třetí podmínka vyžaduje, aby alespoň jeden nenulový vektor byl fixován všemi stabilizátorovými generátory, což je ekvivalentní tomu, že In-\mathbb{I}^{\otimes n} není obsažena ve stabilizátoru. Potřeba této podmínky vyplývá z faktu, že je skutečně možné zvolit minimální generující množinu nn-Qubit Pauliho operací, které spolu všechny komutují, a přesto žádné nenulové vektory nejsou fixovány všemi těmito operacemi. O „kódy", pro které neexistují žádná platná kódování, nemáme zájem, takže tuto možnost vylučujeme tím, že tuto podmínku zahrneme do definice.

Příklady

Zde je několik příkladů stabilizátorových kódů pro malé hodnoty n.n. Více příkladů, včetně těch, kde nn může být mnohem větší, uvidíme v příští lekci.

3bitový opakovací kód

3bitový opakovací kód je příkladem stabilizátorového kódu, kde naše stabilizátorové generátory jsou ZZIZ \otimes Z \otimes \mathbb{I} a IZZ.\mathbb{I} \otimes Z \otimes Z.

Snadno si můžeme ověřit, že tyto dva stabilizátorové generátory splňují požadované podmínky. Zaprvé, oba stabilizátorové generátory ZZIZ \otimes Z \otimes \mathbb{I} a IZZ\mathbb{I} \otimes Z \otimes Z spolu komutují.

(ZZI)(IZZ)=ZIZ=(IZZ)(ZZI)(Z \otimes Z \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) = Z \otimes \mathbb{I} \otimes Z = (\mathbb{I} \otimes Z \otimes Z)(Z \otimes Z \otimes \mathbb{I})

Zadruhé, máme minimální generující množinu (v tomto případě poměrně triviálně).

ZZIIZZ={III,IZZ}IZZZZI={III,ZZI}\begin{aligned} Z \otimes Z \otimes \mathbb{I} \notin \langle\mathbb{I} \otimes Z \otimes Z\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, \mathbb{I} \otimes Z \otimes Z\}\\[1mm] \mathbb{I} \otimes Z \otimes Z \notin \langle Z \otimes Z \otimes \mathbb{I}\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z \otimes Z \otimes \mathbb{I}\} \end{aligned}

A zatřetí, už víme, že 000\vert 000\rangle a 111,\vert 111\rangle, stejně jako jakákoliv lineární kombinace těchto vektorů, jsou fixovány jak ZZI,Z \otimes Z \otimes \mathbb{I}, tak IZZ.\mathbb{I} \otimes Z \otimes Z. Alternativně to můžeme odvodit pomocí ekvivalentní podmínky z definice.

IIIZZI,IZZ={III,ZZI,ZIZ,IZZ}-\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\notin \langle Z \otimes Z \otimes \mathbb{I}, \mathbb{I} \otimes Z \otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

Tyto podmínky mohou být mnohem obtížnější ověřit u složitějších stabilizátorových kódů.

Modifikovaný 3bitový opakovací kód

V předchozí lekci jsme viděli, že je možné modifikovat 3bitový opakovací kód tak, aby chránil proti chybám fázového překlopení místo chyb bitového překlopení. Jako stabilizátorový kód se tento nový kód snadno popíše: jeho stabilizátorové generátory jsou XXIX \otimes X \otimes \mathbb{I} a IXX.\mathbb{I} \otimes X \otimes X.

Tentokrát stabilizátorové generátory reprezentují pozorovatelné veličiny XXX\otimes X místo ZZ,Z\otimes Z, takže jde v podstatě o kontroly parity v plus/minus bázi namísto standardní báze. Tři požadované podmínky na stabilizátorové generátory se snadno ověří, analogicky k obyčejnému 3bitovému opakovacímu kódu.

9-Qubit Shorův kód

Zde je 9-Qubit Shorův kód, který je rovněž stabilizátorovým kódem, vyjádřený pomocí stabilizátorových generátorů.

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{gathered} Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z\\[1mm] X \otimes X \otimes X \otimes X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\otimes X \otimes X \otimes X \otimes X \otimes X \otimes X \end{gathered}

V tomto případě máme v podstatě tři kopie 3-bitového opakovacího kódu, jednu pro každý ze tří bloků tří Qubitů, plus poslední dva generátory stabilizátoru, které mají tvar připomínající obvod pro detekci fázových překlopení pro tento kód.

Alternativní způsob, jak přemýšlet o posledních dvou generátorech stabilizátoru, je, že mají stejný tvar jako u 3-bitového opakovacího kódu pro fázová překlopení, jen s tím rozdílem, že XXXX\otimes X\otimes X je dosazeno místo X,X, což je konzistentní s faktem, že XXXX\otimes X\otimes X odpovídá operaci XX na logických Qubitech kódovaných pomocí 3-bitového opakovacího kódu.

Než přejdeme k dalším příkladům, je třeba poznamenat, že symboly tenzorového součinu se při popisu stabilizátorových kódů pomocí seznamů generátorů stabilizátoru často vynechávají, protože je pak snazší je číst a vidět jejich vzory. Například stejné generátory stabilizátoru jako výše pro 9-Qubitový Shorův kód vypadají takto, když symboly tenzorového součinu nejsou explicitně zapsány.

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{array}{ccccccccc} Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z\\[1mm] X & X & X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I}& X & X & X & X & X & X \end{array}

7-Qubitový Steaneův kód

Zde je další příklad stabilizátorového kódu, známého jako 7-Qubitový Steaneův kód. Má některé pozoruhodné vlastnosti a k tomuto kódu se budeme v průběhu zbývajících lekcí kurzu čas od času vracet.

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

Prozatím si jednoduše všimněme, že se jedná o platný stabilizátorový kód. První tři generátory stabilizátoru spolu zjevně komutují, protože ZZ komutuje samo se sebou a identita komutuje se vším, a situace je podobná pro poslední tři generátory stabilizátoru. Zbývá ověřit, že pokud vezmeme jeden z ZZ-generátorů stabilizátoru (tedy jeden z prvních tří) a jeden z XX-generátorů stabilizátoru (tedy jeden z posledních tří), pak tyto dva generátory komutují, a je možné projít všech 9 možných párování a ověřit to. Ve všech těchto případech se Pauliho matice XX a ZZ vždy nacházejí na stejné pozici sudý počet krát, takže tyto dva generátory budou komutovat, stejně jako komutují XXX\otimes X a ZZZ\otimes Z. Jedná se také o minimální generující množinu a definuje netriviální kódový prostor, což jsou fakta ponechaná k tvému zamyšlení.

7-Qubitový Steaneův kód je podobný 9-Qubitovému Shorovu kódu v tom, že kóduje jeden Qubit a umožňuje opravu libovolné chyby na jednom Qubitu, ale vyžaduje pouze 7 Qubitů místo 9.

5-Qubitový kód

Sedm není nejmenší počet Qubitů potřebný ke kódování jednoho Qubitu a jeho ochraně před libovolnou chybou na jednom Qubitu — zde je stabilizátorový kód, který to dělá s pouhými 5 Qubity.

XZZXIIXZZXXIXZZZXIXZ\begin{array}{ccccc} X & Z & Z & X & \mathbb{I} \\[1mm] \mathbb{I} & X & Z & Z & X \\[1mm] X & \mathbb{I} & X & Z & Z \\[1mm] Z & X & \mathbb{I} & X & Z \\[1mm] \end{array}

Tento kód se obvykle nazývá 5-Qubitový kód. Jedná se o nejmenší počet Qubitů v kvantovém kódu opravujícím chyby, který umožňuje opravu libovolné jednoQubitové chyby.

Jednorozměrné stabilizátorové kódy

Zde je další příklad stabilizátorového kódu, i když ve skutečnosti nekóduje žádné Qubity: kódový prostor je jednorozměrný. Jedná se však stále o platný stabilizátorový kód podle definice.

ZZXX\begin{array}{cc} Z & Z \\[1mm] X & X \end{array}

Konkrétně je kódový prostor jednorozměrný prostor generovaný e-bitem ϕ+.\vert\phi^+\rangle.

Zde je příbuzný příklad stabilizátorového kódu, jehož kódový prostor je jednorozměrný prostor generovaný GHZ stavem (000+111)/2.(\vert 000\rangle + \vert 111\rangle)/\sqrt{2}.

ZZIIZZXXX\begin{array}{cc} Z & Z & \mathbb{I} \\[1mm] \mathbb{I} & Z & Z \\[1mm] X & X & X \end{array}

Dimenze kódového prostoru

Předpokládejme, že máme stabilizátorový kód popsaný nn-Qubitovými generátory stabilizátoru P1,,Pr.P_1,\ldots,P_r. Možná úplně první otázka, která tě k tomuto kódu napadne, je: „Kolik Qubitů kóduje?"

Tato otázka má jednoduchou odpověď. Za předpokladu, že nn-Qubitové generátory stabilizátoru P1,,PrP_1, \ldots, P_r splňují tři požadavky definice (tedy že generátory stabilizátoru spolu navzájem komutují, že se jedná o minimální generující množinu a že kódový prostor je neprázdný), pak nutně platí, že kódový prostor tohoto stabilizátorového kódu má dimenzi 2nr,2^{n-r}, takže pomocí tohoto kódu lze zakódovat nrn-r Qubitů.

Intuitivně řečeno, máme nn Qubitů, které můžeme pro toto kódování použít, a každý generátor stabilizátoru fakticky „odebere jeden Qubit" z hlediska toho, kolik Qubitů můžeme zakódovat. Všimni si, že se nejedná o to, které nebo kolik chyb lze detekovat nebo opravit, jde pouze o tvrzení o dimenzi kódového prostoru.

Například u 3-bitového opakovacího kódu i jeho modifikované verze pro chyby s fázovým překlopením máme n=3n=3 Qubitů a r=2r=2 generátorů stabilizátoru, a proto může každý z těchto kódů kódovat 1 Qubit. Další příklad: u 5-Qubitového kódu máme 5 Qubitů a 4 generátory stabilizátoru, takže opět má kódový prostor dimenzi 2, což znamená, že pomocí tohoto kódu lze zakódovat jeden Qubit. Poslední příklad: kód, jehož generátory stabilizátoru jsou XXX\otimes X a ZZ,Z\otimes Z, má jednorozměrný kódový prostor generovaný stavem ϕ+,\vert\phi^+\rangle, což je konzistentní s tím, že máme n=2n=2 Qubitů a r=2r=2 generátorů stabilizátoru.

Nyní se podívejme, jak lze tento fakt dokázat. Prvním krokem je pozorování, že protože generátory stabilizátoru komutují a protože každá Pauliho operace je svou vlastní inverzí, každý prvek stabilizátoru lze vyjádřit jako součin

P1a1Prar,P_1^{a_1} \cdots P_r^{a_r},

kde a1,,ar{0,1}.a_1,\ldots,a_r\in\{0,1\}. Ekvivalentně je každý prvek stabilizátoru získán vynásobením nějaké podmnožiny generátorů stabilizátoru. Každý prvek stabilizátoru lze skutečně vyjádřit tímto způsobem jednoznačně, díky podmínce, že {P1,,Pr}\{P_1,\ldots,P_r\} je minimální generující množina.

Dále definujme Πk\Pi_k jako projekci na prostor +1+1-vlastních vektorů Pk,P_k, pro každé k{1,,r}.k\in\{1,\ldots,r\}. Tyto projekce lze získat zprůměrováním odpovídajících Pauliho operací s operací identity následovně.

Πk=In+Pk2\Pi_k = \frac{\mathbb{I}^{\otimes n} + P_k}{2}

Kódový prostor C\mathcal{C} je podprostor všech vektorů, které jsou fixovány všemi rr generátory stabilizátoru P1,,Pr,P_1,\ldots,P_r, nebo ekvivalentně všemi rr projekcemi Π1,,Πr.\Pi_1,\ldots,\Pi_r.

Vzhledem k tomu, že generátory stabilizátoru spolu navzájem komutují, musí komutovat i projekce Π1,,Πr.\Pi_1,\ldots,\Pi_r. To nám umožňuje využít fakt z lineární algebry, který říká, že součin těchto projekcí je projekcí na průnik podprostorů odpovídajících jednotlivým projekcím. Jinými slovy, součin Π1Πr\Pi_1\cdots\Pi_r je projekcí na kódový prostor C.\mathcal{C}.

Nyní můžeme rozepsat součin Π1Πr\Pi_1\cdots\Pi_r pomocí vzorců pro tyto projekce a získat následující výraz.

Π1Πr=(In+P12)(In+Pr2)=12ra1,,ar{0,1}P1a1Prar\Pi_1\cdots\Pi_r = \biggl(\frac{\mathbb{I}^{\otimes n} + P_1}{2}\biggr)\cdots\biggl(\frac{\mathbb{I}^{\otimes n} + P_r}{2}\biggr) = \frac{1}{2^r}\sum_{a_1,\ldots,a_r \in \{0,1\}} P_1^{a_1}\cdots P_r^{a_r}

Slovně řečeno, projekce na kódový prostor stabilizátorového kódu je jako matice rovna průměru přes všechny prvky stabilizátoru daného kódu.

Nakonec můžeme vypočítat dimenzi kódového prostoru pomocí faktu, že dimenze libovolného podprostoru je rovna stopě projekce na tento podprostor. Dimenze kódového prostoru C\mathcal{C} je tedy dána následujícím vzorcem.

dim(C)=Tr(Π1Πr)=12ra1,,ar{0,1}Tr(P1a1Prar)\operatorname{dim}(\mathcal{C}) = \operatorname{Tr}(\Pi_1\cdots\Pi_r) = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r})

Tento výraz můžeme vyhodnotit pomocí několika základních faktů.

  • Máme P10Pr0=InP_1^0 \cdots P_r^0 = \mathbb{I}^{\otimes n}, a tedy

    Tr(P10Pr0)=2n.\operatorname{Tr}(P_1^{0}\cdots P_r^{0}) = 2^n.
  • Pro (a1,,ar)(0,,0)(a_1,\ldots,a_r) \neq (0,\ldots,0) musí být součin P1a1PrarP_1^{a_1}\cdots P_r^{a_r} roven ±1\pm 1 krát nějaká Pauliho operace — nemůžeme ale získat In\mathbb{I}^{\otimes n}, protože by to bylo v rozporu s minimalitou množiny {P1,,Pr}\{P_1,\ldots,P_r\}, a nemůžeme získat In-\mathbb{I}^{\otimes n}, protože to zakazuje třetí podmínka na generátory stabilizéru. Proto, jelikož stopa každé neidentické Pauliho operace je nulová, dostáváme

    Tr(P1a1Prar)=0.\operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) = 0.

Dimenze kódového prostoru je tedy 2nr2^{n-r}, jak bylo tvrzeno:

dim(C)=12ra1,,ar{0,1}Tr(P1a1Prar)=12rTr(P10Pr0)=2nr.\begin{aligned} \operatorname{dim}(\mathcal{C}) & = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) \\ & = \frac{1}{2^r} \operatorname{Tr}(P_1^{0}\cdots P_r^{0}) \\ & = 2^{n-r}. \end{aligned}

Na okraj poznamenejme, že nyní vidíme, že předpoklad, že In-\mathbb{I}^{\otimes n} není obsažen ve stabilizéru, implikuje, že kódový prostor musí obsahovat alespoň jeden kvantový stavový vektor. Je to proto, že, jak jsme právě ověřili, tento předpoklad implikuje, že kódový prostor má dimenzi 2nr2^{n-r}, která nemůže být nulová. Opačná implikace je triviální: pokud In-\mathbb{I}^{\otimes n} je obsažen ve stabilizéru, pak kódový prostor nemůže obsahovat žádné kvantové stavové vektory, protože tato operace nemá žádné nenulové fixní vektory.

Cliffordovy operace a kódování

Dále stručně probereme, jak lze Qubit kódovat pomocí stabilizérových kódů, ale nejprve musíme zavést Cliffordovy operace.

Cliffordovy operace

Cliffordovy operace jsou unitární operace na libovolném počtu Qubitů, které lze implementovat kvantovými Circuit s omezenou sadou Gate:

  • Hadamardovy Gate
  • SS Gate
  • CNOT Gate

Všimni si, že TT Gate nejsou zahrnuty, stejně jako Toffoliho Gate a Fredkinovy Gate. Tyto Gate nejsou jen nezahrnuty v seznamu, ale ve skutečnosti je nelze implementovat pomocí zde uvedených Gate; nejsou to Cliffordovy operace. Pauliho operace naproti tomu Cliffordovy operace jsou, protože je lze implementovat pomocí sekvencí Hadamardových a SS Gate.

To je jednoduchý způsob, jak definovat Cliffordovy operace, ale nevysvětluje to, proč jsou definovány právě takto ani co je na této konkrétní kolekci Gate zvláštního. Skutečný důvod, proč jsou Cliffordovy operace definovány právě takto, je ten, že až na globální fázové faktory jsou Cliffordovy operace přesně ty unitární operace, které vždy transformují Pauliho operace na Pauliho operace pomocí konjugace. Přesněji řečeno, nn-Qubitová unitární operace UU je ekvivalentní Cliffordově operaci až na fázový faktor právě tehdy, když pro každou nn-Qubitovou Pauliho operaci PP platí

UPU=±QU P U^{\dagger} = \pm Q

pro nějakou nn-Qubitovou Pauliho operaci Q.Q.

(Poznamenejme, že není možné mít UPU=αQU P U^{\dagger} = \alpha Q pro α{+1,1}\alpha\notin\{+1,-1\}, když UU je unitární a PP a QQ jsou Pauliho operace. Vyplývá to z faktu, že matice na levé straně příslušné rovnice je unitární i hermitovská, a +1+1 a 1-1 jsou jediné volby pro α\alpha, které umožňují, aby pravá strana byla rovněž unitární a hermitovská.)

Konjugační vlastnost právě popsanou je snadné ověřit, když UU je Hadamardova, SS nebo CNOT Gate. Zejména to je snadné pro Hadamardovy Gate,

HXH=Z,HYH=Y,HZH=X,H X H^{\dagger} = Z, \qquad H Y H^{\dagger} = -Y, \qquad H Z H^{\dagger} = X,

a SS Gate,

SXS=Y,SYS=X,SZS=Z.S X S^{\dagger} = Y, \qquad S Y S^{\dagger} = -X, \qquad S Z S^{\dagger} = Z.

Pro CNOT Gate existuje 15 neidentických Pauliho operací na dvou Qubitech, které je třeba ověřit. Samozřejmě je lze ověřit jednotlivě — ale vztahy mezi CNOT Gate a XX a ZZ Gate uvedené (ve formě Circuit) v předchozí lekci, spolu s pravidly násobení Pauliho matic, nabízejí zkratku ke stejnému závěru.

Jakmile víme, že tato konjugační vlastnost platí pro Hadamardovy, SS a CNOT Gate, můžeme okamžitě usoudit, že platí i pro Circuit složené z těchto Gate — to znamená pro všechny Cliffordovy operace.

Obtížnější je dokázat, že vztah funguje i v opačném směru, tedy že pokud daná unitární operace UU splňuje konjugační vlastnost pro Pauliho operace, pak ji musí být možné implementovat (až na globální fázi) pouze pomocí Hadamardových, SS a CNOT Gate. To v této lekci vysvětlovat nebudeme, ale je to pravda.

Cliffordovy operace nejsou univerzální pro kvantový výpočet; na rozdíl od univerzálních sad kvantových Gate není možné aproximovat libovolné unitární operace na požadovanou úroveň přesnosti pomocí Cliffordových operací. Pro danou hodnotu nn totiž existuje pouze konečně mnoho nn-Qubitových Cliffordových operací (až na fázové faktory). Provádění Cliffordových operací na stavech standardní báze následované měřením ve standardní bázi také neumožňuje provádět výpočty, které jsou mimo dosah klasických algoritmů — protože výpočty tohoto typu lze efektivně simulovat klasicky. Tento fakt je znám jako Gottesman-Knillův teorém.

Enkodéry pro stabilizérové kódy

Stabilizérový kód definuje kódový prostor určité dimenze a máme svobodu tento kódový prostor používat, jak chceme — nic nás nenutí kódovat Qubit do tohoto kódového prostoru konkrétním způsobem. Vždy je však možné použít jako enkodér Cliffordovu operaci, pokud se tak rozhodneme. Přesněji řečeno, pro jakýkoli stabilizérový kód, který umožňuje zakódovat mm Qubitů do nn Qubitů, existuje nn-Qubitová Cliffordova operace UU taková, že pro jakýkoli mm-Qubitový kvantový stavový vektor ϕ\vert\phi\rangle platí, že

ψ=U(0nmϕ)\vert\psi\rangle = U \bigl(\vert 0^{n-m} \rangle \otimes \vert \phi\rangle\bigr)

je kvantový stavový vektor v kódovém prostoru našeho kódu, který můžeme interpretovat jako kódování ϕ.\vert\phi\rangle.

To je dobrá zpráva, protože Cliffordovy operace jsou relativně jednoduché ve srovnání s libovolnými unitárními operacemi a existují způsoby, jak optimalizovat jejich implementaci pomocí technik podobných těm, které se nacházejí v důkazu Gottesman-Knillova teorému. Výsledkem je, že Circuit pro kódování stavů pomocí stabilizérových kódů nikdy nemusí být příliš velké. Konkrétně je vždy možné provést kódování pro nn-Qubitový stabilizérový kód pomocí Cliffordovy operace, která vyžaduje O(n2/log(n))O(n^2/\log(n)) Gate. Je to proto, že každou Cliffordovu operaci na nn Qubitech lze implementovat Circuit této velikosti.

Zde je například enkodér pro 7-Qubitový Steaneův kód. Skutečně se jedná o Cliffordovu operaci a jak se ukazuje, tento enkodér ani nepotřebuje SS Gate.

Cliffordův enkodér pro 7-Qubitový Steaneův kód

Detekce chyb

Pro nn-Qubitový stabilizérový kód popsaný generátory stabilizéru P1,,PrP_1,\ldots, P_r funguje detekce chyb následujícím způsobem.

K detekci chyb se měří všechny generátory stabilizéru jako pozorovatelné veličiny. Máme rr generátorů stabilizéru, a tedy rr výsledků měření, přičemž každý z nich je +1+1 nebo 1-1 (nebo binární hodnota, pokud se rozhodneme přiřadit 00 k +1+1 a 11 k 1-1). Těchto rr výsledků interpretujeme kolektivně, jako vektor nebo řetězec, jako syndrom. Syndrom (+1,,+1)(+1,\ldots,+1) indikuje, že nebyla detekována žádná chyba, zatímco alespoň jedna 1-1 kdekoli v syndromu indikuje, že chyba byla detekována.

Předpokládejme konkrétně, že EE je nn-Qubitová Pauliho operace reprezentující hypotetickou chybu. (Jako chyby uvažujeme pouze Pauliho operace, protože diskretizace chyb funguje pro libovolné stabilizérové kódy stejně jako pro 9-Qubitový Shorův kód.) Existují tři případy, které určují, zda je EE detekována jako chyba, či nikoli.

Případy detekce chyb

  1. Operace EE je úměrná prvku stabilizéru.

    E=±Q  for some  QP1,,PrE = \pm Q \; \text{for some}\; Q \in \langle P_1,\ldots,P_r\rangle

    V tomto případě EE musí komutovat s každým generátorem stabilizéru, takže dostáváme syndrom (+1,,+1).(+1,\ldots,+1). To znamená, že EE není detekována jako chyba.

  2. Operace EE není úměrná prvku stabilizéru, ale přesto komutuje s každým generátorem stabilizéru.

    E±Q  for  QP1,,Pr,  but  EPk=PkE  for every  k{1,,r}E\neq \pm Q\; \text{for} \; Q \in \langle P_1,\ldots,P_r\rangle, \;\text{but}\; E P_k = P_k E \;\text{for every}\; k\in\{1,\ldots,r\}

    Jedná se o chybu, která mění vektory v kódovém prostoru nějakým netriviálním způsobem. Protože ale EE komutuje s každým generátorem stabilizéru, syndrom je (+1,,+1),(+1,\ldots,+1), takže EE zůstane kódem nedetekována.

  3. Operace EE antikomutuje s alespoň jedním generátorem stabilizéru.

    PkE=EPk  for at least one  k{1,,r}P_k E = -E P_k \; \text{for at least one} \; k\in\{1,\ldots,r\}

    Syndrom se liší od (+1,,+1),(+1,\ldots,+1), takže chyba EE je kódem detekována.

V prvním případě chyba EE nepředstavuje problém, protože tato operace nedělá s vektory v kódovém prostoru nic, kromě případného zavedení irelevantní globální fáze: Eψ=±ψE \ket{\psi} = \pm\ket{\psi} pro každý zakódovaný stav ψ.\ket{\psi}. V podstatě se vlastně nejedná o chybu — jakákoliv netriviální akce EE se odehrává mimo kódový prostor — takže je dobře, že EE není detekována jako chyba, protože není třeba nic řešit.

Druhý případ je, intuitivně řečeno, ten špatný. Právě antikomutace chyby se stabilizátorovým generátorem způsobí, že se v syndromu objeví 1-1, což signalizuje chybu, ale v tomto případě k tomu nedojde. Máme tedy chybu EE, která mění vektory v kódovém prostoru nějakým netriviálním způsobem, ale kódem zůstane nedetekována. Například pro 3-bitový opakovací kód spadá do této kategorie operace E=XXXE = X\otimes X\otimes X.

Skutečnost, že taková chyba EE musí měnit některé vektory v kódovém prostoru netriviálním způsobem, lze zdůvodnit následovně. Z předpokladu, že EE komutuje s P1,,PrP_1,\ldots,P_r, ale není úměrná žádnému prvku stabilizátoru, můžeme usoudit, že bychom získali nový, platný stabilizátorový kód přidáním EE jako stabilizátorového generátoru spolu s P1,,Pr.P_1,\ldots,P_r. Kódový prostor tohoto nového kódu má však pouze poloviční dimenzi oproti původnímu kódovému prostoru, z čehož můžeme usoudit, že působení EE na původní kódový prostor nemůže být úměrné operaci identity.

Pro poslední ze tří případů, tedy že chyba EE antikomutuje s alespoň jedním stabilizátorovým generátorem, syndrom obsahuje alespoň jednu 1-1, což naznačuje, že něco není v pořádku. Jak jsme již diskutovali, syndrom obecně neidentifikuje EE jednoznačně, takže je stále nutné zvolit korekční operaci pro každý syndrom, která může, ale nemusí chybu EE opravit. Tento krok probereme krátce v poslední části lekce.

Vzdálenost stabilizátorového kódu

Co se týče terminologie, když mluvíme o vzdálenosti stabilizátorového kódu, máme na mysli minimální váhu Pauliho operace EE, která spadá do druhé kategorie výše — tedy mění kódový prostor nějakým netriviálním způsobem, ale kód to nedetekuje. Když se říká, že stabilizátorový kód je [[n,m,d]][[n,m,d]] stabilizátorový kód, s použitím dvojitých hranatých závorek, znamená to následující:

  1. Zakódování mají délku nn Qubitů,
  2. kód umožňuje zakódovat mm Qubitů a
  3. vzdálenost kódu je d.d.

Jako příklad si vezměme 7-Qubitový Steaneův kód. Zde jsou stabilizátorové generátory tohoto kódu:

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

Tento kód má vzdálenost 3 a můžeme to zdůvodnit následovně.

Nejprve uvažuj libovolnou Pauliho operaci EE s váhou nejvýše 2 a předpokládej, že tato operace komutuje se všemi šesti stabilizátorovými generátory. Dojdeme k závěru, že EE musí být operace identity, která (jako vždy) je prvkem stabilizátoru. To ukáže, že vzdálenost kódu je ostře větší než 2. Předpokládej konkrétně, že EE má tvar

E=PQIIIIIE = P \otimes Q \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}

pro PP a QQ jakožto případně neidentitní Pauliho matice. Toto je pouze jeden případ a je nutné zopakovat následující argument pro všechna ostatní možná umístění neidentitních Pauliho matic mezi tenzorovými faktory EE, ale argument je v podstatě stejný pro všechna možná umístění.

Operace EE komutuje se všemi šesti stabilizátorovými generátory, takže komutuje zejména s těmito dvěma:

ZIZIZIZXIXIXIX\begin{gathered} Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z\\[1mm] X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \end{gathered}

Tenzorový faktor QQ v naší chybě EE se shoduje s maticí identity v obou těchto stabilizátorových generátorech (proto byly vybrány). Vzhledem k tomu, že máme matice identity v pěti nejpravějších pozicích EE, dojdeme k závěru, že PP musí komutovat s XX a ZZ, protože jinak by EE antikomutovala s jedním z těchto dvou generátorů. Avšak jediná Pauliho matice, která komutuje jak s XX, tak se ZZ, je matice identity, takže P=I.P = \mathbb{I}.

Nyní, když to víme, můžeme zvolit další dva stabilizátorové generátory, které mají XX a ZZ na druhé pozici zleva, a vyvodíme podobný závěr: Q=I.Q = \mathbb{I}. Proto je EE operace identity.

Takže neexistuje způsob, jak by chyba s váhou nejvýše 2 mohla projít tímto kódem nedetekována, pokud tato chyba není operace identity (která je ve stabilizátoru, a tedy vlastně není chybou). Na druhou stranu existují Pauliho operace váhy 3, které komutují se všemi šesti stabilizátorovými generátory, ale nejsou úměrné prvkům stabilizátoru, jako například IIIIXXX\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes X\otimes X\otimes X a IIIIZZZ.\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes Z\otimes Z\otimes Z. Tím je prokázáno, že tento kód má vzdálenost 3, jak bylo tvrzeno.

Oprava chyb

Posledním tématem této lekce je oprava chyb pro stabilizátorové kódy. Jako obvykle předpokládej, že máme stabilizátorový kód zadaný n-qubitovými generátory stabilizátoru P1,,Pr.P_1, \ldots, P_r.

nn-qubitové Pauliho operace, jakožto chyby, které mohou ovlivnit stavy zakódované pomocí tohoto kódu, jsou rozděleny do stejně velkých skupin podle toho, jaký syndrom způsobí. Existuje 2r2^r různých syndromů a 4n4^n Pauliho operací, což znamená, že pro každý syndrom existuje 4n/2r4^n/2^r Pauliho operací, které ho způsobují. Každá z těchto chyb mohla být zodpovědná za příslušný syndrom.

Nicméně mezi 4n/2r4^n/2^r Pauliho operacemi, které způsobují každý syndrom, existují některé, které bychom měli považovat za ekvivalentní. Konkrétně, pokud je součin dvou Pauliho operací úměrný prvku stabilizátoru, pak jsou tyto dvě operace efektivně ekvivalentní jako chyby.

Jinak řečeno, pokud aplikujeme korekční operaci CC ve snaze opravit chybu E,E, pak tato korekce uspěje, pokud je složení CECE úměrné prvku stabilizátoru. Vzhledem k tomu, že stabilizátor obsahuje 2r2^r prvků, vyplývá z toho, že každá korekční operace CC opravuje 2r2^r různých Pauliho chyb. Zbývá tak 4nr4^{n-r} neekvivalentních tříd Pauliho operací, uvažovaných jako chyby, které jsou konzistentní s každým možným syndromem.

To znamená, že pokud n=rn=r (v tom případě máme triviální, jednodimenzionální kódový prostor), nemůžeme opravit úplně každou chybu detekovanou stabilizátorovým kódem. Místo toho musíme pro každý syndrom zvolit jen jednu korekční operaci s nadějí, že opravíme právě jednu třídu ekvivalentních chyb, které tento syndrom způsobují.

Jednou přirozenou strategií pro výběr korekční operace pro každý syndrom je zvolit Pauliho operaci s nejnižší vahou, která jako chyba tento syndrom způsobuje. Ve skutečnosti může existovat více operací, které se shodují v nejnižší váze chyby konzistentní s daným syndromem — v tom případě lze zvolit kteroukoli z nich. Myšlenka je, že Pauliho operace s nižší vahou představují pravděpodobnější vysvětlení pro jakýkoli naměřený syndrom. To ve skutečnosti nemusí platit pro některé modely šumu a jednou alternativní strategií je vypočítat nejpravděpodobnější chybu, která způsobuje daný syndrom, na základě zvoleného modelu šumu. V této lekci však zůstaneme u jednoduchého přístupu a budeme uvažovat pouze korekce s nejnižší vahou.

Pro stabilizátorový kód se vzdáleností dd tato strategie volby korekční operace jako Pauliho operace s nejnižší vahou konzistentní s naměřeným syndromem vždy umožňuje opravu chyb s vahou ostře menší než polovina d,d, jinými slovy s vahou nejvýše (d1)/2.(d-1)/2. To ukazuje například, že 7-qubitový Steaneův kód dokáže opravit jakoukoli Pauliho chybu s vahou jedna, a díky diskretizaci chyb to znamená, že Steaneův kód dokáže opravit libovolnou chybu na jednom Qubit u.

Abys viděl/a, jak to funguje, podívej se na diagram níže. Kruh vlevo představuje všechny Pauliho operace, které vedou k syndromu (+1,,+1),(+1,\ldots,+1), což je syndrom naznačující, že nedošlo k žádným chybám a nic není špatně. Mezi těmito operacemi máme prvky stabilizátoru (nebo operace, které jsou úměrné prvkům stabilizátoru, přesněji řečeno) a také máme netriviální chyby, které nějak mění kódový prostor, ale nejsou kódem detekovány. Z definice vzdálenosti musí mít každá Pauliho operace v této kategorii váhu alespoň d,d, protože dd je definována jako minimální váha těchto operací.

Kruh vpravo představuje Pauliho operace, které vedou k jinému syndromu s(+1,,+1),s\neq(+1,\ldots,+1), včetně chyby EE s vahou ostře menší než d/2,d/2, kterou budeme uvažovat.

Lowest-weight error correction diagram

Korekční operace CC zvolená pro syndrom ss je Pauliho operace s nejnižší vahou v kolekci reprezentované kruhem vpravo na diagramu (nebo jakákoli z nich v případě shody). Takže může nastat C=E,C = E, ale nemusí. Co však můžeme s jistotou říci, je, že CC nemůže mít váhu větší než váha E,E, protože CC má minimální váhu mezi operacemi v této kolekci — a proto má CC váhu ostře menší než d/2.d/2.

Nyní uvaž, co se stane, když se korekční operace CC aplikuje na jakýkoli stav, který jsme získali po vzniku chyby E.E. Za předpokladu, že původní zakódování bylo ψ,\vert\psi\rangle, zůstaneme s CEψ.CE\vert\psi\rangle. Naším cílem bude ukázat, že CECE je úměrné prvku stabilizátoru, což implikuje, že korekce je úspěšná a (až na globální fázi) zůstaneme s původním zakódovaným stavem ψ.\vert\psi\rangle.

Za prvé, protože EE a CC způsobují stejný syndrom, složení CECE musí komutovat s každým generátorem stabilizátoru. Konkrétně, pokud je PkP_k jakýkoli z generátorů stabilizátoru, pak musí platit

PkE=αEPkandPkC=αCPkP_k E = \alpha E P_k \quad\text{and}\quad P_k C = \alpha C P_k

pro stejnou hodnotu α{+1,1},\alpha\in\{+1,-1\}, protože toto je kk-tá položka syndromu s,s, který generují jak C,C, tak E.E. Proto máme

Pk(CE)=αCPkE=α2(CE)Pk=(CE)Pk,P_k (CE) = \alpha C P_k E = \alpha^2 (CE) P_k = (CE) P_k,

takže PkP_k komutuje s CE.CE. Tím jsme ukázali, že CECE patří do kruhu vlevo na diagramu, protože generuje syndrom (+1,,+1).(+1,\ldots,+1).

Za druhé, složení CECE musí mít váhu nejvýše rovnou součtu vah CC a EE — což vyplývá z krátkého zamyšlení nad součiny Pauliho operací — a proto je váha CECE ostře menší než d.d. To implikuje, že CECE je úměrné prvku stabilizátoru našeho kódu, což jsme chtěli ukázat. Tím, že volíme naše korekční operace jako reprezentanty s nejnižší vahou z množiny chyb generujících každý syndrom, máme zaručeno, že opravíme jakékoli Pauliho chyby s vahou menší než polovina vzdálenosti kódu.

Je tu však jeden problém. Pro stabilizátorové kódy obecně je výpočet Pauliho operace s nejnižší vahou způsobující daný syndrom výpočetně obtížný problém. (Ostatně to platí i pro klasické kódy, které si v tomto kontextu můžeme představit jako stabilizátorové kódy, kde se v generátorech stabilizátoru vyskytují pouze matice I\mathbb{I} a Z.Z.) Takže na rozdíl od kroku kódování nám Cliffordovy operace tentokrát na pomoc nepřijdou.

Řešením je zvolit konkrétní kódy, pro které lze efektivně vypočítat dobré korekce — na to neexistuje jednoduchý recept. Jednoduše řečeno, navrhování stabilizátorových kódů, pro které lze efektivně vypočítat dobré korekční operace, je součástí umění návrhu kvantových kódů.