INFORMATICA - QUANTUM COMPUTING - MODELLI

Settembre 2022

1. Premessa sui modelli di QC

Esistono attualmente diversi modelli di Quantum Computing Machines, a fattor comune tali modelli sfruttano elaborazione, memorizzazione e comunicazione basati su fenomeni quantistici quali, principalmente: "sovrapposizione" (superposition) e "correlazione" (entanglement). A ciò va aggiunto che sono quantomai diffusi modelli detti "ibridi" che trovano ottima applicazione commerciale in cui computer o supercomputer (paralleli) classici vengono ibridati a modelli puramente quantistici per risolvere alcuni problemi di questi ultimi (ad esempio l'interfacciamento dei dati, la pre e post elaborazione di essi, ecc.) e conseguire risultati pratici rilevanti. In definitiva, un elaboratore quantistico deve poter indirizzare e gestire degli stati quantistici mediante i quali far uso delle citate proprietà di superposition e entanglement più alcune altre alla bisogna.
In questa pagina ci concentreremo sulla classificazione dei modelli, sia da un punto di vista teorico che pratico (con indicazioni di siti web dai quali ognuno potrà approfondire a costi nulli o irrisori) e lasceremo a pagine successive le proprietà quantistiche e come vengono usate per programmare tali sistemi di elaborazione.

2. Classificazione dei modelli

I modelli di QC sono classificati come qualsiasi modello di elaborazione classico e quindi, a livello teorico, vengono impiegati i seguenti parametri di classificazione:
(1) Operatore logico/matematico: nel QC la logica binaria classica viene un po' "interpretata" passando sostanzialmente ad operatori tensoriali con particolari caratteristiche matematiche, in concreto si utilizzano molto gli strumenti dell'algebra lineare matriciale, formalismi fondamentali per descrivere i fenomeni quantistici;
(2) Macchina teorica: è stata definita la Quantum Turing Machine (QTM) spesso impiegata per fare valutazioni teoriche della potenza di elaborazione di questi elaboratori e produrre, anche per esse, dei limiti teorici di funzionamento e delle equivalenze (ricordiamo che la macchina di Turing (e precisamente la UTM) definisce dei limiti teorici che ancora oggi molti degli eleboratori che usiamo comunemente non possono superare);
(3) Tipologia di circuito quantistico: esistono delle porte quantistiche (che faccio fatica a chiamare "logiche"), in generale molto diverse dalle porte logiche classiche ed è possibile costruire dei circuiti quantistici collegandole (teoricamente) come siamo abituati a fare con i sistemi digitali asincroni.
(4) Linguaggio di programmazione: esistono linguaggi specializzati (Quantum Programming Languages = QPL) per programmare nel QC ma bisogna dire che raramente trovano applicazione se non per obiettivi molto verticali;
(5) Metodo costruttivo: gli stati quantistici di un elaboratore quantistico vanno indirizzati e stabilizzati in qualche modo e questo è molto difficile, un primo metodo è indurre delle particelle o vacanze di particelle (a livello almeno atomico) che siano gestibili a temperature prossime allo zero Kelvin (mK), ciò per rendere i citati stati stabili; un secondo metodo è utilizzare i fotoni e quindi elementi ottici lineari (specchi, divisori di fasci/raggi, sfasatori, ecc.) e fasci di luce (laser) oppure particolari sistemi a semiconduttori che possono interagire con i fotoni (si pensi ai sistemi per le comunicazioni sulle fibre ottiche); un terzo metodo che si sta esplorando con molta speranza è l'uso dei semiconduttori (già noti per via dei computer classici) in ambito CMOS che pare riescano ad operare su stati quantistici a temperature prossime a 1° K (più calde :-) ); esistono poi applicazioni a superconduttori, a ioni intrappolati, topologiche e tante altre sperimentazioni;
(6) Principio fisico: alcuni elaboratori quantistici sfruttano specifici aspetti della fisica quantistica e non pretendono di indirizzare stati quantistici in generale. Da segnalare in questo senso i quantum annealer e la cosiddetta Adiabatic quantum computation, soprattutto in relazione al forte impatto commerciale dei relativi sistemi già costruiti e in produzione.

3. Modelli reali

Sebbene basandosi sui parametri di classificazione del punto precedente sia possibile fare svariate differenziazioni tra i modelli di QC, di fatto e in concreto i modelli maggiormente realizzati e in uso sono i seguenti. Tali modelli sono stati implementati nella realtà semplicemente perchè portano a risultati impiegabili per la risoluzione di problemi veri, costano relativamente poco e danno speranza per un'evoluzione futura ad altissime performance:
(a) Gate based QC: questo modello, che si è dimostrato equivalere alla QTM, richiama molto i primi sistemi digitali embedded come concetto, ossia dei sistemi fortemente specializzati nel risolvere problemi estremamente verticali che, una volta programmati non possono essere facilmente riprogrammati. In questo caso il sistema di QC è un circuito che connette porte quantistiche spesso in maniera asincrona e programmare tale sistema significa disegnare proprio il circuito. Naturalmente le porte quantistiche non sono così semplici da considerare come quelle logiche classiche e la reazione del circuito quantistico nel suo insieme è molto difficile da valutare. Il disegno del circuito avviene normalmente mediante un linguaggio di programmazione classico (sempre più spesso python) con opportune librerie e moduli atti a comunicare (via cloud) tale disegno al reale hardware quantistico che lo deve implementare per farlo funzionare (esiste quindi un interfacciamento per i programmi (circuiti) e un interfacciamento per i dati di I/O, tutto in cloud). I primi siti web da visitare per entrare nel mondo di questi sistemi sono: la QM Rigetti https://www.rigetti.com, la QM Google https://quantumai.google e la QM IBM QSKIT https://qiskit.org/ (consiglio vivamente di navigarli...)
(b) Quantum annealer: in questo caso si può citare direttamente la ditta più famosa in proposito ossia D-WAVE (https://www.dwavesys.com) e i suoi motori di elaborazione puri e ibridi. Si tratta in definitiva di super-ottimizzatori lineari che operano su scale di elaborazioni enormi. Per intenderci un motore quantistico e/o ibrido D-WAVE si occupa di allocare in tempo reale le risorse a tutti gli ospedali di Los Angeles e della mobilità coordinata (metodi di consegna ottimizzata) di centinaia di migliaia di mezzi di trasporto sul suolo americano. Ottimizzatore, in questo caso, significa macchina di elaborazione in grado di produrre in tempo reale soluzioni ottimali su problemi a base minima di 1 milione di variabili e centinaia di migliaia di vincoli (coloro che hanno studiato ricerca operativa sanno quanto è complessa questa problematica, soprattutto se affrontata in un ambiente dinamico). La programmazione del quantum annealer consiste nell'impostare enormi matrici spesso binarie da dare in pasto all'hardware D-Wave tramite cloud (vi consiglio di navigare il sito D-Wave, è davvero interessante, soprattutto nelle svariate applicazioni reali del sistema che descrive).
(c) QKD nodes: trattasi di sistemi quantistici embedded che operano, quali nodi, su fibra ottica e/o su satelliti per la gestione del QKD (Quantum Key Distribution = distribuzione quantistica sicura delle chiavi di crittazione). In pratica le chiavi quantistiche (spesso generate anch'esse con metodi quantum random e non pseudo random classici) vengono comunicate periodicamente o alla bisogna tramite questi nodi per poi impiegare la crittazione simmetrica classica per comunicare sulla linea di trasmissione (segnalo i lavori di Telsy e il Quantum Random Number Generator del Australian National University di Canberra https://qrng.anu.edu.au).
(d) Quantum Artificial Intelligence Systems: ancora una volta trattasi di sistemi quantistici fortemente specializzati inerenti all'accelerazione dei processi di apprendimento e di risposta dei sistemi di machine learning e deep learning, ad esempio i quantum perceptron, le quantum neural networks e gli avveniristici (forse utopici?) Quantum Brain & Consciousness Systems.
(e) Quantum Chemistry Models: i sistemi di elaborazione quantistici, per loro natura, hanno grande facilità nell'emulare il comportamento molecolare e strutturale dei materiali (dopotutto a livello atomico tutto si comporta secondo un modello quantistico per cui non sorprende). Questo permette di farne facilmente dei sistemi di "progettazione" di nuovi materiali e sostanze (anche farmacologiche), si pensi che anche alcuni dei vaccini anti-COVID sono frutto di una progettazione tramite emulatore quantistico che con sistemi classici avrebbe impiegato decine di anni prima di arrivare a conclusione, invece ci sono voluti pochi mesi...

I sistemi (d) ed (e) sono piuttosto complicati e non così disponibili ad un approccio tecnico introduttivo (come è il carattere di questa pagina), per questo motivo non ho introdotto link in proposito (lo farò probabilmente in successive pagine dedicate). Al contrario tutti gli altri modelli reali sono fortemente disponibili alla prima sperimentazione anche da parte di principianti per cui invito a navigare i link e provare. Niente più della pratica permette di familiarizzare con un argomento così ostico quale il QC.