Introduktion till kvantfelkorrigering
Den här artikeln beskriver grunderna för kvantfelkorrigering, typer av kvantfel och några vanliga korrigeringskoder för kvantfel. Det ger också ett exempel på hur du korrigerar fel med hjälp av tre-qubit-koden.
Vad är kvantfelkorrigering?
Kvantfelkorrigering (QEC) är en teknik som gör att vi kan skydda kvantinformation från fel. Felkorrigering är särskilt viktigt i kvantdatorer eftersom effektiva kvantalgoritmer använder storskaliga kvantdatorer som är känsliga för brus.
Den grundläggande principen bakom kvantfelkorrigering är att antalet bitar som används för att koda en viss mängd information ökar. Med den här redundansen kan koden identifiera och korrigera fel.
Felfrekvensen för kvantdatorer är vanligtvis högre än den klassiska datorns fel på grund av utmaningarna med att skapa och köra kvantsystem. Brus, dekoherence och brister i kvantgrindar kan orsaka fel i kvantberäkningar. Aktuella kvantdatorer har felfrekvenser i intervallet 1 % till 0,1 %. Det innebär med andra ord att i genomsnitt en av 100 till 1 000 kvantgrindsåtgärder resulterar i ett fel.
Typer av kvantfel
Det finns två grundläggande typer av kvantfel: bitvändningar och fasvändningar.
Bit flip-fel uppstår när en qubit ändras från $\ket{0}$ till $\ket{1}$ eller vice versa. Bit flip-fel kallas $även \sigma_x-fel$, eftersom de mappar qubittillstånden $\sigma_x{1}$ \ket{0}=\ket{och $\sigma_x .\ket{{1}=\ket{0}$ Det här felet motsvarar ett klassiskt bit flip-fel.
Fasvändningsfel uppstår när en kvantbit ändrar fasen. De kallas $även \sigma_z-fel$ eftersom de mappar qubittillstånden $\sigma_z{0}$ \ket{0}=\ket{och $\sigma_z{1}\ket{= -.\ket{1}$ Den här typen av fel har ingen klassisk analog.
Inom kvantberäkning kan kvantfel visas som bitvändningar, fasvändningar eller en kombination av båda.
Hur fungerar kvantfelkorrigering?
Korrigeringskoder för kvantfel fungerar genom att koda kvantinformationen till en större uppsättning kvantbitar, så kallade fysiska kvantbitar. Det gemensamma tillståndet för de fysiska kvantbitarna representerar en logisk qubit.
De fysiska kvantbitarna är föremål för fel på grund av dekoherens och brister i kvantgrindar. Koden är utformad så att fel kan identifieras och korrigeras genom att mäta några av kvantbitarna i koden.
Anta till exempel att du vill skicka meddelandet $\ket{0}$single-qubit . Du kan använda tre fysiska kvantbitar för att koda meddelandet och skicka $\ket{000}$, vilket kallas för ett kodord. Den här felkorrigeringskoden är en upprepningskod eftersom meddelandet upprepas tre gånger.
Anta nu att ett enda bit-flip-fel inträffar under överföringen så att det mottagaren får är tillståndet $\ket{010}$. I det här scenariot kan mottagaren dra slutsatsen att det avsedda meddelandet är $\ket{000}$. Men om meddelandet har två bit-flip-fel kan mottagaren härleda ett felaktigt meddelande. Slutligen, om alla tre bitarna vänds så att det ursprungliga meddelandet $\ket{000}$ blir $\ket{111}$, har mottagaren inget sätt att veta att ett fel har inträffat.
Kodavståndet för en QEC-kod är det minsta antalet fel som ändrar ett kodord till ett annat, dvs. antalet fel som inte kan identifieras. Kodavståndet $d$ kan definieras som
$$d = 2t + 1$$
där $t$ är antalet fel som koden kan korrigera. Till exempel kan tre bitars koden identifiera och korrigera ett bit-flip-fel, så $t = 1$, och därmed är $kodavståndet d = 3$.
Observera att upprepningskoder, till exempel den tre bitars kod som används i det här exemplet, bara kan korrigera bit-flip-fel och inte fasvända fel. För att korrigera båda typerna av fel behövs mer avancerade korrigeringskoder för kvantfel.
Typer av QEC-koder
Det finns många olika typer av QEC-koder, var och en med sina egna egenskaper och fördelar. Några vanliga QEC-koder är:
Upprepningskod: Den enklaste kvantfelkorrigeringskoden, där en enda kvantbit kodas till flera kvantbitar genom att upprepa den flera gånger. Upprepningskoden kan korrigera bit flip-fel, men inte fasvändningsfel.
Shor-kod: Den första korrigeringskoden för kvantfel, utvecklad av Peter Shor. Den kodar en logisk qubit i nio fysiska kvantbitar. Shor-kod kan korrigera ett engångsfel eller ett fasvändningsfel, men det kan inte korrigera båda typerna av fel samtidigt.
Steane-kod: Det här är en sju-qubit-kod som kan korrigera både bit flip- och fasvändningsfel. Den har fördelen att vara feltolerant, vilket innebär att själva felkorrigeringsprocessen inte medför extra fel.
Ytkod: Det här är en topologisk felkorrigeringskod som använder ett tvådimensionellt gitter av kvantbitar för att koda logiska kvantbitar. Den har ett högt tröskelvärde för felkorrigering och anses vara en av de mest lovande teknikerna för storskalig, feltolerant kvantberäkning. Ytkoden används av Azure Quantum Resource Estimator.
Hastings-Haah-kod: Den här kvantfelkorrigeringskoden erbjuder bättre kostnader för rumstid än ytkoder på Majorana-kvantbitar i många regimer. För gatebaserade instruktionsuppsättningar är omkostnaderna större, vilket gör den här metoden mindre effektiv än ytkoden.
Exempel: Koden med tre kvantbitar
Korrigeringskoden med tre kvantbitarsfel är en enkel upprepningskod som kan identifiera och korrigera ett litet flip-fel. Den kodar en enda logisk qubit i tre fysiska kvantbitar genom att upprepa kvantbiten tre gånger.
Anta att du vill skicka en godtycklig enkel qubit $\ket{\phi}=\alpha\ket{{0} + \beta\ket{1}$. För att undvika fel kodar du bastillstånden $\ket{0}$ och $\ket{1}$ till ett gemensamt tillstånd med tre kvantbitar. De två logiska bastillstånden är $\ket{0_L}=\ket{000}$ och $\ket{1_L.}=\ket{111}$
Därför kodas den enda qubiten $\ket{\phi}={0}\alpha\ket{+ \beta\ket{1}$ som:
$$\ket{\phi}{000}\ket{\alpha=_L + \beta\ket{\ket{\alpha{111}=0_L} + 1_L \beta\ket{}$$
Nu ska vi dela upp stegen i koden med tre kvantbitar.
Förbereda kvantbitarna
Först kodar du din enda qubit $\ket{\phi}=\alpha\ket{{0} +\beta\ket{1}$ till ett gemensamt tillstånd med tre kvantbitar.
Därefter förbereder du ytterligare två kvantbitar i tillståndet $\ket{0}$. Det globala tillståndet för alla tre qubits är $alltså (\alpha\ket{0} +\beta\ket{1}){000}\alpha\ket{\ket{0}\ket{0}= + . \beta\ket{{100}$
Slutligen kodar du den enda kvantbiten till ett gemensamt tillstånd med tre kvantbitar genom att tillämpa två CNOT-åtgärder. Den första CNOT använder den första qubiten som kontroll och agerar på den andra qubiten och producerar $\alpha\ket{000} + \beta\ket{110}$. Den andra CNOT använder den första qubiten som kontroll och agerar på den tredje qubiten. Tillståndet för de tre kvantbitarna är nu $\alpha\ket{000} + \beta\ket{111}$.
Skicka kvantbitarna
Du skickar alla tre kvantbitarna. Förutsatt att endast en bits flip-fel kan inträffa är de mottagna kvantbitarna i något av följande tillstånd:
Tillstånd | Fel |
---|---|
$\alpha\ket{000} + \beta\ket{111}$ | Inget fel |
$\alpha\ket{100} + \beta\ket{011}$ | Qubit 1 |
$\alpha\ket{010} + \beta\ket{101}$ | Qubit 2 |
$\alpha\ket{001} + \beta\ket{110}$ | Qubit 3 |
Lägga till extra kvantbitar
Först introducerar du ytterligare två kvantbitar, förberedda i tillståndet $\ket{00}$. Det här extra paret kvantbitar används för att extrahera information om felet utan att direkt mäta eller hämta information om det logiska tillståndet.
Därefter utför du fyra CNOT-åtgärder: de första två åtgärderna använder den första och andra mottagna kvantbitarna som kontroll och agerar på den första extra kvantbiten, och de två sista åtgärderna använder den första och tredje mottagna kvantbitarna som kontroll och agerar på den andra extra biten. Det totala tillståndet för alla fem kvantbitar är nu:
Tillstånd | Fel |
---|---|
$(\alpha\ket{000} + \beta\ket{111})\ket{00}$ | Inget fel |
$(\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 |
Hämtar felsyndromet
För att hämta felinformationen mäter du de två extra kvantbitarna i beräkningsbastillstånden $\ket{0}$ och $\ket{1}$. Genom att göra detta återställer du det gemensamma tillståndet, som kallas felsyndromet eftersom det hjälper till att diagnostisera felen i de mottagna kvantbitarna.
Nu vet du vilka av de fyra möjliga tillstånden som de tre mottagna kvantbitarna finns i. Du kan korrigera felet genom att tillämpa korrigeringsåtgärden. I det här fallet har du att göra med bit flip-fel, så korrigeringen är en $\sigma_x$ åtgärd som tillämpas på en (eller ingen) av kvantbitarna.
Om till exempel felsyndromet är $\ket{00}$är de mottagna kvantbitarna i tillståndet $\alpha{000}\ket{+ \beta\ket{{111}$, vilket är det tillstånd som du ursprungligen skickade. Om felsyndromet är är $\ket{11}$de mottagna kvantbitarna i tillståndet $\alpha{100}\ket{+ b.\ket{{011}$ Det finns ett lite flip-fel på den första qubiten, som du kan korrigera genom att tillämpa en $\sigma_x-åtgärd$ på den första qubiten.
Felsyndrom | Dölj tillstånd | Korrigering |
---|---|---|
$\ket{00}$ | $\alpha\ket{000} + \beta\ket{111}$ | Gör ingenting |
$\ket{01}$ | $\alpha\ket{100} + \beta\ket{011}$ | Använd $\sigma_x$ för qubit 3 |
$\ket{10}$ | $\alpha\ket{010} + \beta\ket{101}$ | Använd $\sigma_x$ för qubit 2 |
$\ket{11}$ | $\alpha\ket{001} + \beta\ket{110}$ | Använd $\sigma_x$ för qubit 1 |
Extrahera den ursprungliga qubiten
För att extrahera den enda kvantbit som du ursprungligen ville överföra använder du två CNOT-åtgärder: en använder den första qubiten som kontroll och agerar på den andra kvantbiten, och den andra använder den första qubiten som kontroll och agerar på den tredje.
Tillståndet för den första qubiten är nu $\alpha\ket{0} + \beta\ket{1}$, vilket är den ursprungliga qubiten som du ville överföra.
Viktigt!
QEC-koden får ingen information om koefficienterna $\alpha$ och $\beta$, och därför förblir superpositioner i beräkningstillståndet intakta under korrigeringen.