# Computer quantistico

Un calcolatore quantistico è 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. 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, di cui lo stato quantistico può possedere più valori, o più precisamente un singolo valore quantistico che corrisponde simultaneamente a più valori classici. La disciplina che si occupa, in ambito teorico e sperimentale, dello sviluppo del calcolo quantistico è detta computazione quantistica (in inglese quantum computing).

## Storia

La computazione quantistica comincia all'inizio degli anni ottanta, quando il fisico Paul Benioff propone il primo modello quantistico della macchina di Turing. 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. Nel 1994 Peter Shor pubblica l'algoritmo che porta il suo nome per la fattorizzazione degli interi in tempo polinomiale. 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".
L'IBM nel 2019 ha presentato un prototipo commerciale di un computer quantistico, l’IBM Q System One.
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." C'è una quantità crescente di investimenti nel computing quantistico da parte di governi, aziende già avviate e start-up. La ricerca accademica e quella industriale sono anche incentrate sull'applicazione di dispositivi di media scala e la dimostrazione della supremazia quantistica insieme allo scopo a lungo termine di costruire e usare un computer quantistico potente e privo di errori.

### Cronologia

* La prima idea di computer quantistico venne esposta in due articoli pubblicati dai fisici Paul Benioff e Yuri Manin nel 1980.
* Nel 1982 Benioff mostra che un quantum computer può essere reversibile, cioè le sue operazioni possono essere invertite.
* Nel 1985 David Deutsch, in analogia a quanto fece Alan Turing con la definizione della macchina universale, definisce il computer quantistico universale, in grado di essere programmato con un qualsiasi algoritmo quantistico.
* Anche Eric Drexler, in modo indipendente, rifletté sulla costruzione di computer molecolari nel suo libro Engines of Creation del 1986 ("Motori della creazione").
* Nel 1992 Deutsch e Jozsa annunciano il primo algoritmo che esibisce un vantaggio quantistico.
* Nel 1994 Peter Shor dimostrò con il suo algoritmo che sarebbe stato possibile fattorizzare qualsiasi numero a grandi velocità di elaborazione.
* Nel 1998 il fisico Bruce Kane propose la costruzione di un elaboratore quantistico su atomi di fosforo disposti su uno strato di silicio spesso solo 25 nanometri. È il computer quantistico di Kane.
* Nel 2001 la IBM dimostra il primo calcolo di un algoritmo quantistico mediante un esperimento costituito da impulsi elettromagnetici che manipolano una risonanza magnetica nucleare su molecole costituite da sette atomi, che fungono da base hardware per sette bit quantistici (qubit). Questo metodo viene successivamente abbandonato perché non è in pratica realizzabile un sistema che controlli molecole con un numero di atomi sufficiente da fornire i qubits per un algoritmo quantistico di un qualche interesse pratico.
* Nel 2005 viene dimostrata la prima porta logica quantistica detta porta NOT controllata (CNOT) mediante qubit a superconduttore.
* Nel 2012 l'azienda canadese D-Wave annuncia il primo computer quantistico commerciale. Si tratta di un "annealer quantistico", denominato Vesuvius, costituito da 64 registri da 8 qubit a superconduttore. Il modello viene acquistato a fini di ricerca dalla NASA con Google e da Lockheed Martin.
* Nel 2019 esistono computer quantistici commerciali basati rispettivamente sui superconduttori e sugli ioni carichi intrappolati. L'ambito dei computer quantistici è un campo di ricerca aperto che include anche altri differenti approcci che hanno consentito di implementare qubit e porte logiche tra cui i pozzi quantici o i difetti atomici nei semiconduttori (tra cui in silicio, arseniuro di gallio e diamante), atomi neutri, fotoni.
* A febbraio 2019 IBM ha commercializzato il primo computer quantistico, denominato IBM Q System One, utilizzabile da remoto.
* Nel novembre 2022 IBM annuncia Osprey, un computer quantistico a 433 qubit.
* Nel dicembre 2022 sono stati commercializzati in Giappone i primi tre computer portatili quantistici al mondo, basati sulla risonanza magnetica nucleare e sul dimetil fosfito.
* Nell'aprile 2023 l'Università Federico II di Napoli realizza il primo computer quantistico full stack operante in Italia.
* Nel maggio 2023 l'IBM annuncia il progetto di sviluppare un computer da 100.000 qubit e dal costo di 100 milioni di dollari entro il 2033.
* Giugno 2023: Microsoft dichiara di lavorare a un computer quantistico topologico basato sui fermioni di Majorana, con l'obiettivo di arrivare entro 10 anni ad un computer capace di svolgere almeno un milione di operazioni al secondo con un tasso di errore di un'operazione ogni 1.000 miliardi (pari a 11 giorni ininterrotti di calcolo).
* Nell'ottobre 2023 Atom Computing è la prima azienda al mondo ad annunciare la realizzazione di un computer quantistico a 1.180 qubit fisici (quindi oltre la soglia dei 1.000 qubit), basato sugli atomi di Rydberg che garantiscono un tempo di coerenza di 40 secondi, maggiore di quelli raffreddati coi superconduttori.
* Nel novembre 2023 viene scoperto il litio molibdeno bronzo viola, lega capace di passare dallo stato di conduttore a quello di isolante di Mott e viceversa con un 50-50% di probabilità.
* Nel gennaio 2024 un team di ricercatori giapponesi è riuscito mediante l'uso di cromofori, a mantenere uno stato di sovrapposizione quantistica coerente per 100 nanosecondi, a temperatura ambiente e senza sistemi di raffreddamento.
* maggio 2024: Amazon Web Services e i ricercatori dell'Università di Harvard realizzano un collegamento fra due particelle interallacciate (entangled) lungo 50 km di fibra ottica nella rete urbana di Boston, comprensiva dei rumori di fondo tipici di queste infrastrutture.
* nel 2024 viene testato Aurora, creando 86,4 miliardi di modi (modalità temporali dei fotoni) in due ore. Aurora è un sistema scalabile a 12 qubit composto da quattro rack modulari, che includono 35 chip fotonici collegati tramite 13 km di fibra ottica.
* Nel febbraio 2025 viene attivato a Tokyo il primo computer quantistico ibrido al mondo, che combina un computer quantistico a 20 qubit con Fugaku, il sesto supercomputer più veloci del pianeta.
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.

