Un calcolatore quantistico[1] è un computer che utilizza le proprietà quantistiche della materia, come la sovrapposizione degli stati e l'entanglement, al fine di effettuare operazioni su dei dati.[2] A differenza di un calcolatore classico, basato su transistori che operano su dati binari (codificati come bit, 0 o 1), il calcolatore quantistico opera con bit quantistici, o qubit,[3] di cui lo stato quantistico può possedere più valori, o più precisamente un singolo valore quantistico che corrisponde simultaneamente a più valori classici.[2] La disciplina che si occupa, in ambito teorico e sperimentale, dello sviluppo del calcolo quantistico è detta computazione quantistica (in inglese quantum computing).[4][5]
La computazione quantistica comincia all'inizio degli anni ottanta,[6] quando il fisico Paul Benioff propone il primo modello quantistico della macchina di Turing.[7] In seguito Richard Feynman e Jurij Manin esprimono l'idea che il computer quantistico abbia il potenziale di simulare cose che un computer classico non riesce a fare.[8][9] Nel 1994 Peter Shor pubblica l'algoritmo che porta il suo nome per la fattorizzazione degli interi in tempo polinomiale.[10] Questo è stato una svolta epocale nella materia, perché un importante metodo di crittografia asimmetrica noto come RSA si basa sulla supposizione che la fattorizzazione degli interi sia difficile dal punto di vista computazionale. L'esistenza dell'algoritmo quantistico in tempo polinomiale può dimostrare che uno dei protocolli crittografici più usati al mondo sarebbe vulnerabile a un computer quantistico.
Nonostante ci siano stati progressi sperimentali rapidi e impressionanti, la maggior parte dei ricercatori credeva verso il 2018 che "un computer quantistico a prova di guasti [sia] ancora un sogno piuttosto lontano".[11]
L'IBM nel 2019 ha presentato un prototipo commerciale di un computer quantistico, l’IBM Q System One.[5]
Il 24 ottobre 2019 Google afferma ufficialmente che un computer quantistico ha completato un calcolo da 10.000 anni in 200 secondi, ma in risposta un ricercatore prominente dichiara che una rivoluzione del computer quantistico equivalente a quella del computer classico richiederà "immensa ingegneria, e probabilmente anche ulteriori intuizioni."[12] C'è una quantità crescente di investimenti nel computing quantistico da parte di governi, aziende già avviate e start-up.[13] La ricerca accademica e quella industriale sono anche incentrate sull'applicazione di dispositivi di media scala[11] e la dimostrazione della supremazia quantistica[14] insieme allo scopo a lungo termine di costruire e usare un computer quantistico potente e privo di errori.
Nonostante alcune connessioni dei computer quantistici con l'ambito delle comunicazioni quantistiche relative ad esempio al possibile impiego di fotoni per collegare stati tra computer quantistici situati in località distinte, non si deve confondere il campo dei computer quantistici con quello della crittografia quantistica per le comunicazioni, rappresentato ad esempio dal satellite cinese Micius, il primo a consentire una comunicazione quantistica via satellite.[28]
Per decenni l'aumento della potenza dei computer è andato di pari passo con la miniaturizzazione dei circuiti elettronici, fenomeno codificato empiricamente nella legge di Moore: la densità dei transistor su un microchip e la relativa velocità di calcolo raddoppiano ogni 18 mesi. La miniaturizzazione dei componenti però si è fermata alle soglie della meccanica quantistica, rendendo impossibile aumentare ulteriormente la densità dei transistor e la riduzione delle dimensioni dei circuiti integrati (accorgimenti fino ad oggi adottati per incrementare le prestazioni di calcolo dei microprocessori). Con una felice intuizione dell'informatica teorica, la meccanica quantistica è stata trasformata in un'opportunità per realizzare macchine con una potenza di calcolo enormemente superiore ai computer convenzionali: i computer quantistici.
Al posto dei convenzionali bit – unità d'informazione binaria, indicate convenzionalmente con le cifre 0 e 1 e codificate dai due stati "aperto" e "chiuso" di un interruttore – nel computer quantistico si usano i qubit, elementi base dell'informazione quantistica codificati dallo stato quantistico in cui si trova una particella o un atomo. Lo spin di una particella, per esempio, ha due stati che possono codificare informazioni binarie. A rendere interessanti, ai fini del calcolo, le particelle atomiche e subatomiche è il fatto che possono esistere anche in una sovrapposizione di stati, ampliando enormemente le possibilità di codifica delle informazioni, quindi permettendo di affrontare problemi estremamente complessi.
Tuttavia, né la manipolazione controllata di atomi e particelle, né la loro reciproca comunicazione né, infine, la stesura di algoritmi adatti, sono obiettivi facili da raggiungere, per cui la strada per realizzare un computer quantistico è appena agli inizi.[35] Sono note alcune decine di algoritmi quantistici che si suddividono tra algoritmi algebrici e di teoria dei numeri, algoritmi oracolari, e algoritmi di approssimazione e simulazione.[36]
Nella maggior parte dei modelli di computazione classica,[37] il computer ha accesso alla memoria. Questo è un sistema che si può trovare in uno di un insieme finito di stati, ognuno dei quali è fisicamente distinto. Spesso è conveniente rappresentare lo stato di questa memoria come una stringa di simboli o, più semplicemente, come stringa di 0 e 1. In questo scenario, l'unità fondamentale della memoria è chiamata bit e possiamo misurare la "grandezza" della memoria in termini del numero di bit necessari a rappresentare appieno lo stato della memoria.
Se la memoria soddisfa le leggi della fisica quantistica, lo stato della memoria potrebbe essere trovato in una sovrapposizione quantistica di diversi possibili stati "classici". Se gli stati classici sono rappresentati da una stringa di bit, la memoria quantistica può essere trovata in una qualsiasi sovrapposizione delle possibili stringhe di bit. Nello scenario quantistico, l'unità fondamentale della memoria è chiamata qubit.
La proprietà che definisce un computer quantistico è l'abilità di trasformare gli stati di memoria classici in stati di memoria quantistici, e viceversa. Questo è in contrasto con i computer classici nel senso che sono progettati per effettuare computazioni con memoria che non devia mai da valori precisamente definiti. Per rendere chiaro questo punto, si consideri che l'informazione è solitamente trasmessa attraverso il computer come un segnale elettrico che può variare tra due valori definiti di tensione. Se si inserisse un segnale a una tensione diversa da quelle due, il comportamento dei computer sarebbe indefinito.
Naturalmente, alla fine siamo "esseri classici" e possiamo osservare solo stati classici. Ciò significa che il computer quantistico deve completare il proprio calcolo dando un output classico. Per produrre questi output classici, il computer quantistico è forzato a misurare parti della memoria a vari momenti durante la computazione. Il processo di misura è intrinsecamente probabilistico, il che significa che l'output di un algoritmo quantistico è spesso casuale. Il compito di un progettista di algoritmi quantistici è assicurarsi che la casualità sia adatta ai requisiti del problema in questione. Per esempio, se il computer quantistico sta cercando, in un database quantistico, uno tra molti oggetti segnati, possiamo chiedere al computer di dare in output uno qualunque degli oggetti segnati. Il computer quantistico riesce nel compito a patto che sia improbabile dare in output un oggetto non segnato.
Il modello prevalente di computazione quantistica descrive la computazione in termini di una rete di porte logiche quantistiche. Ciò che segue è una breve trattazione della materia basata sul capitolo 4 del libro di Nielsen e Chuang.[38]
Si può rappresentare lo stato di una memoria informatica come un vettore di lunghezza uguale al numero degli stati di memoria possibili. Quindi una memoria costituita da n {\textstyle n} bit di informazione ha 2 n {\textstyle 2^{n}} stati possibili, e il vettore che rappresenta quello stato di memoria ha 2 n {\textstyle 2^{n}} entrate. Dal punto di vista classico, solo una delle entrate vale uno e tutte le altre zero. Il vettore dovrebbe essere visto come un vettore di probabilità e rappresenta il fatto che la memoria si trova in uno stato particolare con il 100% di probabilità (cioè una probabilità di uno).
In meccanica quantistica, i vettori di probabilità vengono generalizzati a operatori densità. Questo è il fondamento matematico rigoroso per le porte quantistiche, ma il formalismo dei vettori degli stati quantistici di solito viene introdotto prima perché è concettualmente semplice. In questa voce verrà trattato solo il formalismo dei vettori degli stati quantistici.
Si comincia considerando una memoria semplice costituita da un singolo bit. Questa memoria può essere trovata in uno dei due stati: lo stato zero o lo stato uno. Lo stato di una memoria a singolo qubit si può rappresentare usando la notazione di Dirac nel modo seguente:
Una memoria quantistica può essere trovata in una qualsiasi sovrapposizione | ψ ψ --> ⟩ ⟩ --> {\textstyle |\psi \rangle } dei due stati classici | 0 ⟩ ⟩ --> {\textstyle |0\rangle } e | 1 ⟩ ⟩ --> {\textstyle |1\rangle } :
In generale, i coefficienti α α --> {\textstyle \alpha } e β β --> {\textstyle \beta } sono numeri complessi. In questo scenario, si dice che un qubit di informazione è codificato nella memoria quantistica. Lo stato | ψ ψ --> ⟩ ⟩ --> {\textstyle |\psi \rangle } non è esso stesso un vettore di probabilità ma può essere connesso con un vettore di probabilità tramite un'operazione di misura. Se si sceglie di misurare la memoria per determinare se lo stato è | 0 ⟩ ⟩ --> {\textstyle |0\rangle } o | 1 ⟩ ⟩ --> {\textstyle |1\rangle } (questo si chiama misura in base computazionale), si osserverebbe lo stato zero con probabilità | α α --> | 2 {\textstyle |\alpha |^{2}} e lo stato uno con probabilità | β β --> | 2 {\textstyle |\beta |^{2}} . Si veda la voce sull'ampiezza di probabilità.
Per manipolare lo stato di questa memoria a un qubit, immaginiamo di applicare delle porte quantistiche analoghe alle porte logiche classiche. Una porta ovvia è la porta NOT, che può essere rappresentato da una matrice
L'applicazione formale di questa porta logica su un vettore di stato quantistico viene effettuata tramite la moltiplicazione di matrici. Pertanto si ha X | 0 ⟩ ⟩ --> = | 1 ⟩ ⟩ --> {\textstyle X|0\rangle =|1\rangle } e X | 1 ⟩ ⟩ --> = | 0 ⟩ ⟩ --> {\textstyle X|1\rangle =|0\rangle } come previsto. Ma questa non è l'unica porta logica interessante per un singolo qubit. Altre due porte possibili sono, ad esempio, le altre due matrici di Pauli.
Le porte a singolo qubit possono operare su memorie a molti qubit in due importanti modi. Un modo è semplicemente selezionare un qubit e applicare quella porta al qubit bersaglio e lasciare il resto della memoria intatto. Un altro è applicare la porta al bersaglio solo se un'altra parte della memoria è in un determinato stato. Illustriamolo con un altro esempio.
Si consideri una memoria a due qubit. Gli stati possibili sono
Si può allora definire la porta NOT controllata (CNOT) con la seguente matrice:
È facile verificare che CNOT --> | 00 ⟩ ⟩ --> = | 00 ⟩ ⟩ --> {\textstyle \operatorname {CNOT} |00\rangle =|00\rangle } , CNOT --> | 01 ⟩ ⟩ --> = | 01 ⟩ ⟩ --> {\textstyle \operatorname {CNOT} |01\rangle =|01\rangle } , CNOT --> | 10 ⟩ ⟩ --> = | 11 ⟩ ⟩ --> {\textstyle \operatorname {CNOT} |10\rangle =|11\rangle } , e CNOT --> | 11 ⟩ ⟩ --> = | 10 ⟩ ⟩ --> {\textstyle \operatorname {CNOT} |11\rangle =|10\rangle } . In altre parole, la CNOT applica una porta NOT (la X {\textstyle X} di prima) al secondo qubit se e solo se il primo qubit è nello stato | 1 ⟩ ⟩ --> {\textstyle |1\rangle } . Se il primo qubit è | 0 ⟩ ⟩ --> {\textstyle |0\rangle } ,non viene fatto niente a nessuno dei qubit.
Per riassumere, la computazione quantistica può essere descritta come una rete di porte quantistiche e misure. Si può sempre "posporre" la misura alla fine di una computazione quantistica, anche se questo può avere un costo computazionale, secondo alcuni modelli. A causa della possibilità di posporre la misura la maggior parte dei circuiti quantistici è raffigurata da una rete costituita solo da porte logiche quantistiche e nessuna misura.
Si può rappresentare una qualsiasi computazione quantistica come una rete di porte da una famiglia abbastanza piccola di porte. Una scelta di famiglia di porte che permette questa costruzione è chiamata insieme universale di porte. Un insieme comune comprende tutte le porte a singolo qubit e la porta CNOT. Questo significa che una qualsiasi computazione quantistica può essere effettuata eseguendo una sequenza di porte a singolo qubit insieme a porte CNOT. Sebbene questo insieme di porte sia infinito, può essere sostituito da un insieme finito, facendo appello al teorema di Solovay-Kitaev.
Altri progetti
Lokasi Pengunjung: 3.15.2.57