Dopo aver descritto cosa è un quantum computer, le leggi che governano il suo funzionamento, e come è possibile costruirlo, analizzeremo ora la programmazione di un quantum computer.
Quantum computing: come si costruisce un computer quantistico
Il nostro test-case sarà la risoluzione di un problema di ottimizzazione: consideriamo una funzione che dipende da parametri, e supponiamo di voler trovare il valore dei parametri per cui la funzione assume il valore minimo. Problemi di ottimizzazione sono onnipresenti in molti campi: in ambito finanziario, può rappresentare il rendimento di un portfolio al variare degli asset che lo compongono.
Può anche rappresentare il tempo che un taxi impiega a raggiungere una destinazione a seconda delle strade che percorre.
Il protein folding problem
L’esempio che prenderemo in considerazione è il protein folding problem, cioè la determinazione della struttura tridimensionale di una proteina. Una proteina è costituita da una catena di amminoacidi legati assieme da legami peptidici.
Qualitativamente, la struttura di una proteina è analoga a quella di una collana di perle, in cui ogni amminoacido è rappresentato da una perla, e il legame peptidico è il filo che le lega. Così come una collana può assumere la forma di una catena lineare, di un cerchio, o essere appallottolata in una forma irregolare, anche una proteina è estremamente flessibile. Fra tutte le configurazioni in cui può trovarsi, qual è quella in cui si troverà nel nostro corpo?
Le leggi della fisica impongono che questa configurazione sia quella che corrisponde all’energia minima. Per questo motivo, il protein folding problem può essere interpretato come un problema di minimo. Risolvere il protein folding problem è di cruciale importanza in biologia e medicina perché la struttura tridimensionale di una proteina determina la sua attività biologica. Predire la struttura di una proteina permette di poter creare nuove proteine artificiali che possano avere una specifica funzione come, ad esempio, nuovi farmaci.
Il ruolo del quantum computing nella risoluzione del protein folding problem
Negli ultimi anni, il problema del protein folding è stato risolto con algoritmi di machine learning. Il fatto che uno di questi algoritmi, AlphaFold, sia stato identificato come uno dei principali breakthrough scientifici del 2021 suggerisce l’importanza di questo problema. È possibile, però, sfruttare un quantum computer in questo contesto?
Nell’articolo precedente abbiamo definito i requisiti che un problema deve soddisfare per poter essere risolto in maniera efficiente su un quantum computer. Prima di tutto, il problema deve essere difficile da risolvere su un computer classico. Vediamo perché questo requisito è verificato dal protein folding problem.
Consideriamo ancora l’analogia con una collana di perle, e consideriamo le prime 3 perle della collana. Quali sono le informazioni necessarie per determinare in maniera univoca la struttura di queste 3 perle? Queste perle sono legate fra loro, per cui la loro distanza relativa è fissata. Però, l’orientazione relativa della terza perla rispetto alle prime due sarà libera. Assumiamo che le orientazioni relative possibili siano 4 (questa è una drastica semplificazione, visto che le possibili orientazioni sono infinite ma, come vedremo, il problema è intrattabile nonostante la semplificazione). Consideriamo ora la quarta perla. Il numero di orientazioni relative di questa perla rispetto alla seconda e la terza sarà ancora 4, ognuna delle quali potrà essere combinata con le 4 configurazioni della terza perla.
La stessa osservazione varrà per ogni perla della collana (cioè, per ogni amminoacido).
Il vantaggio di utilizzare un computer quantistico
Il fatto che un problema non sia trattabile classicamente non garantisce, però, che possa esserlo quantisticamente. È necessario, infatti, sviluppare un algoritmo che permetta di risolvere il problema in maniera efficiente su un computer quantistico. Consideriamo, ad esempio, l’algoritmo proposto dal gruppo di ricerca dell’IBM Europe Research Center.
L’idea chiave è di rappresentare ogni possibile configurazione come combinazione di qubits. Riprendendo l’esempio precedente, le 4 possibili configurazioni dei primi 3 amminoacidi possono essere rappresentate, in forma binaria, dagli stati |00⟩, |01⟩, |10⟩, |11⟩ di due qubits.
Di conseguenza, la conformazione complessiva della proteina può essere rappresentata da 19 x 2=38 qubits. Sappiamo che un computer quantistico può codificare sovrapposizioni di qubits in maniera esponenzialmente più efficiente del suo corrispettivo classico. In questo caso, però, la configurazione più stabile della proteina sarà codificata da un’unica combinazione di 38 qubits, e non da una sovrapposizione. Quale è, allora, il vantaggio di utilizzare un computer quantistico in questo caso?
Il vantaggio è che una sovrapposizione di tutti i possibili stati dei qubits può rappresentare simultaneamente tutte le possibili strutture della proteina. Classicamente, saremmo costretti a calcolare l’energia di ogni possibile configurazione singolarmente per trovare quella corrispondente all’energia minore. Una sovrapposizione di qubits permette di esplorare tutte queste configurazioni ed estrarre quella la più stabile in un unico passo.
In particolare, l’algoritmo del laboratorio di ricerca IBM si basa su una procedura iterativa che parte da una sovrapposizione arbitraria di qubits e amplifica la combinazione corrispondente alla struttura più stabile.
Questo algoritmo, Conditional Value at Risk è un esempio di hybrid classical/quantum algorithms. Questa classe di algoritmi esegue solo una parte della computazione su un quantum computer, mentre il resto delle operazioni vengono eseguite su un computer classico.
Questo permette di ottenere due vantaggi chiave. Considerando che sono limitate le operazioni che un computer quantistico può eseguire in modo efficiente, è estremamente vantaggioso eseguire solo queste operazioni su un computer quantistico, ed utilizzare un computer classico per tutte le altre. Inoltre, sappiamo che i computer quantistici commerciali sono estremamente instabili – per questa ragione vengono definiti noisy intermediate-scale quantum hardware (NISQ). Trasferire parte del workload computazionale su un computer classico utilizzando hybrid classical/quantum algorithms ha quindi il secondo vantaggio di mitigare l’instabilità di un NISQ.
I quantum annealer
Esistono altri algoritmi per risolvere il protein folding problem su un hardware quantistico. Alcuni sfruttano una classe di hardware estremamente particolare, i quantum annealers, basati su un paradigma di calcolo detto adiabatic quantum computing. Prendendo come esempio ancora il protein folding problem, in un quantum annealer i qubits codificano non solo le possibili conformazioni della proteina, ma anche l’interazione fra i vari amminoacidi. In altre parole, una perturbazione esterna (come, ad esempio, un campo elettromagnetico) viene usato per far interagire i qubits in modo tale che, se una data conformazione ha una certa energia, la corrispondente configurazione di qubits ha la stessa energia all’interno dell’hardware. Un sistema quantistico all’equilibrio si troverà sempre nella configurazione corrispondente all’energia minima. Per questo motivo, una volta che le interazioni fra qubits sono state “accese”, i qubits si troveranno naturalmente nella combinazione di bits corrispondente alla struttura ottimale della proteina.
Conclusioni
Altri paradigmi di quantum computing per risolvere problemi di ottimizzazione sfruttano unicamente un quantum computer per effettuare ogni step della simulazione. Vista l’instabilità degli hardware attualmente disponibili, questi algoritmi potranno trovare applicazione pratica solo quando saranno disponibili quantum computer stabili composti da migliaia di qubits. Questo tipo di hardware viene chiamato fault-tolerant quantum computer ed attualmente prevediamo che sarà disponibile solo fra 10-20 anni.
Il caso del protein folding problem dimostra che non tutti i problemi di ottimizzazione possono essere risolti in maniera efficiente su un computer quantistico. Anzi, l’efficienza della soluzione dipenderà dal tipo di hardware utilizzato. In alcuni casi, può essere utile combinare computer classici e quantistici in modo tale da poter sfruttare la potenza di entrambe le tecnologie. Questo vale per qualsiasi problema, a partire dall’ottimizzazione del tragitto di un taxi, fino a problemi di portfolio optimization.