### Innovazioni

* Nel 2001 la IBM, all'Almaden Research Center, in cui opera un gruppo coordinato da Isaac Chuang, crea un elaboratore quantistico a 7 qubit (Composto da una sola molecola con 7 spin nucleari).
* Nel 2005 dei fisici dell'University of Arizona sono riusciti a misurare direttamente le variazioni subite dalla lunghezza d'onda di un atomo a contatto con una superficie.
* Nel febbraio 2005 viene realizzata, per la prima volta, una correlazione quantistica fra atomi artificiali.
* Nel dicembre del 2005 viene creato dagli scienziati dell'istituto di ottica quantistica ed informatica quantistica dell'Università di Innsbruck (in Austria) il primo qubyte (8 qubit).
* I ricercatori dell'Università di Harvard e il Georgia Institute of Technology riescono a trasferire informazione quantistica tra diversi tipi di memorie quantistiche, da atomi a fotoni e viceversa.
* Nel 2006 Peter Zoller, dell'Università di Innsbruck, scopre un metodo su come usare molecole polari criogeniche per rendere stabili le memorie quantistiche.
* Ricercatori giapponesi sviluppano un metodo per contare singoli elettroni.
* Il 13 febbraio 2007 la D-Wave Systems mostra pubblicamente l'Orion, quello che si ritiene il primo computer quantistico adiabatico a 16 qubit.
* Nell'aprile 2008 ricercatori dell'Università dello Utah con a capo Ajay Nahata dimostrano la possibilità di creare una porta logica quantica mediante una fibra ottica a raggi T.
* Nel 2009 viene costruito il primo processore che sfrutta 2 qubit.
* L'11 maggio 2011 la D-Wave Systems annuncia il D-Wave One, elaboratore a 128 qubit, che risulta essere il primo computer quantistico ad essere commercializzato.
* In aprile 2012 gli scienziati del Max Planck Institute, istituto di ottica quantistica, riescono a creare la prima rete quantica funzionante.
* Nel maggio 2013 Google e NASA presentano il D-Wave Two, nel Quantum Artificial Intelligence Lab, in California.
* Nel febbraio 2016 IBM mette a disposizione pubblicamente l'elaboratore IBM Quantum Experience, il primo computer quantistico in modalità cloud con un processore a 5 qubit.
* A metà 2017 IBM mette a disposizione via cloud, tramite IBM Quantum Experience, processori quantistici a 16 e 20 qubit.
* Nel marzo 2018 Google Quantum AI Lab, presenta il nuovo processore Bristlecone a 72 qubit.
* L'8 gennaio 2019 IBM annuncia al CES il primo quantum computer per uso commerciale "IBM System Q One" e la piattaforma "IBM Q Network" per uso scientifico e commerciale.
* A gennaio 2020, IBM annuncia il Quantum Volume maggiore mai ottenuto, pari a 32, su un processore quantistico a 28 qubit, confermando il trend di raddoppio annuale della potenza dei suoi computer quantistici.
* 2020, aprile - QuTech lancia Quantum Inspire, il primo processore quantistico basato su "spin qubits" controllati dalla tecnologia lock-in.

## Descrizione

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. 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.

### Concetti di base

Nella maggior parte dei modelli di computazione classica, 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.

### Operazioni quantistiche

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.
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:
    $|0\rangle :={\begin{pmatrix}1\\0\end{pmatrix}};\quad |1\rangle :={\begin{pmatrix}0\\1\end{pmatrix}}$
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 }:
    $|\psi \rangle :=\alpha \,|0\rangle +\beta \,|1\rangle ={\begin{pmatrix}\alpha \\\beta \end{pmatrix}};\quad |\alpha |^{2}+|\beta |^{2}=1.$
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
    $X:={\begin{pmatrix}0&1\\1&0\end{pmatrix}}.$
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
    $|00\rangle :={\begin{pmatrix}1\\0\\0\\0\end{pmatrix}};\quad |01\rangle :={\begin{pmatrix}0\\1\\0\\0\end{pmatrix}};\quad |10\rangle :={\begin{pmatrix}0\\0\\1\\0\end{pmatrix}};\quad |11\rangle :={\begin{pmatrix}0\\0\\0\\1\end{pmatrix}}.$
Si può allora definire la porta NOT controllata (CNOT) con la seguente matrice:
    $\mathrm {CNOT} :={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{pmatrix}}.$
È 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.