Ormai siamo abituati alla filosofia che quando compri un computer è già vecchio da molti anni. Per me è sempre stato così, l’ultima cosa la scheda video, che dopo 2 mesi è stata soppiantata dal nuovo modello, più veloce e performante.
Sembra che la “sete” di potenza di calcolo non si cheti mai. Tra un po’ un giga di memoria equivarrà ad un litro di benzina e, se ci fidiamo della Prima legge di Moore, bisogna stare al passo con processori che raddoppiano la propria potenza di calcolo ogni 18 mesi.
Una bella differenza rispetto alla vecchia previsione di Howard Aiken (che potrebbe essere una leggenda, ma è comunque interessante) secondo cui solo sei (6!) computer digitali avrebbero soddisfatto interamente i bisogni degli interi Stati Uniti. Probabilmente chi ha detto questa frase non teneva conto di come i computer sarebbero entrati nella vita di tutti i giorni e della mastodontica quantità di dati che sarebbe stata prodotta in ambiente scientifico ed industriale.
Un sistema per stare al passo con la crescente richiesta di potenza di calcolo possono essere i computer quantistici, che sfrutterebbero le leggi della Meccanica Quantistica per amplificare la memoria disponibile per il calcolo.
Per capire come funzionano i computer quantistici bisogna capire fondamentalmente 2 cose: come funzionano i computer classici e come funziona la meccanica quantistica. Molti dei lettori di questo blog hanno sicuramente un’ottima conoscenza dei computer, ma faccio una brevissima introduzione per chi non ne sa molto, rimanendo per ragioni di spazio ad un livello estremamente divulgativo.
Il concetto di base del computer, nell’ottica della realizzazione di un computer quantistico, è la macchina di Turing, una macchina formale composta da un nastro di lunghezza infinita composto da caselle quadrate. Ciascuna casella può contenere un simbolo (0 o 1) o essere vuota. Una macchina in grado di leggere questo nastro interpreta la serie di simboli in modo da tradurli in istruzioni che poi può eseguire o inviare altrove. Ecco descritto in 2 parole cos’è un compuer!
Nel 1981, per la prima volta, Poul Benioff ha teorizzato la possibilità di creare una macchina di Turing quantistica.
E veniamo dunque alla meccanica quantistica. Non pretendo in nessun modo di spiegare la meccanica quantistica in poche righe, e chi fosse interessato a una lettura più approfondita può dare un’occhiata alla pagina di wikipedia o di forma-mentis, e per chi è veramente interessato consiglio la lettura dell’ottimo libro “Alice nel Paese dei Quanti” di Robert Gilmore che spiega la meccanica quantistica nel modo più intuitivo che abbia mai letto.
Il concetto che serve a noi è però relativamente semplice. Nella meccanica classica quando un oggetto viaggia ad una certa velocità nello spazio, il suo stato è interamente descritto dalla velocità con cui viaggia e la posizione in cui si trova in ogni istante. La meccanica quantistica sostiene che un oggetto, come per esempio una particella, non può avere nello stesso momento una posizione e una velocità note con una determinata precisione.
È quindi impossibile sapere nello stesso momento sia dove una particella è sia a che velocità va. Il principio che descrive questa caratteristica si chiama “Principio di indeterminazione di Heisenberg” ed è illustrato in maniera intuitiva dal paradosso del gatto di Shrödinger. Per spiegare ad Einstein e compagni il concetto di stati sovrapposti (a cui tornerò tra un attimo), Shrödinger ha proposto il seguente esperimento. Immaginiamo un gatto chiuso dentro una stanza di acciaio. Assieme a lui vi è una macchina, posta in una posizione di sicurezza irraggiungibile dal gatto.
Questa macchina contiene un contatore Geiger e una piccolissima quantità di materiale radioattivo. Una quantità così piccola che nel giro di un’ora può decadere, emettendo una radiazione, ma anche, con la stessa probabilità, può non decadere e quindi non emettere nulla. Se la radiazione viene emessa il contatore Geiger emette una scarica elettrica che attiva un meccanismo che fa permeare la piccola stanza di acido cianidrico, uccidendo così il gatto.
Se lo sperimentatore ha mantenuto sigillato il sistema per un’ora, uno può dire che il gatto è vivo se il materiale radioattivo non è decaduto, e morto se invece è avvenuto il decadimento. A questo punto se uno, dall’esterno, vuole descrivere lo stato del gatto dopo un’ora esatta che è stato messo dentro la stanza, dovrà descriverlo come una sovrapposizione di stati, in cui lo stato di gatto vivo e di gatto morto sono sovrapposti in parti uguali, in quanto il gatto ha la stessa probabilità di essere vivo o morto.
Questo “esperimento” è di particolare interesse in quanto trasforma l’indeterminazione microscopica, ovvero lo stato di energetico degli atomi di materiale radioattivo, in un’indeterminazione macroscopica, ovvero se il gatto è vivo o morto. Questo fa si che un’osservatore esterno possa effettivamente misurare lo stato del gatto, osservando se è vivo o morto, e “degenerando” così lo stato in una condizione misurabile.
Adesso possiamo facilmente capire il principio della Macchina di Turing quantistica. In questo caso le caselle contengono una sovrapposizione di stati, 1 e 0, o casella bianca. In questo senso la casella è sia 1 che 0 (e tutti gli stati intermedi) che nulla allo stesso tempo. Se chiamiamo le caselle bit, allora vediamo che considerando per esempio un sistema a 3 bit, il computer classico può assumere le combinazioni 000, 001, 010,100,011,101, 110, 111. Un bit quantistico, o qubit, è descritto come la probabilità di trovarsi in un certo stato. Per descrivere la probabilità di uno oggetto di trovarsi in un certo stato si usa una funzione chiamata funzione d’onda , la cui ampiezza rappresenta proprio la probabilità. In questo modo il qubit non è limitato a 2 stati, ma è contempraneamente una moltitudine di stati. Il qubit, in pratica può rappresentate un atomo, o una particella, o un nucleo atomico.
Se ad un dato momento una persona misura lo stato del qubit, allora il suo stato degenera, e si dice che si fa collassare il computer quantistico in uno stato classico, esattamente come succede quando si guarda se il gatto è vivo o morto. Questa è la principale limitazione pratica nella realizzazione di un computer quantistico. È necessario infatti trovare un sistema di “lettura” indiretto che non interferisca col sistema, “aprendo la scatola”. Un possibile fenomeno che è possibile sfruttare in questo senso è la correlazione quantistica, o entanglement, in cui quando un atomo, per esempio, interferisce con un altro atomo, può assumerne alcune proprietà. In questo modo si può osservare il secondo atomo, senza disturbare quello originale.
Questo principio permette al computer quantistico di essere estremamente più veloce nel effettuare calcoli complessi. Un esempio è dato dalla fattorizzazione in numeri primi di una data cifra. Attualmente non esiste un algoritmo realizzabile con i computer a nostra disposizione per effettuare tale calcolo, infatti questo sistema di fattorizzazione è la base fondamentale della crittografia utilizzata ai giorni nostri. Un computer quantistico, invece, potrebbe risolvere facilmente il problema utilizzando l’algoritmo di fattorizzazione di Shor, rendendo inutili tutti i sistemi di crittografia attuali.
I computer quantistici potrebbero essere il prossimo passo dei computer, il naturale sviluppo degli attuali calcolatori, proprio come i transistor hanno sostituito le vecchie valvole, ma la strada prima di realizzare concretamente questi computer è ancora lunga. Nel 2007 un’industria canadese è riuscita a realizzare un computer quantistico a 16 qubit, in grado di risolvere sudoku e altri giochi matematici in modo estremamente veloce. Prima di poterci installare Halo, però, ne passerà di tempo…