18 ottobre 2018

jQuantum: simulare gratis algoritmi quantistici!

Forse non molti sanno che i primi computer erano enormi, tanto che occupavano interi piani di un edificio, e svolgevano i loro compiti piuttosto lentamente. Grazie ai continui sviluppi nel campo della microelettronica hanno cominciato a ridurre le loro dimensioni aumentando allo stesso tempo le loro prestazioni. Questo ha fatto si che negli anni '80 fossero disponibili i primi personal computer.

Oggi hanno raggiunto capacità tali che possono stare tranquillamente in tasca: chi di noi non ha uno smartphone con sé?

Purtroppo però la capacità di miniaturizzazione dei circuiti elettronici sta arrivando al suo limite dal momento che si stanno di fatto raggiungendo dimensioni paragonabili a quelli degli atomi stessi, regno questo dove domina sovrana la meccanica quantistica.

Per superare le difficoltà legate a queste limitazioni si sta progettando una nuova generazione di computer che sfruttano per funzionare dei principi della meccanica quantistica.

Per approfondire come funziona un computer quantistico vi rimando ad un mio post dedicato.

Per il momento vi è sufficiente sapere che in un computer quantistico l'informazione viene codificata in quelli che vengono detti qubit (contrazione di quantum bit) che sfruttano una proprietà tipica della meccanica quantistica detta sovrapposizione degli stati. In pratica, a differenza dei bit, i qubit possono assumere non solo i valori 0 e 1 ma anche uno qualsiasi compreso tra di essi.

Per rendervi conto di quanto sia ritenuto importante lo sviluppo di questi nuovi computer basti sapere che colossi come IBM, Google, Intel vi hanno e vi stanno investendo ingenti risorse economiche e non solo. E' grazie a loro se oggi esistono delle prime realizzazioni di computer quantistici, anche se non sono ancora disponibili per il grande pubblico.

Queste prime versioni di computer quantistici sono in grado di gestire poche decine di qubit ma molto probabilmente potremo vederne di capaci di gestire alcune migliaia di qubit entro il prossimo decennio o poco più.

Ma ciò non vuol dire che nel frattempo non possiate già oggi avvicinarvi a questo fantastico mondo.

Infatti potete cominciare a capire come si programma un computer quantistico e testare i vostri algoritmi quantistici anche se non ne avete ancora a disposizione uno vero e proprio.

Per farlo vi basta usare un semplice software: jQuantum.

Si tratta di un programma open source scritto in java che in pratica è un simulatore di computer quantistico. Grazie ad esso potrete simulare l'implementazione di circuiti quantistici su un piccolo registro quantico fino a circa 15 qubit. Il suo obiettivo principale è quello di aiutare ad apprendere e comprendere i circuiti quantici che forse serviranno da elementi costitutivi per l'invenzione di nuovi algoritmi quantistici.

A differenza dei computer tradizionali i programmi per quelli quantistici si scrivono disegnando quelli che vengono appunto detti "circuiti quantistici". All'atto pratico si ha a disposizione una specie di spartito musicale in cui vengono posti, e collegati fra loro, i vari blocchi che rappresentato i vari tipi di compiti di base che è possibile eseguire e che vanno a costituire la logica del nostro algoritmo quantistico.

Sul sito di riferimento vengono messi a disposizione vari esempi di circuiti quantistici da usare come guida per crearne di propri.

Quindi se volete prepararvi sin da subito a prendere dimestichezza con i computer di nuova generazione ed essere pronti per quando saranno disponibili per tutti, allora jQuantum vi sarà di aiuto.

Se ti è piaciuto l'articolo, segui il feed per tenerti sempre aggiornato sui nuovi contenuti del blog!

9 ottobre 2018

I computer del futuro saranno quantistici!

Da quando hanno fatto la loro prima comparsa i computer sono diventati sempre più potenti e compatti, tanto che oggi è possibile averne sempre uno insieme a noi ovunque ci troviamo. Infatti chi di noi non ha almeno uno smartphone con sé?

