Delen via


Inleiding tot kwantumfoutcorrectie

In dit artikel worden de basisbeginselen van kwantumfoutcorrectie, de typen kwantumfouten en enkele algemene kwantumfoutcorrectiecodes uitgelegd. Het biedt ook een voorbeeld van het corrigeren van fouten met behulp van de drie qubitcode.

Wat is kwantumfoutcorrectie?

Kwantumfoutcorrectie (QEC) is een techniek waarmee we kwantuminformatie tegen fouten kunnen beveiligen. Foutcorrectie is vooral belangrijk in kwantumcomputers, omdat efficiënte kwantumalgoritmen gebruikmaken van grootschalige kwantumcomputers, die gevoelig zijn voor ruis.

Het basisprincipe achter kwantumfoutcorrectie is dat het aantal bits dat wordt gebruikt om een bepaalde hoeveelheid informatie te coderen, wordt verhoogd. Met deze redundantie kan de code fouten detecteren en corrigeren.

De foutpercentages voor kwantumcomputers zijn doorgaans hoger dan de fouten van klassieke computers vanwege de uitdagingen met betrekking tot het bouwen en besturingssystemen van kwantum. Ruis, decoherentie en onvolkomenheden in kwantumpoorten kunnen fouten veroorzaken in kwantumberekeningen. Huidige kwantumcomputers hebben foutpercentages in het bereik van 1% tot 0,1%. Met andere woorden, dit betekent dat gemiddeld één van de 100 tot 1000 kwantumpoortbewerkingen een fout oplevert.

Typen kwantumfouten

Er zijn twee fundamentele typen kwantumfouten: bit-flips en fase-flips.

