Introduzione alla correzione degli errori quantistici
Questo articolo illustra le nozioni di base della correzione degli errori quantistici, i tipi di errori quantistici e alcuni codici comuni di correzione degli errori quantistici. Fornisce anche un esempio di come correggere gli errori usando il codice a tre qubit.
Che cos'è la correzione degli errori quantistici?
La correzione degli errori quantistici (QEC) è una tecnica che consente di proteggere le informazioni quantistiche dagli errori. La correzione degli errori è particolarmente importante nei computer quantistici, perché gli algoritmi quantistici efficienti usano computer quantistici su larga scala, sensibili al disturbo.
Il principio di base alla correzione degli errori quantistici è che il numero di bit usati per codificare una determinata quantità di informazioni è aumentato. Questa ridondanza consente al codice di rilevare e correggere gli errori.
Le percentuali di errore per i computer quantistici sono in genere superiori agli errori del computer classico a causa delle sfide associate alla compilazione e ai sistemi quantistici operativi. Il rumore, la decodifica e le imperfezioni nelle porte quantistiche possono causare errori nei calcoli quantistici. I computer quantistici correnti hanno percentuali di errore nell'intervallo compreso tra 1% e 0,1%. In altre parole, ciò significa che in media uno su 100-1000 operazioni di gate quantistico genera un errore.
Tipi di errori quantistici
Esistono due tipi fondamentali di errori quantistici: capovolgimenti di bit e capovolgimenti di fase.
Gli errori di scorrimento bit si verificano quando un qubit cambia da $\ket{0}$ a $\ket{1}$ o viceversa. Gli errori di scorrimento dei bit sono noti anche come \sigma_x-errors$, perché eseguono il mapping degli stati $qubit \sigma_x \ket{0}\ket{{1}$=e $\sigma_x=\ket{{1}\ket{0}$ .$ Questo errore è analogo a un errore di scorrimento di bit classico.
Gli errori di scorrimento delle fasi si verificano quando un qubit cambia la fase. Sono noti anche come \sigma_z-errors, perché eseguono il mapping degli stati $qubit \sigma_z \ket{0}={0}$\ket{e $\sigma_z{1}\ket{= -.\ket{1}$$$ Questo tipo di errore non ha un analogico classico.
Nel calcolo quantistico, gli errori quantistici possono manifestarsi come capovolgimenti di bit, capovolgimenti di fase o una combinazione di entrambi.
Come funziona la correzione degli errori quantistici?
I codici di correzione degli errori quantistici funzionano codificando le informazioni quantistiche in un set più ampio di qubit, detti qubit fisici. Lo stato congiunto dei qubit fisici rappresenta un qubit logico.
I qubit fisici sono soggetti a errori dovuti a decodifica e imperfezioni nelle porte quantistiche. Il codice è progettato in modo che gli errori possano essere rilevati e corretti misurando alcuni qubit nel codice.
Si supponga, ad esempio, di voler inviare il messaggio $\ket{0}$a qubit singolo. È possibile usare tre qubit fisici per codificare il messaggio, inviando $\ket{000}$, noto come parola di codice. Questo codice di correzione degli errori è un codice di ripetizione, perché il messaggio viene ripetuto tre volte.
Si supponga ora che si verifichi un singolo errore di scorrimento a bit durante la trasmissione in modo che ciò che riceve il destinatario sia lo stato $\ket{010}$. In questo scenario, il destinatario può essere in grado di dedurre che il messaggio previsto è $\ket{000}$. Tuttavia, se il messaggio è soggetto a due errori di scorrimento a bit, il destinatario può dedurre un messaggio non corretto. Infine, se tutti e tre i bit vengono capovolti in modo che il messaggio $\ket{000}$ originale diventi $\ket{111}$, il destinatario non ha modo di conoscere un errore.
La distanza di codice di un codice QEC è il numero minimo di errori che modificano una parola di codice in un'altra, ovvero il numero di errori che non possono essere rilevati. La distanza $di codice d$ può essere definita come
$$d = 2t + 1$$
dove $t$ è il numero di errori che il codice può correggere. Ad esempio, il codice a tre bit può rilevare e correggere un errore di scorrimento a bit, quindi $t = 1$ e quindi la distanza del codice è $d = 3$.
Si noti che i codici di ripetizione, ad esempio il codice a tre bit usato in questo esempio, possono correggere solo gli errori di scorrimento a bit e non gli errori di scorrimento delle fasi. Per correggere entrambi i tipi di errori, sono necessari codici di correzione degli errori quantistici più sofisticati.
Tipi di codici QEC
Esistono molti tipi diversi di codici QEC, ognuno con proprietà e vantaggi specifici. Alcuni codici QEC comuni sono:
Codice ripetizione: il codice di correzione degli errori quantistici più semplice, in cui un singolo qubit viene codificato in più qubit ripetendolo più volte. Il codice di ripetizione può correggere gli errori di scorrimento dei bit, ma non gli errori di scorrimento delle fasi.
Codice Shor: il primo codice di correzione degli errori quantistici, sviluppato da Peter Shor. Codifica un qubit logico in nove qubit fisici. Il codice Shor può correggere l'errore di inversione a un bit o un errore di capovolgimento di una fase, ma non può correggere entrambi i tipi di errori contemporaneamente.
Codice steane: si tratta di un codice a sette qubit in grado di correggere sia gli errori di inversione di bit che di scorrimento delle fasi. Ha il vantaggio di essere a tolleranza di errore, ovvero il processo di correzione degli errori stesso non introduce errori aggiuntivi.
Codice surface: si tratta di un codice di correzione degli errori topologico che usa un reticolo bidimensionale di qubit per codificare qubit logici. Ha una soglia di correzione degli errori elevata ed è considerata una delle tecniche più promettenti per il calcolo quantistico a tolleranza di errore su larga scala. Il codice di superficie viene usato dallo strumento di stima delle risorse di Azure Quantum.
Codice Hastings-Haah: questo codice di correzione degli errori quantistici offre costi più lunghi dello spazio rispetto ai codici di superficie nei qubit majorana in molti regimi. Per i set di istruzioni basate su gate, l'overhead è maggiore, che rende questo approccio meno efficiente del codice di superficie.
Esempio: codice a tre qubit
Il codice di correzione degli errori a tre qubit è un semplice codice di ripetizione in grado di rilevare e correggere un errore di capovolgimento di un bit. Codifica un singolo qubit logico in tre qubit fisici ripetendo il qubit tre volte.
Suggerimento
Vedere l'esempio Q# di codice per il codice a tre qubit.
Si supponga di voler inviare un singolo qubit $\ket{\phi}=\alpha\ket{{0} arbitrario + \beta\ket{1}$. Per evitare errori, codificare gli stati $\ket{0}$ di base e $\ket{1}$ in uno stato congiunto di tre qubit. I due stati di base logica sono $\ket{0_L}=\ket{000}$ e $\ket{1_L.}=\ket{111}$
Di conseguenza, il singolo qubit $\ket{\phi}={0}\alpha\ket{+ \beta\ket{1}$ viene codificato come segue:
$$\ket{\phi}{000}\ket{\alpha=_L + \beta\ket{\ket{\alpha{111}=0_L} + 1_L \beta\ket{}$$
Di seguito vengono descritti i passaggi del codice a tre qubit.
Preparazione dei qubit
Prima di tutto, si codifica il singolo qubit $\ket{\phi}=\alpha\ket{{0} +\beta\ket{1}$ in uno stato congiunto di tre qubit.
Successivamente, si preparano altri due qubit nello stato $\ket{0}$. Quindi, lo stato globale di tutti e tre i qubit è $(\alpha\ket{0} +\beta\ket{1}){000}\alpha\ket{\ket{0}\ket{0}= + . \beta\ket{{100}$
Infine, si codifica il singolo qubit in uno stato congiunto di tre qubit, applicando due operazioni CNOT. Il primo CNOT usa il primo qubit come controllo e agisce sul secondo qubit, producendo $\alpha\ket{000} + \beta\ket{110}$. Il secondo CNOT usa il primo qubit come controllo e agisce sul terzo qubit. Lo stato dei tre qubit è ora $\alpha\ket{000} + \beta\ket{111}$.
Invio dei qubit
Si inviano tutti e tre i qubit. Supponendo che si verifichino solo errori di inversione a un bit, i qubit ricevuti si trovano in uno degli stati seguenti:
Provincia | Error |
---|---|
$\alpha\ket{000} + \beta\ket{111}$ | Nessun errore |
$\alpha\ket{100} + \beta\ket{011}$ | Qubit 1 |
$\alpha\ket{010} + \beta\ket{101}$ | Qubit 2 |
$\alpha\ket{001} + \beta\ket{110}$ | Qubit 3 |
Aggiunta di qubit ausiliari
Prima di tutto, si introducono altri due qubit, preparati nello stato $\ket{00}$. Questa coppia ausiliaria di qubit viene usata per estrarre informazioni dell'errore senza misurare direttamente o ottenere informazioni sullo stato logico.
Successivamente, si eseguono quattro operazioni CNOT: le prime due operazioni usano il primo e il secondo qubit ricevuto come controllo e agiscono sul primo qubit ausiliario e le ultime due operazioni usano il primo e il terzo qubit ricevuto come controllo e agiscono sul secondo bit ausiliario. Lo stato totale di tutti e cinque i qubit è ora:
Provincia | Error |
---|---|
$(\alpha\ket{000} + \beta\ket{111})\ket{00}$ | Nessun errore |
$(\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 |
Recupero della sindrome dell'errore
Per recuperare le informazioni sull'errore, si misurano i due qubit ausiliari negli stati $\ket{0}$ di base di calcolo e $\ket{1}$. In questo modo, si recupera lo stato comune, che viene chiamato sindrome di errore perché aiuta a diagnosticare gli errori nei qubit ricevuti.
Ora si conosce quale dei quattro stati possibili si trovano i tre qubit ricevuti. È possibile correggere l'errore applicando l'operazione di correzione. In questo caso si gestiscono errori di scorrimento bit, quindi la correzione è un'operazione $\sigma_x$ applicata a uno (o nessuna) dei qubit.
Ad esempio, se la sindrome di errore è $\ket{00}$, i qubit ricevuti si trovano nello stato $\alpha{000}\ket{+ \beta\ket{{111}$, che è lo stato originariamente inviato. Se la sindrome dell'errore è $\ket{11}$, i qubit ricevuti si trovano nello stato $\alpha{100}\ket{+ b.\ket{{011}$ Si verifica un errore di inversione di bit sul primo qubit, che è possibile correggere applicando un'operazione $\sigma_x$ al primo qubit.
Sindrome dell'errore | Comprimi stato | Correzione |
---|---|---|
$\ket{00}$ | $\alpha\ket{000} + \beta\ket{111}$ | Non eseguire alcuna operazione |
$\ket{01}$ | $\alpha\ket{100} + \beta\ket{011}$ | Applicare $\sigma_x$ al qubit 3 |
$\ket{10}$ | $\alpha\ket{010} + \beta\ket{101}$ | Applicare $\sigma_x$ al qubit 2 |
$\ket{11}$ | $\alpha\ket{001} + \beta\ket{110}$ | Applicare $\sigma_x$ al qubit 1 |
Estrazione del qubit originale
Infine, per estrarre il singolo qubit che si vuole trasmettere originariamente, si applicano due operazioni CNOT: una usa il primo qubit come controllo e agisce sul secondo qubit e l'altra usa il primo qubit come controllo e agisce sul terzo.
Lo stato del primo qubit è ora $\alpha\ket{0} + \beta\ket{1}$, ovvero il qubit originale che si vuole trasmettere.
Importante
Il codice QEC non ottiene informazioni sui coefficienti $\alpha$ e $\beta$, pertanto le sovrapposizioni dello stato di calcolo rimangono intatte durante la correzione.