Practical Quantum Computing

Update 17 – Maggio : IBM Research annuncia la creazione 2 due nuovi processori quantum:

  • Processore a 16 qubit che potrà essere sperimentato gratuitamente attraverso IBM Q experience e accesso attraverso SDK disponibile su GitHub. https://github.com/IBM/qiskit-sdk-py questo servizio è accessibile in beta.
  • Processore a 17 qubit che fa uso di nuovi materiali i miglioramenti architetturali e ingegneristici da essere il doppio più potente di quanto è disponibile attraverso il servizio di accesso pubblico su IBM Cloud. Questo processore è l’elemento su cui è basata l’offerta di IBM Q early-access program per usi commerciali.

Source: http://www-03.ibm.com/press/us/en/pressrelease/52403.wss

MIT Technology Review ha recentemente presentato l’aggiornamento della lista delle 10 Breakthrough Technologies per il 2017 (https://www.technologyreview.com/lists/technologies/2017/). Tante belle idee e tecnologie che prederanno forma nei prossimi anni.

Tra queste viene ripreso (perché è il caso di dirlo visto che è un tema che è nella top ten da tanti anni e per ondate successive) il tema del Quantum Computing. L’accezione, questa volta, è pragmatica, anche il titolo stesso del tema vuole trasmettere questo messaggio “Practical”.

Quello che ci si aspetta, quindi, è che da qui a pochi anni sia finalmente l’ora del Quantum Computing, pratico. Pratico nel senso che in pratica cominceremo a vedere dei primi esemplari commerciali e meglio ancora, un ecosistema di tutto quello che poi serve per far funzionare un sistema del genere, che passa anche attraverso la crescita del Cloud.

IBM ha annunciato la prima iniziativa industriale di una roadmap per arrivare a creare Quantum Computer pratici (http://research.ibm.com/ibm-q/). Il Quantum Computer di IBM ha anche un nome si chiama “IBM Q” (dove Q=Quantum, si capiva).

Lo so, ne sono sicuro, molti di voi si stanno chiedendo cosa sia “IBM Q” e nello stesso tempo non si stanno chiedendo cosa sia “IBM Q”.

Sono in quel limbo quantico dove sanno di sapere e, nello stesso tempo, sanno di non sapere. Forse sto parlando di me stesso, ma questa è un’altra storia. 🙂

Su questo tema IBM ci sta mettendo la testa da decenni, lavorando e costruendo pezzo su pezzo. Cercando di ricavarne una versione industriale del tutto.

Perché il Quantum Computing “praticamente” ci serve e, come dicono gli americani, eccita?

Permette di risolvere problemi tosti che con i computer tradizionali (che chiamamo anche classici) non riusciremo mai a risolvere.

C’e’ ancora tanto lavoro da fare dal punto di vista della fisica, della matematica, dell’ingegneria e finalmente dell’Informatica, ma è opinione generale generale che nell’immediato futuro ci saranno avanzamenti significativi da farci superare alcuni limiti attuali.

In sintesi, ad oggi:

  • Non abbiamo ancora la prova provata che i computer quantici possono fare ogni cosa meglio dei computer classici (quindi, i computer che abbiamo sotto la scrivania, nei data center o raggiungibili in cloud, ci servono)
  • Ad oggi non c’e’ nessuno studio comparativo scientificamente certo che dica con precisione dove i computer classici perdono.
  • Ancora molti aspetti tecnici devono essere risolti per arrivare ad una versione su larga scala, ma la strada o il programma c’e’.
  • Non è questione di soldi o di economie è questione ingegneristica: c’e’ ancora da lavorare.
  • Però, come al solito, se cominci a stimolare il paniere, e cominci a sollecitare la creatività del mondo, normalmente, il mondo risponde e produce, anche velocemente.

Veniamo a IBM Q.

Per capire il problema di fondo che il IBM Q cerca di superare. Che poi permette di capire che ci sono problemi semplici (risolvibili in tempi decenti) e problemi “hard” che per risolverli ci vuole tempo, ma tanto tempo.

Questi ultimi problemi, all’inizio, ci sembrano semplici pure loro. Uno ci prova e dice: ce la faccio. Poi quando passa dai piccoli numeri ai grandi numeri della realtà comicia a capire i limiti. Questi secondi sono i problemi che crescono esponenzialmente rispetto alla crescita dei numeri di input.

Guardate il video perche’ è bello e spiega il fenomeno. https://www.youtube.com/watch?v=t3d0Y-JpRRg

E’ la storia di un signore che regala ad un re una scacchiera per giocare a scacchi che ha 64 celle. Il re è contento e gli vuole dare un premio. L’uomo dice, che vuole giusto un po’ di riso al giorno per i successivi 64 giorni, tanti quanti sono i quadratini della scacchiera.

Chiede di avere il riso con una sequenza del tipo: il primo giorno 1 chicco, il secondo 2 chicchi (il doppio del primo), il terzo 4 chicchi, il quarto giorno 8 chicchi, il quinto 16 chicchi e così via.

All’inizio sembra un regalo modestissimo, tant’è che dopo una settimana il re regala all’uomo appena 127 chicchi di riso ma per soddisfare le richieste e mantenere l’impegno al giorno 64 il re deve regalare all’uomo una quantità di riso che è equivalente al peso del monte Everest , cioè 1000 volte la produzione mondiale di riso annuale, per capire la quantità.

Bene, questo è un problema che cresce esponenzialmente.

Di problemi che hanno una complessità esponenziale, più grande è l’input più complessa è l’operazione da fare, ce ne sono tanti.

Uno famoso che consideriamo da quando siamo piccoli è la fattorizzazione dei numeri interi. Questo problema è facile da fare quando i numeri sono piccoli ma quando abbiamo numeri grandi questo problema non si risolve in tempi ragionevoli. Il metodo RSA di crittografia che normalmente

usiamo ha alla base questo trucco. In pratica, sfruttando il fatto che è difficile fare questa operazione in tempi ragionevoli qualcuno ha pensato di nascondere nei fattori primi di un numero molto grande la chiave per decriptare un messaggio.

Ad oggi per forzare un algoritmo RSA-768 che un numero ottenibile da due numeri primi a 232 cifre decimali c’è voluto il lavoro di 2 anni e centinaia di computer classici. Un lavoro che un computer con un singolo core a 2.2 Ghz AMD e 2GB di RAM c’avrebbe messo 1500 anni.

Stiamo tranquilli quindi, per il momento normalmente usiamo RSA-1024 o anche RSA-2048 che è un numero scomponibile in numeri primi di almeno 300 cifre decimali.

Ma ci sono altri problemi che crescono esponenzialmente anche vicini alla quotidianità delle aziende.

Pensate ad un’azienda che produce porte di alluminio e riceve tanti tanti ordini ed ha il problema di dover tagliare i fogli grezzi di alluminio in modo da sprecare il minimo possibile di materiale.

Anche questo è un problema che cresce esponenzialmente rispetto al numero degli ordini per un sistema che deve suggerire come tagliare per sprecare la minima quantità possibile di alluminio.

Questi sono esempi di problemi che rientrano in una classe di problemi difficili chiamati NP la cui complessità risolutiva non è polinomiale, P.

Poi ci sono delle sfumature matematiche varie ma lasciamole stare. Per il problema di fattorizzazione dei numeri primi nessuno ha provato l’esistenza di un metodo che lavori con complessità P, è un problema in casse NP anche se poi non è detto che lo sia in questa classe :-))

