giovedì 13 aprile 2017

Il computer quantistico




Dagli studi logici di Alan Turing al primo computer, dall’invenzione di internet ad oggi il progresso tecnologico ha registrato un’accelerazione senza pari nella storia della civiltà umana. Per vari decenni l’aumento della potenza di calcolo dei computer è proceduto parallelamente alla miniaturizzazione dei transistor, un fenomeno descritto come “legge di Moore”: tra gli anni ’60 e gli anni ’80 del secolo scorso la complessità dei processori, misurata ad esempio sulla base del numero di transistor presenti, ha quadruplicato ogni tre anni, per poi addirittura accelerare fino ad arrivare ai limiti stabiliti dai piccoli ordini di grandezza raggiunti oggi. I transistor di silicio più recenti hanno la dimensione di 10 nanometri, un ordine di grandezza vicino a quelli in cui si manifestano i turbolenti fenomeni della meccanica quantistica.
Quello che inizialmente era un limite è poi diventato la base di una nuova tecnologia, e forse anche di una nuova generazione di processori: i computer quantistici. L’idea risale agli anni ’80, quando il fisico Richard Feynman comprese che i principi fisici su cui si basa un hardware (la componente fisica del computer) influenzano profondamente la sua capacità di affrontare i problemi e tentò di concepire una macchina funzionante in base alle leggi della fisica quantistica, aprendo così una nuova era per l’informatica. Solo di recente, grazie ai progressi della tecnologia, si è arrivati ad un risultato concreto: nel 2011 la D-Wave Systems ha annunciato il D-Wave One, il primo computer quantistico della storia ad essere commercializzato, e nel 2016 la società IBM ha messo a disposizione pubblicamente IBM Quantum Experience, il primo computer quantistico in modalità cloud.

Per capire il funzionamento di un computer quantistico e le novità che presenta è necessario comprendere il funzionamento dei computer tradizionali. Ogni computer ragiona in termini di “bit”, l’unità di misura fondamentale dell’informazione e la quantità minima di input che il computer riesce ad elaborare (il termine deriva da “binary digit”, e significa appunto “pezzetto”). Nel corso della storia dei computer i bit hanno assunto le forme fisiche più varie: voltaggi applicati ai connettori di un transistor, buchi eseguiti in una scheda perforata, leve, righe bianche e nere di un codice a barre, porzioni magnetizzate di un disco. A prescindere dalla struttura, i bit possono assumere soltanto due stati: il connettore di un transistor può essere alimentato oppure no, una singola parte di una scheda può essere perforata oppure no, una leva può essere alzata o abbassata, le porzioni di un disco possono essere magnetizzate in un senso oppure nell’altro, e così via. Qualsiasi informazione l’utente voglia codificare, deve farlo in codice binario: attraverso, cioè, elementi (i bit) che possono assumere due valori, cui si dà convenzionalmente il nome di “0” e “1”. I bit sono raggruppati in “registri” o “sequenze”: quando si parla di PC a 32 o 64 bit si intende il numero massimo di bit che il computer è in grado di elaborare contemporaneamente. La quantità di informazione presente in un registro consiste nel numero di combinazioni dei valori 0 e 1 che possono assumere i bit che contiene: dato che i valori sono due, se il registro ha n bit il numero possibile di combinazioni è 2n. Ad esempio, un computer a 32 bit è in grado di gestire registri che presentano 232 possibili combinazioni di 0 e 1: 00, 01, 101, 0001, 11101, fino ad una sequenza di 0 e 1 che abbia 232 cifre.
Tutti i registri vengono gestiti dal computer attraverso un numero limitato di “porte logiche” o “calcoli di base”, sette in tutto, che appartengono alla logica introdotta dal matematico britannico George Boole nel corso del Diciannovesimo secolo: per fare qualche esempio, la porta “NOT” inverte il valore dell’input (da 0 a 1 e viceversa); la porta “AND” dà come output 1 nel caso in cui tutti gli input abbiano come valore 1 (11, 111, 1111, ecc.), 0 in tutti gli altri casi (01, 010, 0010, ecc.); la porta “OR” assegna all’output valore 1 se almeno un elemento del registro è 1 (01,010,0100, ecc.), 0 in tutti gli altri casi. Ogni computer elabora gli input eseguendo tutti i calcoli che occorrono, uno dopo l’altro, applicando le operazioni logiche (opportunamente collegate da uno o più algoritmi) a tutti i bit, fino a dare come risposta l’output finale: l’input è la sequenza iniziale di 0 e 1, l’output la sequenza finale di 0 e 1 che risulta dai vari calcoli effettuati. Talvolta il numero di dati e di calcoli può essere così elevato che il computer restituisce un output soltanto dopo un lungo lasso di tempo, anche anni o decenni (come nel caso delle equazioni della teoria delle stringhe, in generale in tutti i casi in cui si abbia a che fare con problemi definiti tecnicamente “intrattabili”), rendendo poco pratico il chiedergli di eseguire quel determinato compito.

