SCIENZA E RICERCA

Computer quantistico: un passo avanti nella correzione degli errori

Richard Feynman fu il primo a suggerire, a inizio degli anni ‘80, che si sarebbe potuto sfruttare i principi della meccanica quantistica per ottenere un salto di qualità nei sistemi computazionali. L’intuizione si rivelò esatta e negli anni ‘90 l’incontro con la teoria dell’informazione, che già aveva permesso lo sviluppo dei computer classici, portò alle prime applicazioni della teoria dell’informazione quantistica.

Oggi ne esistono già molte. Grazie alla computazione quantistica si studia ad esempio come trovare i fattori primi di numeri molto grandi (procedura alla base dei protocolli di sicurezza informatica), oppure la soluzione a complessi problemi di ottimizzazione (come la disposizione dei container e del loro contenuto in un porto). La simulazione quantistica serve anche al potenziamento del machine learning nei sistemi di intelligenza artificiale, o alla chimica quantistica, che viene usata per scoprire nuove molecole per nuovi farmaci.

Queste applicazioni richiederanno miliardi di operazioni di calcolo quantistico, ciascuna delle quali è un processo al contempo logico e fisico tanto affascinante quanto fragile. A livello quantistico infatti le particelle stanno in quella che gli scienziati hanno scoperto essere una sovrapposizione di stati. I tempi, di quella che può essere altrimenti chiamata coerenza quantistica, sono però molto ridotti, nell’ordine dei microsecondi in alcune implementazioni, ancora più piccoli in altre. Mantenere questa coerenza è cruciale per affrontare operazioni complesse. La perdita di coerenza al contrario è una delle ragioni più frequenti per cui si accumulano errori nel calcolo quantistico.

I microprocessori quantistici attualmente disponibili ancora non operano al meglio delle loro possibilità: i migliori disponibili hanno infatti tassi di errore di 10-3, ovvero tendono ad accumulare 1 errore ogni 1000 operazioni. È un valore che può sembrare molto piccolo, ma invece è ancora troppo grande per garantire accuratezza in sistemi di calcolo più complessi di pochi qubit, l’equivalente quantistico del bit, dove l’informazione può venire codificata in una sovrapposizione di 0 e 1.

“La sfida ancora aperta è quella di riuscire a raggiungere il cosiddetto fault-tolerant quantum computing, cioè un computer quantistico che non accumuli troppi errori nelle operazioni di calcolo” spiega Simone Montangero, professore al dipartimento di fisica e astronomia e a capo del progetto Quantum Computing and Simulation Center dell’università di Padova.

In uno studio appena pubblicato su Nature, un gruppo di ricercatori del Google Quantum AI Lab ha applicato un codice di controllo e correzione degli errori al microprocessore quantistico Sycamore da 72 qubit e ha osservato che il numero di errori accumulati, utilizzando un codice che usa 49 qubit (distance-5 surface code), è leggermente minore di quello che si ottiene utilizzando un codice più piccolo che coinvolge invece 17 qubit (distance-3 surface code).

“Per controllare e correggere gli errori delle operazioni di calcolo quantistico bisogna fare altre operazioni di calcolo quantistico che a propria volta sono soggette a errori” spiega Montangero. Se il tasso di errori iniziale del sistema è sopra una certa soglia critica, all’incirca 10-4 (1 ogni 10.000 operazioni), all’aumentare delle operazioni di correzione aumenteranno anche gli errori. Se però il tasso di errori iniziale è al di sotto di tale soglia, all’aumentare delle operazioni di correzione gli errori inizieranno effettivamente a calare.

I ricercatori del Google Quantum AI Lab per la prima volta hanno osservato proprio questo: un numero di errori minore a fronte di più operazioni di controllo e correzione. “È un risultato molto importante perché dimostra che migliorando la qualità dei qubit della macchina, delle loro porte logiche e aumentando le operazioni di controllo, gli errori diminuiscono, anche se per ora di pochissimo, come riportano onestamente gli autori”. In altri termini, è stato fatto un passo ulteriore verso il fault-tolerant quantum computing. Anche se altre sfide restano aperte.