Per quello che riguarda il Quantum Computer, c’e’ stato un matematico che nel 1994, tal Peter Shor, dell’MIT che ha inventato un metodo che risolve il problema di fattorizzazione dei numeri interi in tempi polinomiali che può funzionare solo su un Quantum Computer.

Per i cultori di YouTube possono vedere la descrizione del metodo fatta da Peter Shor stesso in 2 minuti in questo video https://www.youtube.com/watch?v=hOlOY7NyMfs

Quando Shor si è inventato il metodo il quantum computer non esisteva da punto di vista pratico.

Qualche anno dopo, i miei colleghi IBM Research di Almaden in California assieme all’univ. di Stanford, nel 2001, hanno messo su un quantum computer vero ed hanno dimostrato il teorema di Peter Shor. Facendo la fattorizzazione del 15. https://www-03.ibm.com/press/us/en/pressrelease/965.wss

In pratica hanno trovato i due fattori: 3 e 5. Direte voi bello sforzo, lo so.

Però questi 2 fatti, il metodo di Shor, e poi la direzione e gli sviluppi ingegneristici hanno accelerato l’interesse industriale verso i Quantum Computer.

Perche’ il Quantum viene visto come una possibile strada per fare macchine in grado di attaccare i problemi Hard. E qualcuno ha dimostrato che si può fare ed è utile. Sia corporation stanno investendo in modo significativo che governi e la parte pubblica e questo accelererà la roadmap stessa.

