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ů
-Qubit stabilizátorový kód je určen seznamem -Qubit Pauliho operací Tyto operace se v tomto kontextu nazývají stabilizátorové generátory a musí splňovat následující tři vlastnosti.
-
Všechny stabilizátorové generátory spolu komutují.
-
Stabilizátorové generátory tvoří minimální generující množinu.
-
Alespoň jeden kvantový stavový vektor je fixován všemi stabilizátorovými generátory.
(Není zřejmé, že existence kvantového stavového vektoru fixovaného všemi stabilizátorovými generátory, tedy je ekvivalentní podmínce 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 pak kódový prostor definovaný těmito stabilizátorovými generátory je podprostor obsahující každý -Qubit kvantový stavový vektor fixovaný všemi těmito stabilizátorovými generátory.
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 je množina generovaná těmito operacemi:
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 -Qubit kvantové stavové vektory, pro které je zaručeno, že všechny výsledky měření, jakožto vlastní hodnoty, budou Jakýkoli jiný syndrom, kde se vyskytuje alespoň jeden výsledek měření 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 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 -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 Více příkladů, včetně těch, kde 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 a
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 a spolu komutují.
Zadruhé, máme minimální generující množinu (v tomto případě poměrně triviálně).
A zatřetí, už víme, že a stejně jako jakákoliv lineární kombinace těchto vektorů, jsou fixovány jak tak Alternativně to můžeme odvodit pomocí ekvivalentní podmínky z definice.
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 a
Tentokrát stabilizátorové generátory reprezentují pozorovatelné veličiny místo 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ů.
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 je dosazeno místo což je konzistentní s faktem, že odpovídá operaci 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.
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.
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 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 -generátorů stabilizátoru (tedy jeden z prvních tří) a jeden z -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 a vždy nacházejí na stejné pozici sudý počet krát, takže tyto dva generátory budou komutovat, stejně jako komutují a . 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.
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.
Konkrétně je kódový prostor jednorozměrný prostor generovaný e-bitem
Zde je příbuzný příklad stabilizátorového kódu, jehož kódový prostor je jednorozměrný prostor generovaný GHZ stavem
Dimenze kódového prostoru
Předpokládejme, že máme stabilizátorový kód popsaný -Qubitovými generátory stabilizátoru 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 -Qubitové generátory stabilizátoru 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 takže pomocí tohoto kódu lze zakódovat Qubitů.
Intuitivně řečeno, máme 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 Qubitů a 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 a má jednorozměrný kódový prostor generovaný stavem což je konzistentní s tím, že máme Qubitů a 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
kde 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 je minimální generující množina.
Dále definujme jako projekci na prostor -vlastních vektorů pro každé Tyto projekce lze získat zprůměrováním odpovídajících Pauliho operací s operací identity následovně.
Kódový prostor je podprostor všech vektorů, které jsou fixovány všemi generátory stabilizátoru nebo ekvivalentně všemi projekcemi
Vzhledem k tomu, že generátory stabilizátoru spolu navzájem komutují, musí komutovat i projekce 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 je projekcí na kódový prostor
Nyní můžeme rozepsat součin pomocí vzorců pro tyto projekce a získat následující výraz.
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 je tedy dána následujícím vzorcem.
Tento výraz můžeme vyhodnotit pomocí několika základních faktů.
-
Máme , a tedy
-
Pro musí být součin roven krát nějaká Pauliho operace — nemůžeme ale získat , protože by to bylo v rozporu s minimalitou množiny , a nemůžeme získat , 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
Dimenze kódového prostoru je tedy , jak bylo tvrzeno:
Na okraj poznamenejme, že nyní vidíme, že předpoklad, že 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 , která nemůže být nulová. Opačná implikace je triviální: pokud 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
- Gate
- CNOT Gate
Všimni si, že 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 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, -Qubitová unitární operace je ekvivalentní Cliffordově operaci až na fázový faktor právě tehdy, když pro každou -Qubitovou Pauliho operaci platí
pro nějakou -Qubitovou Pauliho operaci
(Poznamenejme, že není možné mít pro , když je unitární a a jsou Pauliho operace. Vyplývá to z faktu, že matice na levé straně příslušné rovnice je unitární i hermitovská, a a jsou jediné volby pro , které umožňují, aby pravá strana byla rovněž unitární a hermitovská.)
Konjugační vlastnost právě popsanou je snadné ověřit, když je Hadamardova, nebo CNOT Gate. Zejména to je snadné pro Hadamardovy Gate,
a Gate,
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 a 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, 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 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, 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 totiž existuje pouze konečně mnoho -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 Qubitů do Qubitů, existuje -Qubitová Cliffordova operace taková, že pro jakýkoli -Qubitový kvantový stavový vektor platí, že
je kvantový stavový vektor v kódovém prostoru našeho kódu, který můžeme interpretovat jako kódování
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 -Qubitový stabilizérový kód pomocí Cliffordovy operace, která vyžaduje Gate. Je to proto, že každou Cliffordovu operaci na 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 Gate.
Detekce chyb
Pro -Qubitový stabilizérový kód popsaný generátory stabilizéru 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 generátorů stabilizéru, a tedy výsledků měření, přičemž každý z nich je nebo (nebo binární hodnota, pokud se rozhodneme přiřadit k a k ). Těchto výsledků interpretujeme kolektivně, jako vektor nebo řetězec, jako syndrom. Syndrom indikuje, že nebyla detekována žádná chyba, zatímco alespoň jedna kdekoli v syndromu indikuje, že chyba byla detekována.
Předpokládejme konkrétně, že je -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 detekována jako chyba, či nikoli.
Případy detekce chyb
-
Operace je úměrná prvku stabilizéru.
V tomto případě musí komutovat s každým generátorem stabilizéru, takže dostáváme syndrom To znamená, že není detekována jako chyba.
-
Operace není úměrná prvku stabilizéru, ale přesto komutuje s každým generátorem stabilizéru.
Jedná se o chybu, která mění vektory v kódovém prostoru nějakým netriviálním způsobem. Protože ale komutuje s každým generátorem stabilizéru, syndrom je takže zůstane kódem nedetekována.
-
Operace antikomutuje s alespoň jedním generátorem stabilizéru.
Syndrom se liší od takže chyba je kódem detekována.
V prvním případě chyba 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: pro každý zakódovaný stav V podstatě se vlastně nejedná o chybu — jakákoliv netriviální akce se odehrává mimo kódový prostor — takže je dobře, že 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í , což signalizuje chybu, ale v tomto případě k tomu nedojde. Máme tedy chybu , 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 .
Skutečnost, že taková chyba 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 komutuje s , 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 jako stabilizátorového generátoru spolu s 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í na původní kódový prostor nemůže být úměrné operaci identity.
Pro poslední ze tří případů, tedy že chyba antikomutuje s alespoň jedním stabilizátorovým generátorem, syndrom obsahuje alespoň jednu , což naznačuje, že něco není v pořádku. Jak jsme již diskutovali, syndrom obecně neidentifikuje jednoznačně, takže je stále nutné zvolit korekční operaci pro každý syndrom, která může, ale nemusí chybu 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 , 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 stabilizátorový kód, s použitím dvojitých hranatých závorek, znamená to následující:
- Zakódování mají délku Qubitů,
- kód umožňuje zakódovat Qubitů a
- vzdálenost kódu je
Jako příklad si vezměme 7-Qubitový Steaneův kód. Zde jsou stabilizátorové generátory tohoto kódu:
Tento kód má vzdálenost 3 a můžeme to zdůvodnit následovně.
Nejprve uvažuj libovolnou Pauliho operaci 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 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 má tvar
pro a 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 , ale argument je v podstatě stejný pro všechna možná umístění.
Operace komutuje se všemi šesti stabilizátorovými generátory, takže komutuje zejména s těmito dvěma:
Tenzorový faktor v naší chybě 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 , dojdeme k závěru, že musí komutovat s a , protože jinak by antikomutovala s jedním z těchto dvou generátorů. Avšak jediná Pauliho matice, která komutuje jak s , tak se , je matice identity, takže
Nyní, když to víme, můžeme zvolit další dva stabilizátorové generátory, které mají a na druhé pozici zleva, a vyvodíme podobný závěr: Proto je 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 a 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
-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 různých syndromů a Pauliho operací, což znamená, že pro každý syndrom existuje 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 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 ve snaze opravit chybu pak tato korekce uspěje, pokud je složení úměrné prvku stabilizátoru. Vzhledem k tomu, že stabilizátor obsahuje prvků, vyplývá z toho, že každá korekční operace opravuje různých Pauliho chyb. Zbývá tak 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 (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í 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 jinými slovy s vahou nejvýše 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 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ň protože je definována jako minimální váha těchto operací.
Kruh vpravo představuje Pauliho operace, které vedou k jinému syndromu včetně chyby s vahou ostře menší než kterou budeme uvažovat.
Korekční operace zvolená pro syndrom 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 ale nemusí. Co však můžeme s jistotou říci, je, že nemůže mít váhu větší než váha protože má minimální váhu mezi operacemi v této kolekci — a proto má váhu ostře menší než
Nyní uvaž, co se stane, když se korekční operace aplikuje na jakýkoli stav, který jsme získali po vzniku chyby Za předpokladu, že původní zakódování bylo zůstaneme s Naším cílem bude ukázat, že 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
Za prvé, protože a způsobují stejný syndrom, složení musí komutovat s každým generátorem stabilizátoru. Konkrétně, pokud je jakýkoli z generátorů stabilizátoru, pak musí platit
pro stejnou hodnotu protože toto je -tá položka syndromu který generují jak tak Proto máme
takže komutuje s Tím jsme ukázali, že patří do kruhu vlevo na diagramu, protože generuje syndrom
Za druhé, složení musí mít váhu nejvýše rovnou součtu vah a — což vyplývá z krátkého zamyšlení nad součiny Pauliho operací — a proto je váha ostře menší než To implikuje, že 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 a ) 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ů.