Come funziona il codice di correzione degli errori

In ambito di computazione classica l’errore di calcolo viene chiamato bit flip: “invece di essere 0, il bit diventa 1, o viceversa” spiega Montangero. Questo può succedere per diversi motivi, come ad esempio un elettrone che passa attraverso una barriera non perfettamente isolata, o per via del disturbo di un raggio cosmico. “Anche in un calcolatore classico, pur avendo una tecnologia rodata, ottimizzata e sviluppata negli ultimi 80 anni, la probabilità di errore per quanto piccola è ineliminabile”.

Con gli errori bisogna convivere. Serve quindi una strategia per correggerli. “Quando i miei figli scrivono un tema, lo rileggono per controllare gli errori di ortografia. Esistono tecniche più sofisticate, come leggere al contrario dalla fine all’inizio, così non si segue il filo logico e ci si concentra sugli errori. Gli algoritmi o codici di correzione degli errori funzionano in modo analogo, con la differenza che non vengono eseguiti attivamente dall’utente: è il computer stesso che ricontrolla le proprie operazioni. Mentre esegue il calcolo ogni tanto si ferma, controlla, e se ci sono errori li corregge”.

Il voto di maggioranza

Restiamo in ambito di computazione classica. Se assumiamo che la probabilità che avvenga un bit flip sia uno su un miliardo, la probabilità che avvengano due errori indipendenti è il prodotto delle probabilità del singolo errore, quindi un miliardesimo per un miliardesimo. “Un numero piccolissimo, quasi zero”.

La tecnica più semplice che solitamente viene utilizzata per correggere gli errori si chiama voto di maggioranza, spiega Montangero. Il codice non controlla tutti i bit indipendentemente uno per uno, ma solo a gruppi, chiamati bit logici, che vengono creati appositamente per venire controllati in rappresentanza di un certo numero di bit fisici. Questo eccesso di bit dedicati al controllo in gergo viene chiamata ridondanza.

“Se ad esempio tre bit fisici codificano un bit logico, che ipotizziamo sia 0, quando controllo i tre bit fisici e trovo tre 0 vuol dire che non c’è stato alcun errore. Se però trovo due 0 e un 1, siccome la probabilità che due siano indipendentemente “flippati” è quasi zero, l’errore deve essere in quell’1. L’algoritmo allora lo corregge e il calcolo continua”.

Con un tasso di errore iniziale basso, per esempio di un miliardesimo, se i bit fisici codificati in quello logico sono cinque, quando il codice li controlla applicherà lo stesso principio di maggioranza: “se mi aspetto che siano tutti 0 ma trovo invece due 1, vige ancora il voto di maggioranza: è più probabile ci siano stati due errori anziché tre, quindi l’algoritmo correggerà i due 1, ritrasformandoli in 0”.

La soglia critica

Anche controllare e correggere sono però operazioni che si aggiungono a quelle di calcolo e che sono a propria volta soggette a errori. “In sostanza questo gioco funziona solo se la probabilità di errore della macchina rimane sotto una certa soglia critica. Se la probabilità di errore è sopra questa soglia, che va opportunamente calcolata, all’aumentare delle operazioni (incluse quelle di correzione) aumentano anche gli errori. Se invece la probabilità resta sotto questa soglia non solo gli errori non aumentano, ma all’aumentare delle operazioni di correzione gli errori tendono a zero”, proprio perché gli errori vengono efficacemente corretti.

“Questa è la potenza del codice di correzione degli errori, quando funziona, e questa è quella che viene chiamata fault-tolerant computation, cioè una computazione che convive con gli errori”.

Predire con esattezza qual è il valore di questa soglia è estremamente complicato: “ci sono un sacco di fattori da considerare, ma c’è un certo consenso nel ritenere sia intorno a 10-4, ovvero un errore ogni 10.000 operazioni”.