Tutto questo è oggi possibile grazie al continuo raffinarsi delle tecnologie di miniaturizzazione dell'elettronica che costituisce questi fantastici dispositivi, diventati ormai indispensabili sia a livello personale che professionale.

Purtroppo però la capacità di miniaturizzazione dei circuiti elettronici sta arrivando al suo limite dal momento che si stanno di fatto raggiungendo dimensioni paragonabili a quelli degli atomi stessi, regno questo dove domina sovrana la meccanica quantistica.

Ma proprio dalla meccanica quantistica potrebbe arrivare la soluzione per oltrepassare questa barriera di miniaturizzazione ed allo stesso tempo far nascere una nuova generazione di computer: i cosiddetti computer quantistici.

Ma come funziona un computer quantistico?

La potenza di calcolo dei computer tradizionali, che usiamo quotidianamente, è legata alla capacità di elaborare un grandissimo numero di unità di codifica delle informazioni cioè i bit (contrazione di binary digit) che possono assumere uno tra i valori 0 e 1.

In un computer quantistico l'informazione invece viene codificata in quelli che vengono detti qubit (contrazione di quantum bit) che sfruttano una proprietà tipica della meccanica quantistica detta sovrapposizione degli stati. In pratica, a differenza dei bit, i qubit possono assumere non solo i valori 0 e 1 ma anche uno qualsiasi compreso tra di essi.

Per avere un'immagine mentale di come rappresentare questo comportamento immaginate una sfera trasparente ai cui poli ci siano i valori 0 e 1. Supponiamo che una freccia che parte dal centro della sfera indichi i valori che è possibile assumere da un bit o un qubit. La freccia del bit potrà puntare solo verso uno dei poli a seconda che assuma il valore 0 oppure 1; invece la freccia del qubit potrà puntare in qualsiasi direzione. Questa sfera è quella che viene detta sfera di Bloch.

L'altra proprietà legata alla meccanica quantistica che permette ai computer quantistici di avere elevate velocità di calcolo è quella chiamata entanglement: due particelle quantistiche possono condividere lo stesso stato quantistico (cioè il valore del qubit) anche se sono enormemente distanti fra loro.

Una spiegazione semplice, seppur dettagliata, di come funzionano i computer quantistici è riportata nel video seguente.


Mentre un computer tradizionale risolve un problema assegnato in maniera sequenziale, un computer quantistico invece può risolvere molteplici problemi contemporaneamente. Ed è questa sua capacità che potrebbe rivoluzionare interi settori.

Un primo campo in cui si potrebbe pensare di utilizzare i computer quantistici è per esempio quello farmaceutico. Essi potrebbero analizzare allo stesso tempo le interazioni tra diverse molecole, proteine o altri composti e aiutare a capire quali di queste possono migliorare una data condizione o curare una malattia.

In biologia potrebbero esser usati per analizzare rapidamente la sequenza genetica delle persone aprendo così la strada verso la medicina personalizzata.

Nel campo delle previsioni meteorologiche, potendo analizzare più dati contemporaneamente, daranno ai meteorologi delle previsioni molto più accurate aiutandoli, per esempio, ad individuare in anticipo e con maggiore precisione quando e dove colpirà un uragano.

Potrebbero essere usati nel campo della logistica e del controllo del traffico terrestre o aereo. Essendo in grado di calcolare rapidamente i percorsi ottimali che consentiranno di ridurre la congestione permetteranno di ottimizzare il controllo del traffico.

Un'area in cui i computer quantistici sembra possano esprimersi al meglio è quella dell'intelligenza artificiale. Proprio grazie al fatto che possono analizzare un quantitativo enorme di dati in maniera più efficiente dei computer tradizionali potrebbero aiutare l’intelligenza artificiale ad espandersi a molti più business.

Anche se ad oggi non sono disponibili per il grande pubblico dei computer quantistici la loro tecnologia è in continua evoluzione ed è molto probabile che potremo vederne di capaci di gestire alcune migliaia di qubit entro il prossimo decennio o poco più.

Se ti è piaciuto l'articolo, segui il feed per tenerti sempre aggiornato sui nuovi contenuti del blog!