Come i processori tradizionali, i computer quantistici sono sistemi binari: elaborano unità di informazione che possono avere due valori, 0 e 1. A differenza dei computer classici, tuttavia, i computer quantistici sfruttano i fenomeni della meccanica quantistica, come la sovrapposizione coerente di stati, l’entanglement, l’interferenza quantistica e l’effetto tunnel: questo gli conferisce non solo una potenza di calcolo immensamente più grande dei processori tradizionali, ma soprattutto la capacità di risolvere problemi classicamente intrattabili come la generazione di numeri veramente casuali, la fattorizzazione di cifre molto grandi, la ricerca efficiente in database e l’analisi di big data.
Al posto dei bit il computer quantistico utilizza i “qubit” (“quantum bit”), l’unità di informazione basata su fenomeni quantistici, alla cui realizzazione sono stati di volta in volta utilizzati atomi, molecole all’interno di soluzioni liquide, fotoni intrappolati in un campo magnetico, e così via. Per la produzione del proprio computer quantistico da 5 qubit la società IBM ha utilizzato le cosiddette “giunzioni Josephson”, costituite da due parti di metallo superconduttore unite da un materiale isolante o un metallo non superconduttore, che sfruttano i fenomeni quantomeccanici della superconduttività (l’assenza di resistenza al passaggio di elettroni, all’interno di particolari metalli portati ad una temperatura vicina a -273,15 gradi Celsius) e dell’effetto tunnel: il fatto, cioè, che una particella possa superare una barriera, ad esempio uno strato isolante o un campo di potenziale, anche senza avere la carica energetica sufficiente. Un fenomeno incompatibile con le leggi della fisica classica: un corpo che rotola lungo il crinale di una montagna situata in una valle, se non ha un’energia potenziale sufficiente a superare l’altro crinale, tornerà sicuramente indietro.
Come i bit tradizionali, i qubit possono assumere due soli valori: ogni volta che misuriamo un qubit, esso ha sempre valore 0 oppure 1. Tuttavia, a differenza dei bit i qubit possono trovarsi in un’altra condizione: la sovrapposizione coerente di stati. Per comprendere questo principio della fisica quantistica è necessario abbandonare la concezione tradizionale (e intuitiva) delle particelle: la particella (ad esempio un elettrone) non è una minuscola entità sferica dotata di uno stato (posizione nello spazio e nel tempo, velocità) oggettivo e ben definito, ma la sovrapposizione di tutti i suoi possibili stati futuri, ciascuno "pesato” con una probabilità (matematicamente, una funzione d’onda probabilistica). Occorre provare a immaginarla come il pavimento di un’immensa grotta, delle dimensioni dell’Universo, da cui si elevano tante stalagmiti raggruppate in una piccola zona: ciascuna stalagmite rappresenta la probabilità di trovare la particella in quel punto, e più alta è la stalagmite più alta è la probabilità di trovarvi la particella. Prima della misurazione con gli appositi apparati strumentali non ha senso parlare di una particella in un punto ben preciso e con una velocità ben definita: l’atto di misurazione partecipa alla creazione della realtà osservata, fa “collassare” la funzione d’onda e si ottiene un valore preciso per una quantità che prima era semplicemente una delle tante possibilità. È proprio l'osservazione che provoca la "scelta " di quel particolare valore fra tutti quelli possibili: come se tutte le stalagmiti presenti nella grotta, ad eccezione di quella alla cui sommità di volta in volta si trova la particella, rimanessero lì dove sono quando gli speleologi sono fuori a riposarsi e sparissero ogni volta che partono in esplorazione per cercarla.
Ogni volta che viene misurato, il qubit restituisce sempre come valore 0 oppure 1: prima di essere misurato, tuttavia, esso si mantiene in una sovrapposizione degli stati 0 e 1, e questo conferisce al computer quantistico una capacità di calcolo immensamente superiore ai computer tradizionali. Un processore classico, infatti, esegue calcoli su un numero n di registri di valore ben definito (ogni bit è 0 o 1), che dopo ogni operazione si trovano in un nuovo stato ben preciso, fino all’output finale che ha anch’esso un valore definito (un numero n di registri di bit 0 o 1): dopo ogni calcolo, l’input si trova in una ben precisa sequenza di 0 e 1 tra le 2n possibili. In un computer quantistico, invece, l’input si trova non in un solo stato definito, ma in un numero molto elevato dei 2n possibili stati, consentendo al pc di esplorare varie strade per calcolare l’output da passare al calcolo successivo. Come mai l’input si trova in un numero molto elevato, ma non in tutti i 2n stati possibili? La ragione risiede nell’entanglement quantistico, uno tra i fenomeni più incredibili e contro intuitivi della meccanica quantistica: il fatto che due particelle risultano correlate ed interdipendenti nelle proprietà anche a distanze lunghissime (persino anni luce, teoricamente l’intera grandezza dell’Universo), comportandosi di fatto come una sola entità. Se una delle due viene misurata, e di conseguenza forzata in un determinato stato osservabile, anche l’altra manifesta istantaneamente un cambiamento di stato identico (o meglio: complementare, dato che due particelle vicine nello spazio sono legate da una relazione di anti-parallelismo). Nei computer quantistici questo effetto viene utilizzato per mettere in correlazione input ed output, ponendo due qubit in uno stato di entanglement: ciò riduce il numero di stati che un registro può assumere, eliminando in partenza una o più sequenze di 0 e 1. L’entanglement, insieme alla sovrapposizione coerente di stati, è alla base del funzionamento del computer quantistico: la sovrapposizione coerente di stati consente il vertiginoso aumento di capacità di calcolo rispetto ai processori classici, ma senza l’entanglement non sarebbe concretamente possibile estrarre informazioni da uno o più registri di qubit, rendendo così inutili tutti i calcoli.


La tecnologia dei computer quantistici è appena agli albori, ed è molto complicato fare previsioni sui tempi di sviluppo e sulla sua diffusione su larga scala: ad oggi soltanto gli enti istituzionali ed i miliardari hanno le risorse necessarie (vari milioni di dollari) ad acquistarne uno, e la comunità scientifica internazionale dovrà fare passi da gigante per realizzare processori quantistici dotati di molti qubit e formulare una logica computazionale adatta ai fenomeni quantistici. La strada è ancora lunga, ma la scienza ha tutto l’interesse a percorrerla: oltre alla capacità di affrontare e risolvere i problemi intrattabili con i processori classici, il computer quantistico apre alla possibilità di effettuare simulazioni virtuali di sistemi quantistici, consentendo alla fisica (sia teorica che sperimentale) di entrare in una nuova era.