Bit flip-fouten treden op wanneer een qubit verandert van $\ket{0}$ in $\ket{1}$ of omgekeerd. Bit flip-fouten worden ook wel \sigma_x-fouten genoemd$, omdat ze de qubitstatussen $\sigma_x=\ket{0}{1}$\ket{ en $\sigma_x\ket{0}$\ket{={1} toewijzen.$ Deze fout is vergelijkbaar met een klassieke bit-flipfout.

Fasespiegelfouten treden op wanneer een qubit de fase wijzigt. Ze worden ook wel \sigma_z-fouten genoemd$, omdat ze de qubitstatussen $\sigma_z\ket{{0}$ \ket{0}=en $\sigma_z \ket{{1}= -\ket{1}$toewijzen.$ Dit type fout heeft geen klassiek analoog.

In kwantumcomputing kunnen kwantumfouten zich voordoen als bit-flips, fasespiegels of een combinatie van beide.

Hoe werkt kwantumfoutcorrectie?

Kwantumfoutcorrectiecodes werken door de kwantumgegevens te coderen in een grotere set qubits, de fysieke qubits genoemd. De gezamenlijke toestand van de fysieke qubits vertegenwoordigt een logische qubit.

De fysieke qubits zijn onderhevig aan fouten vanwege decoherentie en onvolkomenheden in kwantumpoorten. De code is zo ontworpen dat fouten kunnen worden gedetecteerd en gecorrigeerd door enkele qubits in de code te meten.

Stel dat u het bericht met één qubit $\ket{0}$wilt verzenden. U kunt drie fysieke qubits gebruiken om het bericht te coderen en te verzenden $\ket{000}$. Dit wordt een codewoord genoemd. Deze fout corrigerende code is een herhalingscode, omdat het bericht drie keer wordt herhaald.

Stel nu dat er tijdens de verzending een enkele bit-flip-fout optreedt, zodat wat de ontvanger ontvangt de status $\ket{010}$is. In dit scenario kan de ontvanger mogelijk afleiden dat het beoogde bericht is $\ket{000}$. Als het bericht echter onderhevig is aan twee bits-flipfouten, kan de geadresseerde een onjuist bericht afleiden. Als alle drie de bits worden gespiegeld zodat het oorspronkelijke bericht $\ket{000}$ wordt $\ket{111}$, kan de geadresseerde geen fout kennen.

De codeafstand van een QEC-code is het minimale aantal fouten dat het ene codeword wijzigt in een ander, dat wil zeggen het aantal fouten dat niet kan worden gedetecteerd. De codeafstand $d$ kan worden gedefinieerd als

$$d = 2t + 1$$

waarbij $t$ het aantal fouten is dat de code kan corrigeren. De drie-bits code kan bijvoorbeeld een fout met één bitsspiegeling detecteren en corrigeren, dus $t = 1$, en dus is $de codeafstand d = 3$.

Houd er rekening mee dat herhalingscodes, zoals de drie-bits code die in dit voorbeeld wordt gebruikt, alleen bit-flipfouten kunnen corrigeren en geen fasespiegelfouten. Om beide typen fouten te corrigeren, zijn meer geavanceerde kwantumfoutcorrectiecodes nodig.

Typen QEC-codes

Er zijn veel verschillende typen QEC-codes, elk met zijn eigen eigenschappen en voordelen. Enkele veelvoorkomende QEC-codes zijn:

  • Herhalingscode: de eenvoudigste kwantumfoutcorrectiecode, waarbij één qubit wordt gecodeerd in meerdere qubits door deze meerdere keren te herhalen. De herhalingscode kan bit-flipfouten corrigeren, maar geen fase-flipfouten.

  • Shor-code: De eerste kwantumfoutcorrectiecode, ontwikkeld door Peter Shor. Het codeert één logische qubit in negen fysieke qubits. Shor-code kan één-bits flip-fout of een fasespiegelfout corrigeren, maar beide typen fouten kunnen niet tegelijkertijd worden gecorrigeerd.

  • Steane-code: dit is een zeven-qubitcode waarmee zowel bit-flip- als fasespiegelfouten kunnen worden gecorrigeerd. Het heeft het voordeel van fouttolerant zijn, wat betekent dat het foutcorrectieproces zelf geen extra fouten introduceert.

  • Surface-code: dit is een topologische foutcode die gebruikmaakt van een tweedimensionale raster van qubits om logische qubits te coderen. Het heeft een hoge drempelwaarde voor foutcorrectie en wordt beschouwd als een van de meest veelbelovende technieken voor grootschalige, fouttolerante kwantumcomputing. De surface-code wordt gebruikt door de Azure Quantum Resource Estimator.

  • Hastings-Haah-code: Deze kwantumfoutcorrectiecode biedt betere kosten voor ruimtetijd dan oppervlaktecodes op Majorana-qubits in veel regime's. Voor gate-based instructiesets is de overhead groter, waardoor deze benadering minder efficiënt is dan de surface-code.

Voorbeeld: De drie qubitcode

De code voor foutcorrectie met drie qubits is een eenvoudige herhalingscode waarmee een bit-flipfout kan worden gedetecteerd en gecorrigeerd. Het codeert één logische qubit in drie fysieke qubits door de qubit drie keer te herhalen.

Stel dat u een willekeurige enkele qubit $\ket{\phi}=\alpha\ket{{0} + \beta\ket{1}$wilt verzenden. Om fouten te voorkomen, codeert u de basisstatussen $\ket{0}$ en $\ket{1}$ in een gezamenlijke toestand van drie qubits. De twee logische basisstatussen zijn $\ket{0_L}=\ket{000}$ en $\ket{1_L.}=\ket{111}$

Daarom wordt de enkele qubit $\ket{\phi}={0}\alpha\ket{+ \beta\ket{1}$ gecodeerd als:

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

Laten we de stappen van de drie qubitcode opsplitsen.

De qubits voorbereiden

Eerst codeert u uw enkele qubit $\ket{\phi}=\alpha\ket{{0} +\beta\ket{1}$ in een gezamenlijke toestand van drie qubits.

Vervolgens bereidt u twee verdere qubits in de status $\ket{0}$voor. De globale status van alle drie qubits is $dus (\alpha\ket{0}+\beta\ket{1}){000}\alpha\ket{\ket{0}\ket{0}= + . \beta\ket{{100}$

Ten slotte codeert u de enkele qubit in een gezamenlijke toestand van drie qubits door twee CNOT-bewerkingen toe te passen. De eerste CNOT gebruikt de eerste qubit als controle en handelt op de tweede qubit, die + \beta\ket{110}$produceert $\alpha\ket{000} . De tweede CNOT gebruikt de eerste qubit als controle en fungeert op de derde qubit. De status van de drie qubits is nu $\alpha\ket{000} + \beta\ket{111}$.

De qubits verzenden

U verzendt alle drie de qubits. Ervan uitgaande dat er slechts één-bits flipfouten kunnen optreden, hebben de ontvangen qubits een van de volgende statussen:

Provincie Error
$\alpha\ket{000} + \beta\ket{111}$ Geen fout
$\alpha\ket{100} + \beta\ket{011}$ Qubit 1
$\alpha\ket{010} + \beta\ket{101}$ Qubit 2
$\alpha\ket{001} + \beta\ket{110}$ Qubit 3

Hulp-qubits toevoegen

Eerst introduceert u nog twee qubits, voorbereid in de toestand $\ket{00}$. Dit hulppaar qubits wordt gebruikt om informatie van de fout te extraheren zonder rechtstreeks te meten of informatie over de logische status te verkrijgen.

Vervolgens voert u vier CNOT-bewerkingen uit: de eerste twee bewerkingen gebruiken de eerste en tweede ontvangen qubits als controle en handelen op de eerste hulp-qubit, en de laatste twee bewerkingen gebruiken de eerste en derde ontvangen qubits als controle en handelen op de tweede hulpbit. De totale status van alle vijf qubits is nu:

Provincie Error
$(\alpha\ket{000} + \beta\ket{111})\ket{00}$ Geen fout
$(\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

Het fout syndroom ophalen

Als u de foutinformatie wilt ophalen, meet u de twee hulp-qubits in de rekenkundige basisstatussen $\ket{0}$ en $\ket{1}$. Door dit te doen, herstelt u de gemeenschappelijke toestand, die het fout syndroom wordt genoemd, omdat het helpt bij het diagnosticeren van de fouten in de ontvangen qubits.

Nu weet u in welke van de vier mogelijke statussen de drie ontvangen qubits zich bevinden. U kunt de fout corrigeren door de correctiebewerking toe te passen. In dit geval hebt u bit-flip-fouten, dus de correctie is een $\sigma_x$ bewerking toegepast op één (of geen) van de qubits.

Als het fout syndroom bijvoorbeeld is$\ket{00}$, bevinden de ontvangen qubits zich in de status $\alpha{000}\ket{+ \beta\ket{{111}$, wat de status is die u oorspronkelijk hebt verzonden. Als het fout syndroom is $\ket{11}$, bevinden de ontvangen qubits zich in de toestand $\alpha\ket{{100} + b\ket{{011}$. Er is een bit flip-fout op de eerste qubit, die u kunt corrigeren door een $\sigma_x$ bewerking toe te passen op de eerste qubit.

Fout syndroom Status samenvouwen Correctie
$\ket{00}$ $\alpha\ket{000} + \beta\ket{111}$ Niets doen
$\ket{01}$ $\alpha\ket{100} + \beta\ket{011}$ \sigma_x$ toepassen $op qubit 3
$\ket{10}$ $\alpha\ket{010} + \beta\ket{101}$ \sigma_x$ toepassen $op qubit 2
$\ket{11}$ $\alpha\ket{001} + \beta\ket{110}$ \sigma_x$ toepassen $op qubit 1

De oorspronkelijke qubit extraheren

Ten slotte past u twee CNOT-bewerkingen toe om de enkele qubit te extraheren die u oorspronkelijk wilt verzenden: één gebruikt de eerste qubit als controle en fungeert op de tweede qubit, en andere maakt gebruik van de eerste qubit als besturingselement en fungeert op de derde.

De status van de eerste qubit is nu $\alpha\ket{0} + \beta\ket{1}$, wat de oorspronkelijke qubit is die u wilt verzenden.

Belangrijk

De QEC-code krijgt geen informatie over de coëfficiënten $\alpha$ en $\beta$dus blijven superposities van de rekentoestand intact tijdens de correctie.