Come notano gli autori del paper pubblicato su Nature, per i migliori calcolatori quantistici oggi esistenti questo valore è ancora intorno a 10-3: significa che la macchina accumula ancora troppi errori per garantire l’efficacia del codice di correzione.

Tuttavia, perfezionando progressivamente l’hardware, ci si sta avvicinando alla soglia desiderata. “I ricercatori di Google hanno proprio fatto un test per capire se la loro macchina sia già sotto soglia. Naturalmente l’hanno fatto con un codice di correzione degli errori non classico, ma quantistico” sottolinea Montangero.

Correggere gli errori nel mondo dei quanti

Se in ambito classico l’errore di calcolo o bit flip, da un punto di vista fisico, viene generato ad esempio da un elettrone fuori posto o dall’interazione indesiderata con un raggio cosmico, in ambito quantistico l’errore è dovuto ad esempio dal cambio di fase (phase flip) della funzione d’onda che descrive lo stato di sovrapposizione quantistica. Diversi fattori lo possono causare.

In ambito quantistico l’osservazione comporta necessariamente un’interazione fisica (come lo scambio di fotoni), che comporta uno scambio di energia e quindi la modifica dello stato quantistico osservato. “Si tratta di stati molto fragili, che non possono essere osservati direttamente, perché quest’interazione li distruggerebbe. Persino il campo magnetico terrestre può influire sullo stato di sovrapposizione quantistica”.

Siccome non è possibile osservare direttamente i qubit fisici (qui chiamati data qubit) che codificano l’informazione in un qubit logico, il codice utilizzato dai ricercatori di Google prevede la creazione di qubit aggiuntivi (i measure qubit) che possono venire osservati. “Non si tratta propriamente di copie dei qubit fisici, ma di qualcosa di più sofisticato, anche se l’idea è quella” specifica Montangero.

I measure qubit sono stati utilizzati dai ricercatori di Google per contare il numero di errori che il microprocessore accumula nelle operazioni di calcolo e di correzione. Aumentando il numero di qubit fisici che definiscono un qubit logico, ovvero passando da un codice più piccolo a uno più grande, gli autori hanno osservato che il numero di errori diminuisce: il lavoro riporta un tasso di errore del 2,91% per ciclo, nel caso del codice distance-5 che coinvolge 49 qubit, contro il 3,02% per ciclo del codice distance-3 che usa 17 qubit.

Tuttavia, se il microprocessore di Google è davvero già sotto la soglia critica lo è davvero di poco. In conclusione infatti gli autori sottolineano che occorre ancora migliorare, di circa il 20%, il tasso di errore sulla singola operazione.

Oltre a migliorare la qualità dei qubit e delle porte logiche sui qubit per abbassare la probabilità di generare errori, rimangono da vincere le sfide di natura prettamente ingegneristica: “un domani si punta ad avere computer quantistici da 1000 qubit. Per ciascun qubit bisognerà riuscire a controllare ad esempio impulsi laser che abbiano una precisione a livello del singolo atomo. Inoltre occorrerà coordinare con dei software un apparato la cui complessità sarà elevatissima. Immaginiamo di avere un Boeing 747 già costruito ma senza un pannello di controllo: sviluppare un software che coordini una macchina del genere è di per sé una sfida tecnologica enorme”.

Il risultato ottenuto dai ricercatori di Google, per quanto parziale, ha però il vantaggio di essere indipendentemente dalla tecnologia con cui viene realizzato: Sycamore è un microprocessore quantistico basato sui superconduttori, ma la procedura è ugualmente applicabile ad altri approcci con cui si sta tentando di sviluppare il computer quantistico, come gli ioni intrappolati, i fotoni o gli atomi neutri.

LEGGI ANCHE

© 2018 Università di Padova
Tutti i diritti riservati P.I. 00742430283 C.F. 80006480281
Registrazione presso il Tribunale di Padova n. 2097/2012 del 18 giugno 2012