Allora, detto tutto questo, quando si pensa a IBM Q, occorre pensare a tutti i livelli di complessità che stanno dietro, che secondo me è poi la chiave interpretativa che ciascuno di noi deve considerare se vuole vedere l’intero problema sott’occhio e capire lo stato dell’arte, anche andando oltre a capire cosa è il qbit e le sue famose proprietà quantistiche.

Questi sono i livelli che io adopero e che poi fa la differenza di IBM, perché’ ci lavora su tutto:

LIVELLO 1: HARDWARE – E’ il livello della fisica di base che si occupa della possibilità di creare un oggetto fisico con scelta di materiali, ingegneria etc per realizzare un Quantum computer Sono quelli che inventano il QBit e garantiscano che si possa realizzare un qualcosa che abbia le proprietà del QBit: particelle che sono in più stati contemporaneamente e capacità di “influenzarsi” a vicenda per rappresentare un’informazione più complessa.

LIVELLO 2: MATEMATICA – E’ il livello della matematica di base che si occupa di inventare metodi (e quindi algoritmi) che sfruttano il livello precedente per risolvere un problema. Per intenderci è il lavoro che ha fatto Peter Shor. Qui ci si aspetta che arrivino lavori nuovi in quest’area.

LIVELLO 3: CIRCUITI – E’ l’evoluzione del livello 1. Che crea delle “sovrastrutture” e s’inventa sorte di “operatori” logici di base che fanno leva sulle proprietà dei QBit. Questo livello serve per creare l’equivalente che potremmo dire dei nostri “circuiti” classici.

LIVELLO 4: ANALOGO ALL’ASSEMBLER – Sono stati formulatati dei linguaggi che permettono di lavorare sui quantum circuiti. Rappresenta un insieme di blocchi di base di un programma quantum. I ricercatori hanno formulato una specie di linguaggio che si chiama QASM, ad esempio.

LIVELLO 5: AMBIENTE PER LAVORARE CON CIRCUITI E L’ASSEMBLER Sono gli ambienti (anche cloud) permettono di lavorare con il Livello 3.

Ad esempio, IBM ha lanciato un ambiente di questo tipo che si chiama Quantum Experinece utilizzabile in cloud. Tu ti colleghi, ti disegni i tuoi “circuiti” e poi vengono eseguiti su un Quantum Computer fisico vero a 5-Qbit che sta a Yorktown (https://quantumexperience.ng.bluemix.net/qstage/#/community). Nella roadmap, a breve, avremo anche un ambiente per lavorare su 20 qbit simulati.

LIVELLO 6: PROGRAMMI DI BASSO LIVELLO – Costruire “Programmi” che lavorano con il livello 4 3 usano l’ambiente a livello 5.

Già questo livello permette di sviluppare algoritmi legati a problemi di base. Questo è chiaramente difficile ma i gruppi di ricerca si stanno cimentandosi e producendo algoritmi a questo livello.

Pipeline futura dove stanno lavorando i laboratori? Tanti livelli sopra J) Ad esempio:

LIVELLO 7: LINGUAGGI DI ALTO LIVELLO. Costruire dei linguaggi di ALTO LIVELLO, tipo il QFORTRAN.

Mi fermo qui, che sarebbe il 1956, dei computer classici :-))) Quando IBM ha scritto il FORTRAN per permettere di usare un computer classico che allora era forse una specie di computer quantistico.

Pietro Leo is an Executive Architect and CTO in IBM, Chief Scientist and Research strategist for IBM Italy Research and Business, a well-known Innovation Agitator and Analytics maker. Member of the IBM Academy of Technology Leadership Team (#IBMAoT) and Head of IBM Italy Center of Advanced Studies. You can also follow him on Twitter (@pieroleo)

Personal Site: https://pieroleo.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: