Quantum Computer

Transcript

Quantum Computer
Liceo Cantonale di Locarno
Lavoro di maturità
Quantum Computer
Doriano Hautlé e Gionata Genazzi
2008-2009
Professore responsabile: Christian Ferrari
For those who are not shocked when they first come across quantum theory
cannot possibly have understood it. (N. Bohr, 1971)
Indice
1 Introduzione
1.1 La motivazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Le origini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
9
1.3 La fisica quantistica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Il computer quantistico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 I principi del calcolo quantistico
12
2.1 Qubits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 La misura su un qubit . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Interpretazione geometrica . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.3 Interpretazione fisica . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Registri quantistici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Il principio del calcolo quantistico . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Quantum gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Operatori lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Porte logiche quantistiche a un qubit . . . . . . . . . . . . . . . . . 19
2.4.3 Porte logiche quantistiche a più qubits . . . . . . . . . . . . . . . . 20
2.5 Circuiti quantistici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Due particolarità del calcolo quantistico
. . . . . . . . . . . . . . . . . . . 22
3 L’algoritmo di Deutsch e Deutsch Jozsa
26
3.1 L’algoritmo di Deutsch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 L’algoritmo di Deutsch-Jozsa
. . . . . . . . . . . . . . . . . . . . . . . . . 27
4 L’algoritmo di ricerca di Grover
34
4.1 Problemi di ricerca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 L’oracolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 L’algoritmo di ricerca di Grover . . . . . . . . . . . . . . . . . . . . . . . . 36
4
4.4 Interpretazione geometrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5 L’algoritmo di Shor
42
5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Motivazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Parte classica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5 Parte quantistica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6 Aspetti sperimentali
56
6.1 Problemi di realizzabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2 Confinamento ionico lineare (Trapped Ions) . . . . . . . . . . . . . . . . . 56
6.3 Risonanza magnetica nucleare (NMR) . . . . . . . . . . . . . . . . . . . . . 58
6.4 Spin nucleare basato sulla tecnologia al silicio . . . . . . . . . . . . . . . . 59
6.5 Esperimenti e realizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.5.1
6.5.2
6.5.3
Orion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Nucleo atomico usato come memoria quantistica . . . . . . . . . . . 61
Purificazione dell’entanglement . . . . . . . . . . . . . . . . . . . . 62
A Il teletrasporto
66
Bibliografia
70
5
Prefazione
Questo testo ha lo scopo di presentare in modo didattico e completo le basi di un’applicazione moderna e oggi ancora futuristica della fisica quantistica: la computazione
quantistica.
L’idea di svolgere un lavoro su questo argomento è stata proposta dal professor Ferrari e
da noi subito accolta con molto interesse. Dopo alcune lezioni introduttive si è però rivelata tutt’altro che semplice. L’argomento proposto era nuovo, estraneo anche al professor
Ferrari, che ha dovuto documentarsi al riguardo. Grazie a numerosi sforzi da parte sua
e il nostro interesse è stato possibile superare le difficoltà, che hanno comunque lasciato
il loro segno: era infatti previsto un approfondimento maggiore, che è stato tralasciato a
causa della mancanza di tempo.
Operare con i concetti della fisica quantistica ha significato per noi anche adottare nuovi
metodi matematici. Con questo testo abbiamo cercato di rendere ogni passaggio il più
comprensibile possibile, nonostante ciò ci potrebbero essere delle difficoltà di lettura,
soprattutto se il lettore non è pratico del campo.
Ringraziamenti
Realizzare questo testo ha compromesso lunghe ore di lavoro non solo per gli autori stessi.
Si vogliono ringraziare tutti coloro che hanno aiutato nella sua realizzazione. Per primo, il
docente responsabile nonché professore di fisica Christian Ferrari, che ha proposto il tema
ed è sempre stato disponibile per domande o incertezze, sempre con grande prontezza e
velocità d’esecuzione. Karima Pabst, docente di matematica, che si è gentilmente messa
a disposizione per una breve introduzione all’insieme dei numeri complessi e ci ha cosı̀
permesso di avere una base matematica necessaria.
6
Capitolo 1
Introduzione
1.1
La motivazione
È da ormai mezzo secolo, che ogni due anni la velocità dei computer raddoppia e la
dimensione delle loro componenti si dimezza. Attualmente la dimensione dei cavi e dei
transistori è meno di un centesimo di quella di un capello umano. Questo progresso
esponenziale fa si che i calcolatori diventino sempre più veloci e compatti; le attuali
macchine sono infatti milioni di volte più potenti dei loro umili antenati. Si prevede però
che questo progresso esplosivo è quasi giunto al suo culmine, a causa di forti limitazioni
fisiche. Con le tecniche litografiche del giorno d’oggi, si è in grado di produrre componenti
100 volte più piccole di quelle in commercio, ma a queste dimensioni ridottissime la materia
comincia a comportarsi come un aggregato di atomi, e cosı̀ l’eseguire di circuiti diventa
problematico. Già a dimensioni 10 volte inferiori, i singoli atomi si separano con forza e
basta un minimo difetto per creare un disastro.
Se si vogliono quindi in futuro costruire componenti più piccoli e aumentare la potenza
di calcolo dei computer, è necessario introdurre nuove tecnologie. È questo il motivo più
banale per cui la fisica quantistica e la scienza dei calcolatori sono destinati ad incontrarsi.
Un’altra motivazione, ancora parecchio speculativa, è quella secondo cui il cervello umano
opera sulla base di leggi quantistiche. L’ipotesi sembra poco plausibile, ma è suffragata da
alcune osservazioni. Si pensi ad esempio - facendo eccezione dei parziali successi di Deep
Blue - ai computer programmati per giocare a scacchi. Una tale macchina utilizza per
confrontarsi con il campione del mondo, circa 1010 byte di memoria e analizza un milione di
posizioni al secondo. Ora, dato che il tempo operativo di un neurone umano è nell’ordine
dei millesimi di secondo, ci si chiede come un cervello umano come quello di Kasparov
possa, ricorrendo ad algoritmi classici, mostrare altrettanta efficienza. Ma anche compiti
8
più semplici, come la comprensione di un linguaggio, sembrano sfide insormontabili per
un computer classico. Pur essendoci un numero limitato di elementi da analizzare, questi
si combinano in un albero di alternative, di modo che il numero di possibilità cresce
esponenzialmente, e l’ammontare di dati presenti nel database diventa enorme, non più
gestibile da un computer che si limita all’utilizzo di algoritmi classici.
1.2
Le origini
Alcuni decenni fa due pionieri del Thomas J. Watson Research Center della IBM, Rolf
Landauer e Charles H. Bennett, erano al capo di un progetto che era destinato a studiare la natura fisica dei circuiti di calcolo dell’informazione, chiedendosi a cosa avrebbe
portato una miniaturizzazione. Si chiesero fino a che punto si potevano rimpicciolire le
componenti e quanta energia era necessaria per seguire un calcolo. Dato che i calcolatori
sono strutture fisiche e quindi in ultima istanza il funzionamento dei circuiti è descritto
dalla fisica, gli studiosi capirono ben presto che a dimensione piccolissime è necessario
formulare una descrizione in termini quantistici.
Partendo dai risultati ottenuti dagli esperimenti di Landauer e Bennett, nei primi anni ottante Paul Benioff dell’Argonne National Laboratory, dimostrò che un calcolatore
potrebbe funzionare anche su una base esclusivamente quantistica. Poco tempo dopo,
David Deutsch, dell’Istituto di matematica dell’Università di Oxford e altri studiosi americani e israeliani, costruirono modelli di computer su base quantistica per confrontarli con
quelli classici e studiare la possibilità di uno sfruttamento della fisica moderna per velocizzare i processi o eseguire i calcoli in modo completamente nuovo.
Negli anni a seguire la ricerca diminuı̀ fortemente, soprattutto perché gli studiosi non consideravano vere entità fisiche ma cercavano di effettuare i calcoli con unità quantistiche
astratte e con un’impostazione che secondo Landauer comportava parecchie lacune. Si
scoprı̀ poi che potrebbero esserci errori nei calcolatori quantistici di difficile correzione.
Richard P. Feyman del California Institute of Technology scoprı̀ che i calcolatori quantistici potevano essere utilizzati per simulare stati nuovi o non osservabili della materia, ma
non era però affatto evidente se essi portassero ad una più veloce risoluzione di problemi
matematici.
Negli anni a seguire vi è però stata una svolta di notevole importanza. Nel 1993 Seth
Loyd, del Massachusetts Institute of Technology, descrisse un’ampia classe di sistemi fisici
ben noti, con la quale potrebbe esser possibile eseguire operazioni di calcolo quantistico
aggirando alcune delle obiezioni di Landauer. Peter Shor degli AT&T Bell Laboratories
9
ha dimostrato che con un calcolatore quantistico è possibile scomporre in fattori numeri
molti grandi, il che metterebbe in pericolo anche le più potenti macchine tradizionali.
1.3
La fisica quantistica
La fisica quantistica è bizzarra. Il fisico Niels Bohr, uno dei fondatori, sosteneva che creava
vertigini a chiunque l’avrebbe capita. Questa teoria contiene infatti numerosi fenomeni
per niente intuitivi, ma più volte verificati per via sperimentale. Per rendersi conto della
stranezza, di cui sono una prova i cacolatori quaantistici, basta considerare un solo fatto
stravagante, la cosiddetta delocalizzazione delle particelle quantistiche. Essa coincide
con il fenomeno seguente: una particella quantistica (come ad esempio un fotone o un
elettrone) non ha le classiche proprietà di un corpo macroscopico (ad esempio una pallina
da tennis) ma gode, in un certo senso, del dono dell’ibiquità. Un elettrone può quindi, in
un certo senso quantistico, essere in uno stato dove è allo stesso qui e lı̀. In quel caso, la
posizione rimane sconosciuta, finché una qualche interazione (per esempio un fotone che
rimbalza sull’elettrone) non rivela se l’elettrone si trova qui o lı̀.
Quando due stati quantistici sono sovrapposti si dicono coerenti, e quando riacquistano la
loro identità individuale si parla di perdita di coerenza. Nel caso di un fotone questa può
richiedere anche tempi molto lunghi: possono passare giorni prima che esso urti un oggetto
piccolo come un elettrone e la posizione corretta viene rivelata. Teoricamente anche una
palla potrebbe essere simultaneamente sia qui che lı̀, in pratica però questo fenomeno non
è visibile, dato che il tempo necessario affinché un fotone rimbalzi sulla palla è troppo
breve per esser percepito dall’occhio o rilevato da uno strumento. In altre parole, la palla
è troppo grande per nascondersi dai fasci di fotoni, e non può quindi rimanere in una
posizione indeterminata. Questa stranezza della fisica quantistica si manifesta quindi solo
con entità di dimensioni ridottissime.
1.4
Il computer quantistico
Un computer quantistico è un apparecchio per la computazione che fa uso diretto di
fenomeni quantistici, come la superposizione e l’entaglement per eseguire operazioni su
dei dati. In un computer classico le informazioni sono salvate in bits, mentre nel computer quantistico sono registrate in cosiddetti qubits (quantum binary digits). Alla base del
quantum computer sta la possibilità di strutturare e rappresentare dati nelle proprietà
quantistiche, e i meccanismi quantistici possono essere utilizzati per compiere operazioni
10
su questi dati.
Sebbene gli studi sul computer quantistico siano ancora agli inizi, sono già stati portati a
termine esperimenti in cui vengono eseguite operazioni quantistiche su un numero molto
ridotto di qubits.
Se potranno essere costruiti computer quantistici su grande scala, questi saranno in grado di risolvere certi problemi molto più rapidamente di ogni computer classico attuale,
mettendo per esempio in pericolo gli attuali sistemi di crittografia. Infatti, l’algoritmo di
Shor permetterà di fattorizzare un numero n = pq, dove p e q sono numeri primi, molto
velocemente, mettendo in crisi la sicurezza del protocollo di crittografia RSA, oggi il più
utilizzato.
Per dare un’idea di quanto verrebbe accelerato il processo di fattorizzazione è stata riportata una tabella con un confronto diretto del computer classico e quello quantistico.
Negli esempi qui riportati, il computer classico utilizza l’algoritmo classico attualmente
più veloce, mentre quello quantistico utilizza l’algoritmo quantistico di Shor. Entrambi i
computer hanno una frequenza operativa nell’ordine dei THz.
Ecco i dati stimati nel caso in cui il numero da fattorizzare è di 300 cifre.
computer classico
computer quantistico
processi
1010 processi
150′000 anni
< 1 secondo
10
24
Se il numero da fattorizzare ha 5′ 000 cifre la situazione diventa ancora più estrema: il
computer classico impiegherebbe ben 5 bilioni di anni per fattorizzare il numero (si ricorda
che l’universo ha un età stimata di 10-16 miliardi di anni), mentre quello quantistico poco
più di 2 minuti.
Siamo quindi di fronte ad una macchina che una volta realizzata avrebbe un potenziale
enorme ed aprirebbe nuove strade verso calcolazioni oggigiorno ritenute impossibili.
11
Capitolo 2
I principi del calcolo quantistico
2.1
Qubits
Nella teoria classica della computazione e dell’informazione, il bit è il concetto fondamentale. La teoria della computazione e dell’informazione quantistica è costruita su un
concetto analogo, il bit quantistico, più comunemente chiamato qubit. Un bit classico può
avere due stati, notati 0 e 1, analogamente il qubit può avere due stati quantistici notati
|0i e |1i. Questi stati sono a priori due stati ortogonali di un qualsiasi sistema a due
livelli.
Indipendentemente dalla realizzazione fisica concreta, è necessario dal punto di vista teorico avere degli stati a due livelli, in modo da poter manipolare gli stati quantistici. D’ora
in avanti supponiamo di avere un prototipo ideale descritto dallo spazio di Hilbert H = C2
che ci fornisce due qubit ortogonali |0i e |1i. Questi stati vengono rappresentati in C2 dai
vettori
1
0
|0i =
|1i =
.
0
1
Nello spazio di Hilbert H il prodotto scalare è dato da
hψ |φi =
2
X
ψ̄i φi
i=1
ψ1
φ1
dove |ψi =
e |φi =
.
ψ2
φ2
Un prima differenza fondamentale tra i bit classici e i qubit, è il fatto che classicamente
gli stati possono essere unicamente 0 o 1, mentre quantisticamente lo stato può essere |0i,
12
|1i o una qualsiasi combinazione lineare in H. Il qubit più generale è quindi dato da
|ψi = α |0i + β |1i
2.1.1
con le ampiezze
α, β ∈ C e |α|2 + |β|2 = 1
La misura su un qubit
Se si effetua una misura sul sistema nello stato |ψi si otterranno due possibili valori,
convenzionalmente indicati con 0 e 1. Secondo le leggi della fisica quantistica il risultato
della misura è intrinsecamente aleatorio e le probabilità sono date da
Prob|ψi {0} = |h0 |ψi |2 = |α|2 ,
rispettivamente
Prob|ψi {1} = |h1 |ψi |2 = |β|2 .
Dopo la misura, se si è osservato il valore 0 lo stato del sistema sarà |0i, se invece si è
osservato 1 lo stato sarà |1i.
2.1.2
Interpretazione geometrica
Una visualizzazione utile del qubit è ottenuto con una rappresentazione geometrica nella
quale gli stati di un qubit vengono associati ai punti su una sfera di raggio unitario. Il
polo posto a sud della sfera corrisponde allo stato 1 e quello a nord allo stato 0. Tutte
le posizioni intermedie sono le sovrapposizioni quantistiche di 0 e 1. Questa sfera è nota
come la Sfera di Bloch ed è illustrata nella figura 2.1.
Esiste una corrispondenza tra un generico stato di un qubit
|ψi = α |0i + β |1i
e un punto sulla sfera di raggio 1 posta in R3 rappresentato come
cos
θ
θ
|0i + eiϕ sin |1i ,
2
2
dove θ e ϕ sono numeri reali equivalenti alle coordinate sferiche del punto.
13
|0i
z
θ
ψ
y
x
|φi
|1i
Figura 2.1. La Sfera di Bloch rappresentante un qubit.
I numeri complessi
Un numero complesso ha la forma
z = a + ib
(a, b ∈ R),
√
dove i = −1, a = Re(z) rappresenta la parte reale e b = Im(z) la parte immaginaria.
√
Il modulo di z è |z| = a2 + b2 , e il coniugato di z è dato da z ∗ = a − ib.
L’insieme dei numeri complessi viene denotato C.
Un numero complesso si può vedere come un punto nel piano complesso definito dagli
assi Re(z) e Im(z), e utilizzando le coordinate cartesiane o polari.
Coordinate cartesiane
Il punto z ha coordinate a (sull’asse reale Re) e b (sull’asse immaginario Im).
Coordinate polari
√
Se l’angolo formato dall’asse Re e dal vettore z è di ampiezza φ e r = a2 + b2 è il
modulo di z, allora a = r cos φ e b = r sin φ. Il punto z è quindi individuato dalle
coordinate (r, φ), e si può scrivere z = r(cos φ + i sin φ). Utilizzando la formula di
Eulero
eiφ = cos φ + i sin φ.
otteniamo z rappresentato come reiφ .
Un qubit |ψi = α |0i + β |1i, dove α e β sono numeri complessi tali che |α|2 + |β|2 = 1,
14
può quindi esser scritto in coordinate polari come
|ψi = r0 eiφ0 |0i + r1 eiφ1 |1i ,
con
r02 + r12 = 1.
(2.1)
L’equazione (2.1) descrive un cerchio unitario in R2 . Introducendo l’angolo ρ e con
r0 = cos ρ
e
r1 = sin ρ,
possiamo rappresentare i moduli di α e β. Ponendo ρ = θ/2 si ottiene
|ψi = eiγ cos
θ
θ
|0i + eiϕ sin |1i ,
2
2
con ϕ = φ1 − φ0 e γ = φ0 , 0 ≤ ϕ ≤ 2π e 0 ≤ θ ≤ π. Dal punto di vista fisico il fattore eiγ
non ha effetti osservabili, infatti durante la misurazione va perso, e dunque dal punto di
vista osservazionale i due stati eiγ |ψi e |ψi sono identici.
Notiamo infine che l’angolo θ che un punto sulla sfera forma con l’asse z, varia nello stesso
intervallo 0 ≤ θ ≤ π dell’angolo θ nella rappresentazione del qubit
|ψi = cos
θ
θ
|0i + eiϕ sin |1i .
2
2
(2.2)
Inoltre, l’angolo ϕ di questa rappresentazione soddisfa le stesse condizioni 0 ≤ ϕ ≤ 2π
dell’angolo formato dalla proiezione di un vettore nella sfera di Bloch sul piano (x, y) con
l’asse x.
Esiste quindi una corrispondenza biunivoca tra i qubit rappresentati come nell’equazione
(2.2) e i punti della sfera di Bloch.
2.1.3
Interpretazione fisica
Un qubit, descritto in modo astratto come un vettore nello spazio bi-diminesionale complesso, ha un corrispondente nel mondo reale. In particolare può essere rappresentato da
qualsiasi sistema fisico con almeno due livelli di energia discreti e sufficientemente separati. Gli approcci più comuni per la realizzazione fisica di un qubit sono quelli basati
su:
• le due diverse polarizzazioni di un fotone;
15
• l’allineamento di uno spin nucleare in un campo magnetico uniforme;
• due livelli di energia1 di un elettrone che ruota in un singolo atomo.
Consideriamo ad esempio il sistema costituito da un atomo di idrogeno H 2 . In questo
sistema, lo stato |0i può esser rappresentato dal primo livello di energia (n = 0), corrispondente allo stato base dell’elettrone, e lo stato |1i dal secondo livello di energia
(n = 1), corrispondente allo stato eccitato. Si può passare da uno stato all’altro sottoponendo l’elettrone ad un raggio laser di appropriata intensità, durata e lunghezza d’onda.
Riducendo la durata del irradiamento laser è possibile ottenere uno stato intermedio, come
ad esempio
2.2
√1
2
|0i +
√1
2
|1i.
Registri quantistici
Abbiamo considerato un sistema quantistico a due stati, un qubit. Un sistema quantistico
non è però limitato a due stati. Il discorso in precedenza applicato per il sistema a due
stati è in gran parte applicabile anche nel caso generale con m qubit.
Matematicamente il sistema a due stati è completamente descritto con
|φi = α |0i + β |1i .
Per due qubit lo spazio di Hilbert è per definizione il prodotto tensoriale H1 ⊗ H2 , dove
H1 = C2 descrive il primo qubit e H2 = C2 descrive il secondo. Gli elementi di H1 ⊗ H2
sono della forma
|ψ1 i ⊗ |ψ2 i ≡ |ψ1 i |ψ2 i
(2.3)
ed il prodotto non è commutativo. In H1 ⊗ H2 vi sono 4 stati che definiscono una base
ortonormata
|0i |0i
|0i |1i
|1i |0i
|1i |1i
(2.4)
Il prodotto scalare in H1 ⊗ H2 tra |ψ1 i |ψ2 i e |φ1 i |φ2 i è cosı̀ definito
hψ1 |φ1 i hψ2 |φ2 i
ossia è il prodotto in C dei prodotti scalari nei rispettivi spazi di Hilbert.
1
In un atomo i livelli di energia degli elettroni sono discreti e corrispondono a specifici stati di
eccitazione. Selezionando due di questi livelli è possibile rappresentare i valori logici 0 e 1.
2
Negli esperimenti reali vengono tipicamente utilizzati atomi di rubidio e berillio.
16
Un vettore generico in |ψ1 i |ψ2 i è una combinazione lineare dei 4 stati di base definiti
in (2.4).
Da notare che non tutti gli stati sono esprimibili come in (2.3). Gli stati che non fattorizzano, e sono quindi delle combinazioni lineari, sono detti stati entangled .
Questo formalismo si generalizza a m qubit.
Notasi che in generale, un registro quantistico composto da m qubit, necessita 2m vettori
di base per descrivere completamente il suo stato. Nel sistema a m qubit, lo spazio di
Hilbert ha 2m assi perpendicolari, che rappresentano i possibili stati in cui il sistema può
essere misurato. Come nel sistema a due stati, quando si effetua una misura sul sistema
a 2m stati, questo sarà sempre in uno stato preciso e non in uno stato di superposizione,
mentre prima della misura, il sistema può essere in qualsiasi superposizione degli 2m stati
|Φi =
m −1
2X
k=0
αk |xk i ,
(2.5)
dove gli |xk i (0 ≤ k ≤ 2m − 1) definiscono i vettori di base dello spazio di Hilbert a 2m
qubit. Il registro a m qubit può quindi essere misurato in 2m stati diversi.
La misura su più qubit è la generalizzazione di quella su un qubit, per esempio la
probabilità di osservare lo stato |xℓ i, se lo stato del registro è (2.5) è data da
Prob|Φi {xℓ } = |hΦ |xℓ i |2 = |αℓ |2 .
Utilizzando queste informazioni possiamo costruire un registro quantistico, nel quale possiamo salvare qualsiasi numero x, finché abbiamo abbastanza qubit a disposizione, cosı̀
come in un registro classico si possono salvare numeri x finché ci sono abbastanza bit
disponibili.
Osserviamo quindi che in un registro quantistico può esser salvato un numero di informazioni esponenzialmente più grande che in un registro classico. Questo è un primo
suggerimento della maggiore potenza del computer quantistico.
2.3
Il principio del calcolo quantistico
Il calcolo classico è dato da una serie di operazioni logiche effettuate sull’insieme dei
bit; analogamente il calcolo quantistico consiste in una successione di operazioni sullo
17
stato più generale dell’insieme dei qubit. Questo tipo di operazioni è rappresentato con
una matrice unitaria U(t0 , t) che trasforma lo stato iniziale t in uno stato finale t0 , nel
quale viene effettuata una misurazione sull’insieme dei qubit o su un loro sottoinsieme,
cosı̀ da ottenere un risultato dell’operazione. I processi del calcolo quantistico vengono
solitamente modellizzati in cosiddetti circuiti quantistici.
2.4
Quantum gates
Dopo aver studiato la descrizione quantistica degli stati di una computazione, vediamo ora
come questi stati evolvono per dar luogo ad una computazione quantistica. Analogamente
al computer classico, un computer quantistico è formato da circuiti quantistici, costruiti
da porte logiche (quantum gates). Contrariamente al caso classico, un’operazione definita
su un qubit non può limitarsi a stabilire un’azione per gli stati di base |0i e |1i, ma deve
specificare una trasformazione anche per i qubit che si trovano in una sovrapposizione
degli stati |0i e |1i. Questo risultato è ottenuto con le operazioni lineari , che per
convenienza rappresenteremo con delle matrici.
2.4.1
Operatori lineari
Una funzione L : C2 7→ C2 è detta lineare se per ogni a1 , a2 ∈ C e v1 , v2 ∈ C2 vale
L(a1 v1 + a2 v2 ) = a1 L(v1 ) + a2 L(v2 ).
Nella base computazionale |0i e |1i, una funzione lineare L definita da
L(|0i) = a11 |0i + a21 |1i
e
L(|1i) = a12 |0i + a22 |1i
è rappresentata dalla matrice unitaria
A=
a11 a12
a21 a22
!
.
Una porta logica è quindi sostanzialmente definita da una matrice unitaria. Si distinguono
porte quantistiche che agiscono su un solo qubit e porte che agiscono su più qubit.
18
Matrici unitarie
Una matrice U : C2 7→ C2 è detta unitaria se per ogni v1 , v2 ∈ C2 vale la relazione
hUv1 |Uv2 i = hv1 |v2 i .
Questo è equivalente a
t
U −1 = U ∗ = U .
2.4.2
Porte logiche quantistiche a un qubit
Un’operazione su un qubit è generalmente definita da una matrice 2 x 2, tuttavia non tutte
le matrici 2 x 2 sono delle operazioni lecite sui qubit. La condizione di normalizzazione
|α|2 + |β|2 = 1 deve essere mantenuta anche nello stato ottenuto dopo la trasformazione.
L’unitarietà della matrice soddisfa questo requisito.
L’operazione fondamentale ad un qubit è nota come Hadamard gate, l’effetto della quale
è trasformare uno stato di base in una sovrapposizione. La porta di Hadamard è data
dalla matrice unitaria
!
1 1 1
H=√
2 1 −1
che applicata sui qubit della base di calcolo corrisponde a
1
H |1i = √ (|0i − |1i).
2
1
H |0i = √ (|0i + |1i)
2
La porta di Hadamard viene indicata con il simbolo
H
Contrariamente al caso classico, dove vi è un un’unica operazione non banale su un bit,
nel caso quantistico esistono molte operazioni non banali su un qubit. Oltre alla porta di
Hadamard, altre operazioni importanti sono
• Pauli-X gate o NOT gate, data da
X=
0 1
1 0
!
che corrisponde a
α |0i + β |1i
X
19
β |0i + α |1i .
• Pauli-Y gate , data da
!
0 −i
i 0
Y =
che corrisponde a
α |0i + β |1i
i(β |0i − α |1i).
Y
• Pauli-Z gate , data da
1 0
0 −1
Z=
!
che corrisponde a
α |0i + β |1i
2.4.3
Z
α |0i − β |1i .
Porte logiche quantistiche a più qubits
Non sempre è possibile scomporre un registro di due qubits nel prodotto tensoriale dei
singoli qubit componenti. Sono quindi necessarie delle operazioni che agiscono su più
qubit, definendo delle trasformazioni per gli stati composti, in particolare per gli stati
entangled. Anche le operazioni che agiscono su più qubits sono unitarie. La porta logica
più importante è la porta CNOT (controlled-NOT), che agisce su due qubits, chiamati qubit
di controllo e qubit target.
La porta è rappresentata graficamente dal circuito
|Ai
•
|Ai
|Bi
|B ⊕ Ai
Figura 2.2. La porta CNOT.
Si nota subito che se il controllo è zero, il target è inalterato, e se il controllo è uno, il
target viene negato, ossia
|00i 7→ |00i , |01i 7→ |01i , |10i 7→ |11i , |11i 7→ |10i .
In generale CNOT si può quindi scrivere
|ai |bi 7→ |ai |b ⊕ ai ,
dove |ai e |bi sono rispettivamente i qubit di controllo e target, e ⊕ è la somma modulo 2
(come nella corrispondente operazione classica XOR). La porta CNOT è rappresentata dalla
20
matrice unitaria

0 0 0

1 0 0
,
0 0 1

0 1 0

1

0

0

0
dove ogni colonna rappresenta la trasformazione sul rispettivo vettore della base di calcolo
|00i , |01i , |10i , |11i. È di fondamentale importanza osservare che la porta CNOT, come
tutte le trasformazioni unitarie, è invertibile, ossia dall’output è sempre possibile ottenere
l’input. Questo è in grande contrasto con le operazioni classiche su due qubit, che sono
generalmente sempre irreversibili.
Esempio d’applicazione: qubit swap circuit
Questo circuito quantistico scambia la posizione di due qubits.
|Ai
•
•
|Bi
|Bi
•
|Ai
Analizziamo il procedimento
2.5
|ai
|a ⊕ (a ⊕ b)i = |bi
|bi
|ai
•
•
|bi
|bi
•
|ai
|a ⊕ bi
|a ⊕ bi
|b ⊕ (a ⊕ b)i = |ai
Circuiti quantistici
Un circuito quantistico è costituito da dei quantum wires rappresentati da linee, che
simboleggiano il passaggio di una particella quantistica (qubit). Lo stato in entrata di
un singolo qubit è solitamente dato da |00...0i ≡ |0i. Vi sono poi una successione di
quantum gates che rappresentano le operazioni unitarie eseguite sui qubit. Infine vi è
una quantum measure, indicata con il simbolo di un metro, che trasforma il qubit in
un bit classico (rappresentato da due linee) tramite una misura probabilistica. Lo schema
generale del calcolo quantistico è illustrato nella figura sottostante.
Un’altro esempio di circuito quantistico è riportato sotto.
21
|0i
NM
NM
|0i
U(t, t0 )
|0i
|0i
|0i
Figura 2.3. Lo schema generale del calcolo quantistico.
• •
•
U
• •
NM
• H
•
NM
Figura 2.4. Un esempio di circuito quantistico.
2.6
Due particolarità del calcolo quantistico
Reversibilità
Il calcolo quantistico effetua delle operazioni reversibili (esclusa la misura). Questo è
dato dal fatto che le operazioni sono rappresentate da una matrice unitaria, come già
detto in precedenza. L’esistenza di una matrice inversa ad U garantisce la reversibilità
dell’operazione. Questo aspetto differenzia il calcolo quantistico da quello classico, nel
quale esistono molte operazioni irreversibili, tipicamente quelle che a due bit in entrata
ne associano uno solo in uscita. Un esempio classico è la porta NAND
x ↑ y = 1 ⊕ xy
dove ⊕ è la somma modulo 2. I risultati di questa operazioni sono riassunti nella seguente
tavola delle verità.
input
output
00
0↑0=1
01
10
11
0↑1=1
1↑0=1
1↑1=0
22
Si nota subito che dato il risultato 1 è impossibile risalire ai due bit iniziali.
Un’altro esempio classico è quello della porta XOR, che agisce nel modo seguente
x XOR y = x ⊕ y,
e i suoi risultati sono riassunti nella tavola della verità sottostante.
input
output
00
01
0⊕0=0
0⊕1=1
10
11
1⊕0=1
1⊕1=0
È ora triviale notare che quest’operazione è irreversibile, in quanto dal risultato ottenuto
non è possibile determinare la x e la y iniziale.
Parallelismo quantistico
In un computer quantistico si può valutare una funzione f (x) su diversi valori di x
contemporaneamente. Questa proprietà è nota come parallelismo quantistico ed è una
caratteristica fondamentale del calcolo quantistico. Consideriamo una funzione della
forma
f : A −→ B
dove A e B sono insiemi finiti. Per calcolare f (x) mediante una computazione quantistica
è necessario definire f (x) come una trasformazione unitaria Uf . Per far ciò, applichiamo
sullo stato iniziale |ai |bi l’insieme di porte logiche quantistiche Uf , che portano allo stato
finale secondo la seguente trasformazione
|ai |bi −→ |ai |b ⊕ f (a)i
dove |ai è un elemento dello spazio degli stati del registro di input e |bi è un elemento
dello spazio degli stati del registro di output.
|ai
|bi
Uf
|ai
|b ⊕ f (a)i
Figura 2.5. Schema del circuito quantistico della funzione f .
Consideriamo ora il caso in cui lo stato iniziale del registro di input sia una combinazione
23
lineare del tipo
output
Uf
X
a∈A
P
a∈A
αa |ai |0i =
αa |ai e |bi = 0. Applicando Uf otteniamo lo stato del registro di
X
a∈A
αa Uf |ai |0i =
X
a∈A
dove è stata sfruttata la linearità di Uf .
P
a αa |ai
αa |ai |0 ⊕ f (a)i =
Uf
|0i
P
X
a∈A
a
αa |ai |f (a)i = |ψi (2.6)
αa |ai |f (a)i
Figura 2.6. Principio del parallelismo quantistico.
Constatiamo quindi che eseguendo Uf una sola volta otteniamo informazioni su tutti i
valori di f , che possono venire calcolati e quindi si possono utilizzare per ottenre determinati risultati (ma attenzione: misurando lo stato |ψi dell’equazione (2.6) si ottiene un
solo valore di f ). Questo è possibile grazie al parallelismo quantistico, che è fondato sulla
possibilità di avere delle combinazioni lineari di stati, ossia degli stati intrecciati a più
qubit.
24
Capitolo 3
L’algoritmo di Deutsch e Deutsch
Jozsa
Quantum computation is... a distinctively new way of harnessing nature... It
will be the first technology that allows useful tasks to be performed in collaboration between parallel universes. (D. Deutsch, 1997)
3.1
L’algoritmo di Deutsch
L’algoritmo di Deutsch, concepito da David Deutsch nel 1985, è un primo esempio che
dimostra la migliore performance dei circuiti quantistici rispetto a quelli classici. Qui
descriviamo una versione semplificata e migliorata dell’algoritmo, che combina il parallelismo quantistico con la proprietà della fisica quantistica della sovrapposizione di stati.
Consideriamo pertanto una funzione con dominio e insieme delle immagini un singolo
qubit.
f : {0, 1} → {0, 1}.
Utilizziamo inizialmente la porta di Hadamard per preparare un qubit nello stato di
√
√
superposizione (|0i + |1i)/ 2 e uno nello stato (|0i − |1i)/ 2. Questo lo si ottiene
applicando il gate H rispettivamente ai qubit |0i e |1i. Seguiamo gli stati lungo il circuito
quantistico, rappresentato nella figura 3.1.
|0i
H
|1i
H
Uf
H
Figura 3.1. Il circuito quantistico dell’algoritmo di Deutsch.
26
Allo stato iniziale
|ψ0 i = |0i |1i
viene applicata la porta di Hadamard. Si ottiene il nuovo stato
|0i + |1i
√
|ψ1 i =
2
|0i − |1i
√
.
2
√
Sappiamo che Uf applicato allo stato |xi (|0i − |1i)/ 2 da come risultato
√
(−1)f (x) |xi (|0i − |1i)/ 2,
quindi se applicando Uf allo stato |ψ1 i si ottengono le due possibilità
 h
ih
i
|0i−|1i
± |0i+|1i
√
√
, se f (0) = f (1)
h 2 ih 2 i
|ψ2 i =
|0i−|1i
± |0i−|1i
√
√
, se f (0) 6= f (1).
2
2
Applicando la porta di Hadamard per la secondo volta sul primo qubit, otteniamo

h
i
± |0i |0i−|1i
√
, se f (0) = f (1)
h 2 i
|ψ3 i =
± |1i |0i−|1i
√
, se f (0) 6= f (1).
2
Constatando che f (0) ⊕ f (1) è 0 quando f (0) = f (1) e 1 altrimenti, possiamo riscrivere
lo stato come
|0i − |1i
√
,
|ψ3 i = ± |f (0) ⊕ f (1)i
2
cosı̀ che misurando il primo qubit possiamo determinare f (0) ⊕ f (1). Questo è molto
interessante, infatti il circuito quantistico ci ha dato la possibilità di determinare una
proprietà globale di f (x), ossia f (0) ⊕ f (1), con una sola valutazione di f (x)! Questo
è più rapido di quanto è possibile fare con un computer classico, che richiederebbe due
valutazioni.
3.2
L’algoritmo di Deutsch-Jozsa
L’algoritmo di Deutsch è un caso semplice di un algoritmo quantistico più generale, l’algoritmo di Deutsch-Jozsa. L’applicazione, conosciuta come il problema di Deutsch può
essere descritta con un semplice gioco. Alice, che sta ad Amsterdam, sceglie un numero
27
x incluso tra 0 e 2n − 1 e lo invia in una lettera a Boston, dove Bob, calcola una funzione
f (x) e rispedisce il risultato, che può essere rispettivamente 0 o 1. Ora, Bob ha promesso
di utilizzare un funzione che sia o costante, e che quindi assume lo stesso valore per ogni
x, oppure bilanciata, ossia che assume il valore 0 per esattamente la metà dei possibili
valori di x e il valore 1 per l’altra metà. Lo scopo di Alice è di determinare con certezza di
che tipo è la funzione utilizzata da Bob, comunicando il meno possibile con lui. Quanto
tempo impiegherà Alice per arrivare alla soluzione?
Nel caso classico, Alice può spedire unicamente un valore nella stessa lettera. Alla peggio, Alice dovrà quindi interrogare Bob 2n /2 + 1 volte, dato che potrebbe ricevere come
risultati 2n /2 zeri, prima di ottenere un 1 e constatare che la funzione di Bob è bilanciata.
Dunque, il miglior algoritmo classico utilizzabile per determinare il tipo della funzione,
richiede 2n /2 + 1 richieste.
Se Bob e Alice fossero in grado di scambiare qubits, invece dei bit classici, e se Bob
accettasse di calcolare f (x) utilizzando una trasformazione unitaria Uf , Alice potrebbe
raggiungere il suo obiettivo in un’unica corrispondenza con Bob, utilizzando l’algoritmo
di Deutsch-Jozsa.
Come nell’algoritmo di Deutsch, Alice ha un registro di n qubit dove salva la sua domanda, e un registro di un qubit dove Bob salverà la risposta. Alice inizierà a preparare il suo
registro come una superposizione di altri valori, in seguito Bob calcolerà f (x) utilizzando
il parallelismo quantistico e lascerà il risultato nel registro della risposta. Alice combinerà
gli stati utilizzando la trasformazione di Hadamard sul registro della domanda, e conclude
effettuando una misura per determinare se f è costante o bilanciata.
Il procedimento dell’algoritmo è visibile nella figura 3.2.
|0i⊗n
|1i
H ⊗n
Uf
H ⊗n
NM
H
Figura 3.2. L’algoritmo di Deutsch-Jozsa.
Seguiamo ora i diversi stati nel circuito. Lo stato di input
|ψ0 i = |0i⊗n |1i
è simile a quello dell’algoritmo di Deutsch, ma qui il registro della domanda descrive lo
stato di n qubits tutti preparati nello stato |0i. Dopo l’applicazione della trasformata di
Walsh-Hadamard sul registro di domanda e la porta di Hadamard sul registro di risposta
28
otteniamo lo stato
|ψ1 i =
X
x∈{0,1}n
|xi |0i − |1i
√
√
.
2n
2
La trasformata di Walsh-Hadamard
La trasformata di Walsh-Hadamard è una generalizzazione della porta di Hadamard
utile per creare uno stato contenente informazioni di n qubits, che servirà a valutare
una funzione f contemporaneamente su tutti gli n qubits. L’operazione consiste in n
porte di Hadamard che agiscono in parallelo su n qubits. Ad esempio, per n = 2, la
trasformata di Walsh-Hadamard viene indicata con H ⊗2 = H ⊗ H e applicata a due
qubit nello stato iniziale |0i dà come risultato
|00i + |01i + |10i + |11i
|0i + |1i |0i + |1i
√
⊗ √
=
.
2
2
2
In generale, H ⊗n applicato a n qubits preparati nello stato |0i, si scrive
1 X
√
|xi ,
2n x
dove x è la rappresentazione binaria dei numeri da 0 a 2n − 1. La trasformata di
Walsh-Hadamard produce quindi una sovrapposizione di tutti gli stati della base computazionale di n qubits. Si osserva che per ottenere una sovrapposizione di 2n stati
vengono utilizzate soltanto n porte logiche di Hadamard.
Il registro della domanda è ora una superposizione di tutti i valori, mentre il registro
della risposta è una superposizione di 0 e 1. Ora viene calcolata la funzione f (da Bob)
utilizzando Uf : |xi |yi → |xi |y ⊕ f (x)i, e si ottiene
X (−1)f (x) |xi |0i − |1i √
√
.
|ψ2 i =
n
2
2
n
x∈{0,1}
Alice possiede ora una quantità di qubits nei quali è salvato il risultato della funzione
calcolata da Bob. Ora è necessario calcolare H ⊗n . Per determinare questo risultato è utile
analizzare prima l’effetto della trasformazione di Hadamard su uno stato |xi. Verificando
separatamente i casi x = 0 e x = 1, otteniamo per un singolo qubit
1 X
(−1)xz |zi .
H |xi = √
2 z∈{0,1}
29
Quindi
1
H ⊗n |x1 , ..., xn i = √
2n
X
z1 ,...,zn∈{0,1}n
(−1)x1 z1 +...+xnzn |z1 , ..., zn i ,
che può essere scritto in modo compatto come
1
H ⊗n |xi = √
2n
X
z∈{0,1}n
(−1)x·z |zi ,
dove x · z è il prodotto scalare modulo 2. Grazie a questa formula, si può ora calcolare lo
stato finale del registro
1
|ψ3 i = n
2
X
X
z∈{0,1}n x∈{0,1}n
(−1)x·z+f (x) |zi
!
|0i − |1i
√
.
2
Analizzando i casi possibili, osserviamo che se f è costante, la probabilità di ottenere
z = 00...0 nella misura degli n qubit è uguale a 1, infatti
X
2
Prob|ψ3 i {00...0} = |h00...0 |ψ3 i | = x∈{0,1}n
2
f (x) (−1)
2n
= 1,
e chiaramente tutte le altre possibilità sono nulle. Se f è bilanciata invece, la possibilità
di ottenere z = 00...0 nella misura degli n qubit del registro input, è uguale a 0, infatti
X
2
Prob|ψ3 i {00...0} = |h00...0 |ψ3 i | = x∈{0,1}n
2
(−1)f (x) = 0,
2n poiché metà delle volte f (x) = 0 e l’altra metà f (x) = 1, quindi nella misura si otterà un
valore diverso da 0 su almeno un qubit del registro della domanda. Concludendo, se Alice
misura tutti gli n valori 0, la funzione è costante, altrimenti è bilanciata.
Si è quindi mostrato che un computer quantistico può risolvere il problema di Deutsch
eseguendo un unico calcolo della funzione f , rispetto al requisito classico di 2n /2 + 1
calcoli.
Esempio con n = 2
Consideriamo una funzione il cui insieme di denominazione contiene 4 elementi. Come
visto in precedenza il problema vuole che la funzione sia obbligatoriamente costante oppure
bilanciata.
30
Seguiamo il procedimento illustrato dal circuito quantistico nella figura 3.3.
|0i
H
|0i
|0i
H
X
Uf
H ⊗2
NM
NM
H
Figura 3.3. L’algoritmo di Deutsch-Jozsa con n = 2.
Inizializziamo il sistema nello stato
|ψ0 i = |00i |0i .
Come primo passaggio applichiamo X al qubit di controllo
|ψ1 i = |00i ⊗ X |0i = |00i |1i ,
poi l’operatore di Hadamard
|ψ2 i = H ⊗2 ⊗ H |ψ1 i =
|00i + |01i + |10i + |11i |0i − |1i
⊗ √
.
2
2
Nei passaggi seguenti non riscriveremo più lo stato del qubit di controllo visto che resterà
invariato.
Applichiamo ora Uf , il cui effetto, come visto precedentemente, è riassumibile in |xi 7→
(−1)f (x) |xi non modificando lo stato del qubit di controllo.
Si suppone che la funzione f (x) assume valore 1 per x = 00 e x = 11, mentre assume
valore 0 nei casi in cui x = 01 e x = 10. La funzione risulta quindi essere bilanciata,
ma in la verità non lo sappiamo ancora, poiché questo stato non è visibile nella realtà
di un calcolatore quantistico, che ci permetterà solo con la misurazione finale di venire a
conoscenza di un valore concreto.
Otteniamo
(−1)1 |00i + (−1)0 |01i + (−1)0 |10i + (−1)1 |11i
2
− |00i + |01i + |10i − |11i
=
.
2
|ψ3 i = Uf |ψ2 i =
31
Non ci resta infine che far passare il tutto attraverso un’altra porta di Hadamard, ottenendo
−H ⊗2 |00i + H ⊗2 |01i + H ⊗2 |10i − H ⊗2 |11i
=
2
" 1
|00i + |01i + |10i + |11i
|00i − |01i + |10i − |11i
=
−
+
2
2
2
#
|00i − |01i − |10i + |11i
|00i + |01i − |10i − |11i
−
+
2
2
h
i
1
=
0 |00i + 0 |01i + 0 |10i + 2 |11i = |11i .
2
H ⊗2 |ψ3 i =
La misurazione emette quindi, con probabilità uguale a 1, il valore |11i che, essendo
diverso da |00i, ci permette di affermare che la funzione è bilanciata.
32
Capitolo 4
L’algoritmo di ricerca di Grover
Nel 1996 Lov Grover ha sviluppato un metodo quantistico per risolvere problemi di ricerca
non strutturata fornendo un elevato miglioramento di prestazioni rispetto agli algoritmi
di ricerca classici.
4.1
Problemi di ricerca
I problemi di ricerca consistono in una numerosa classe di problemi. Generalmente, la
forma di un problema di ricerca è la seguente: ”trovare un numero x in un insieme di
possibili soluzioni, per il quale una certa condizione p(x) sia soddisfatta”. Un problema di
ricerca non strutturato è ancora più complesso, perché non si conosce la struttura dello
spazio delle soluzioni. In un problema di ricerca strutturato è invece possibile ottenere delle
informazioni sulla struttura, il che permette di costruire algoritmi efficienti. Il migliore
algoritmo classico per la risoluzione di un problema di ricerca non strutturato è quello che
controlla la condizione p(x) su ogni elemento x nell’insieme delle possibili soluzioni. Se lo
spazio delle soluzioni è di dimensione N, l’algoritmo classico richiede O(N) valutazioni di
p. Su un computer quantistico, utilizzando l’algoritmo di Grover, questo problema richiede
√
solo O( N) valutazioni. L’algoritmo di Grover è quindi ottimale per la risoluzione di
problemi di ricerca non strutturati.
4.2
L’oracolo
Supponiamo di voler cercare degli elementi in un insieme di N = 2n elementi (con n ≥ 1;
nei problemi concreti solitamente n è molto grande). Invece di cercare gli elementi direttamente ci concentriamo sull’indice e assegnamo a ogni elemento un numero da 0 a N − 1
34
attraverso una sequenza di n bits. Supponiamo inoltre che il problema di ricerca abbia
esattamente M soluzioni con 1 ≤ M ≤ N e che esista un oracolo che determini se una
data sequenza di n bits sia una soluzione oppure no. Al momento non ci interessiamo della
realizzazione dell’oracolo anche se il tutto può risultare un po’ astratto. Più precisamente,
l’oracolo è una trasformazione unitaria O che implementa una funzione booleana f :
f : {0, 1}n 7→ {0, 1}
(4.1)
che dà come risultato f (x) = 1 se x è una soluzione e f (x) = 0 nel caso contrario.
L’oracolo corrisponde quindi alla trasformazione unitaria
O : |xi |qi 7→ |xi |q ⊕ f (x)i
(4.2)
dove x ∈ {0, 1}n e |qi è un singolo qubit. Se |qi è inizializzato a |0i, |qi diventa 1
quando f (x) = 1, mentre diventa 0 se |qi è inizializzato a |1i. Nell’algoritmo di ricerca è
conveniente che il qbit |qi sia preparato nello stato |qi = √12 (|0i − |1i). In questo modo
l’azione dell’oracolo è quella di invertire le ampiezze (nella nostra definizione di qubit: i
coefficienti α e β) degli stati |xi che sono soluzioni, lasciando invariati gli altri stati, come
è visibile nella figura 4.1. Possiamo quindi scrivere la trasformazione come segue:
O : |xi
|0i − |1i
|0i − |1i
√
7→ (−1)f (x) |xi √
.
2
2
(4.3)
Il qubit |qi non viene modificato, possiamo quindi ignorarlo. Pertanto applicato ad un
generico stato quantistico O agisce secondo la trasformazione
O:
X
x∈{0,1}n
αx |xi 7→
X
x∈{0,1}n
(−1)f (x) αx |xi .
media
Figura 4.1. Effetto dell’oracolo sulle ampiezze.
35
(4.4)
4.3
L’algoritmo di ricerca di Grover
L’algoritmo di Grover è definito su un registro input preparato nello stato |0i⊗n . La
trasformata di Hadamard viene applicata per ottenere la superposizione equiprobabile di
stati
X
1
|xi
(4.5)
|ψi = √
N x∈{0,1}n
A questo punto si ripete per un numero appropriato di volte l’applicazione dell’operatore
di Grover
G = H ⊗n P0 H ⊗n O
(4.6)
dove l’operatore P0 effettua uno shift di fase di −1 su tutti gli stati computazionali diversi
da |0i, cioè
P0 : |xi 7→
(
|xi se x = 0
,
− |xi se x 6= 0
(4.7)
per ogni 0 ≤ x ≤ N − 1. L’operazione H ⊗n P0 H ⊗n può essere scritta come 2 |ψi hψ| − I,
poiché
H
⊗n
(2 |0i h0| − I)H
⊗n
= H 2
1 0
0 0
!
!
−I H
1 1
−I
1 1
1
1
= 2 · √ (|0i + |1i) · √ (h0| + h1|) − I
2
2
= 2 |ψi hψ| − I.
=
(4.8)
(4.9)
(4.10)
(4.11)
Questa operazione è chiamata ”inversione intorno alla media” perché il suo effetto è quello
di invertire e amplificare le ampiezze degli stati soluzione, le quali erano state moltiplicate
per −1 dall’oracolo, innalzandole del doppio al di sopra della media di tutte le ampiezze
P
(vedi figura 4.2). Applicandola ad uno stato generico |ai = x∈{0,1}n αx |xi otteniamo
(2 |ψi hψ| − I)(
X
x∈{0,1}n
αx |xi) =
X
x∈{0,1}n
(2hαi − αx ) |xi
(4.12)
P
dove hαi ≡ N1 x∈{0,1}n αx è il valore medio di αx . Per il risultato visto in (4.11) possiamo
scrivere l’operatore di Grover come
G = (2 |ψi hψ| − I)O.
36
(4.13)
media
Figura 4.2. Inversione intorno alla media.
Cominciamo dall’applicare O allo stato iniziale |ψi. Questo risulta in
/n
H ⊗n
P0
H ⊗n
O
Figura 4.3. L’operatore G in dettaglio.
1
|ψ ′ i = O |ψi = √
N
X
x∈{0,1}n
(−1)f (x) |xi .
(4.14)
Ora applichiamo la parte restante di G e otteniamo
1
(2 |ψi hψ| − I) |ψ ′ i = √
N
=
1
√
X
x∈{0,1}n
N N
(2hαi − αx ) |xi
X X
f (y)
2
(−1)
− N(−1)f (x) |xi
x∈{0,1}n
y∈{0,1}n
Adesso non ci resta che interpretare il risultato. Per tutti i valori ricercati x ∈ S (con
S l’insieme delle soluzioni) f (x) = 1, mentre per tutti gli x ∈
/ S f (x) = 0. Questo
P
f (y)
come (N − M)(+1) + M(−1) e
ci permette di scrivere la sommatoria y∈{0,1}n (−1)
sviluppando il tutto otteniamo lo stato dopo un’applicazione di G
N − 4M X
3N − 4M X
√
√
|xi +
|xi
N N x∈S
N
N
x∈S
/
(4.15)
Come si può osservare, l’ampiezza dei termini che ci interessano è aumentata. Ripetendo
questa operazione per varie iterazioni, questo effetto sarà incrementato. Alla fine dell’al37
goritmo si effettua quindi una misurazione che darà con molta probabilità uno dei risultati
cercati.
|0i
/n
H ⊗n
G
|0i
X
G
G
NM
H
Figura 4.4. Il ciruito quantistico dell’algoritmo di Grover.
4.4
Interpretazione geometrica
Si può interpretare l’operatore di Grover come una rotazione nel piano bi-dimensionale
generato dal vettore |ψi e dal vettore soluzione del problema di ricerca. Consideriamo
pertanto i vettori normalizzati e ortogonali
|σi = √
X
1
|xi
N − M x∈S
/
e
1 X
|τ i = √
|xi
M x∈S
(4.16)
dove come prima S = {x|f (x) = 1}. Questi stati sono delle sovrapposizioni uniformi degli
stati che non sono soluzioni e di quelli che sono soluzioni, e permettono quindi di scrivere
|ψi =
r
N −M
|σi +
N
r
M
|τ i
N
(4.17)
Per vedere che G effettua una rotazione, osserviamo che l’azione dell’oracolo O è una
riflessione intorno all’asse |σi nel piano generato da |σi e |τ i. Infatti, per ogni stato
a |σi + b |τ i (con |a|2 + |b|2 = 1)
O(a |σi + b |τ i) = a |σi − b |τ i .
(4.18)
In modo simile, anche 2 |ψi hψ| − I effettua una riflessione, nel piano definito da |σi e |τ i,
attorno al vettore |ψi. Il prodotto di due riflessioni è una rotazione. Per analizzare meglio
l’azione di G scriviamo
r
r
N −M
M
θ
θ
|σi +
|τ i = cos |σi + sin |τ i,
(4.19)
|ψi =
N
N
2
2
dove θ è definito da
θ
cos =
2
r
38
N −M
.
N
(4.20)
Come già visto in (4.18), applicando O otteniamo una riflessione rispetto a |σi:
|ψ ′ i = O |ψi = cos
θ
θ
|σi − sin |τ i
2
2
(4.21)
Poi, applicando il resto di G e considerando che hψ |ψ ′ i = cos θ:
G |ψ ′ i = [2 |ψi hψ| − I] |ψ ′ i = 2hψ |ψ ′ i |ψi − |ψ ′ i
θ
θ
3θ
3θ
= (2 cos θ − 1) cos |σi + (2 cos θ + 1) sin |τ i = cos |σi + sin
|τ(4.22)
i
2
2
2
2
e quindi G |ψi si ottiene da |ψi con una rotazione di θ. In modo analogo la successiva
iterazione di G si ottiene da G |ψi con una rotazione di un angolo θ. Questo vuol dire
che dopo k iterazioni il vettore Gk |ψi si ottiene da |σi con una rotazione di un angolo
(2k + 1) θ2 e che la formula generale è quindi
Gk |ψi = cos
(2k + 1)θ
(2k + 1)θ
|σi + sin
|τ i .
2
2
(4.23)
Si può notare che l’effetto delle successive applicazioni di G è quello di avvicinare Gk |ψi al
vettore degli stati soluzione |τ i, come è graficamente visibile nella figura. Per determinare
il numero ottimale di volte k0 che occorre reiterare l’algoritmo poniamo
r
r
θ
θ
N −M
M
(2k + 1)θ
= cos kθ cos − sin kθ sin =
cos kθ −
sin kθ (4.24)
0 = cos
2
2
2
N
N
q
−M
da cui si deduce tan kθ = N M
e, utilizzando 1 + tan2 x = cos12 x , otteniamo cos kθ =
q
M
. Pertanto
N
q
q
M
arccos M
arccos
N
N
q
k0 = ⌊
⌉=⌊
⌉
(4.25)
θ
2 arccos N −M
N
dove ⌊a⌉ denota l’intero più vicino
q al numero reale a e abbiamo utilizzato (4.20) per
2
1
= cos θ2 viene approssimato 1 − 2N
≈ 1 − θ8 , e
ricavare θ. Per N ≫ M si ha che N −M
N
quindi
r
r
√
N
M
π N
k0 ≈
arccos
≈
.
(4.26)
2
N
4 M
Per ottenere con la più alta probabilità un risultato cercato, l’algoritmo di Grover necessita
√
di iterare l’operatore G un numero di volte O( N ). Dopo questo numero di iterazioni
39
infatti la probabilità che la misurazione dello stato dia un risultato positivo è
2
ProbGk0 |ψi {x = y} = |hτ |Gk0 |ψi | = sin2
(2k0 + 1)θ
.
2
(4.27)
(4.28)
Quando N ≫ M, otteniamo
(2k0 + 1)θ
≈ sin
ProbGk0 |ψi {x = y} = sin
2
2
π
+
2
r
1
N
1
≈ 1−O
.
N
Ciò significa che la probabilità d’errore è dell’ordine di O(1/N) .
Esempio con n = 2
Proponiamo ora un esempio per il caso in cui si effettua la ricerca di un elemento (M = 1),
in un insieme composto da 4 elementi (N = 4 e quindi n = 2). Utilizzando (4.25)
otteniamo che occorre applicare esattamente una volta l’operatore di Grover per ottenere
il risultato cercato. Infatti
arccos
k0 = ⌊
2 arccos
Lo stato di input è il seguente
q
q
1
4
4−1
4
⌉ = 1.
|ψ0 i = |0i |0i |0i
L’ultimo qubit è il qubit di controllo e da ora via non lo rappresenteremo più poiché risulta
ininfluente rispetto all’azione dell’algoritmo. Supponiamo che il valore cercato sia x = 2
dove |0i = |00i, |1i = |01i, |2i = |10i, |3i = |11i.
Si applica la porta di Hadamard H ⊗2 e si ottiene la sovrapposizione equiprobabile di stati:
|ψ1 i =
|0i + |1i + |2i + |3i
2
Si applica O:
|0i + |1i − |2i + |3i
2
Notiamo che l’ampiezza dell’elemento cercato è stata invertita da α a −α. Si applica la
parte restante di G, ovvero l’operatore (2 |ψi hψ| − I):
|ψ2 i = O |ψ1 i =
N − 4M
3N − 4M
√
√
(|0i + |1i + |3i) +
|2i
N N
N N
= 0(|0i + |1i + |3i) + 1(|2i) = |2i
G |ψ1 i = (2 |ψi hψ| − I) |ψ2 i =
40
Nell’ultimo passaggio l’ampiezza di |2i è stata ancora invertita ed inoltre amplificata del
doppio al di sopra della media. Questo perché, riconducendo l’effetto di (2 |ψi hψ| − I) |xi
P
a (2 N1 x∈{0,1}n αx − αx ) |xi (come visto in (4.12)), avremo per tutti gli x che non sono
soluzioni:
1
2
N
X
x∈{0,1}n
αx − αx
1 1
1 1+1−1+1 1
−
−
|xi =
|xi = 0
|xi = 2 · ·
4
2
2
2 2
mentre per gli x che sono soluzioni (nel nostro caso solo x = 2):
1 1
+
2 2
|2i = |2i
Tutto ciò è possibile grazie all’inversione dell’ampiezza da α =
precedentemente dall’operatore O.
1
2
a α = − 12 effettuata
Effettuando una misurazione otteniamo quindi con probabilità uguale a 1 il valore cercato
|2i = |10i.
Lo svolgimento dell’algoritmo ha richiesto, con il computer quantistico, una sola iterazione.
L’algoritmo classico invece, richiederebbe di calcolare il valore di f (x) per ogni elemento
fino a trovare un valore che dia 1 e confermi che sia quindi una soluzione. In media tutto
ciò richiederrebbe N/2 valutazioni di f (x). Nel nostro esempio ciò corrisponderebbe a 2
valutazioni invece di 1. Certo, dover effettuare una valutazione in meno non rappresenta
sicuramente un grande guadagno in termini di tempo, ma pensiamo all’applicazione in
database di una certa vastità. Se per esempio si cerca un elemento in un database di
105 elementi, l’algoritmo di Grover richiederebbe solamente 248 iterazioni, mentre un
computer classico dovrebbe valutare in media 105 /2 = 50000 volte la condizione p(x). Il
guadagno di tempo che ne deriva è sicuramente importante.
41
Capitolo 5
L’algoritmo di Shor
5.1
Introduzione
All’inizio degli anni ’90 si sapeva che un computer quantistico poteva essere più veloce
di uno classico nel risolvere certi problemi. Nonostante la curiosità di molti, nessuno
era motivato a fare grandi investimenti per tentare di costruire un computer quantistico.
Questo cambiò nel 1994, quando Peter Shor, uno scienziato di Bell Labs, concepı̀ un
algoritmo quantistico in grado di fattorizzare numeri a molte cifre in tempi polinomiali.
La scoperta di Shor attirò molta attenzione sul campo del computer quantistico.
5.2
Motivazione
L’algoritmo di Shor suscitò grande interesse per via della sua utilità nel combattere la
crittografia classica. Infatti la sicurezza di molti sistemi di crittografia è basata sulla
difficoltà di fattorizzare numeri grandi: se viene creato un metodo sicuro e veloce per
fattorizzare numeri grandi, molti sistemi di crittografia diventerebbero insicuri. Sebbene
non è stato dimostrato che con un computer classico non è possibile fattorizzare numeri
grandi in un tempo polinomiale, l’algoritmo classico attualmente più veloce impiega tempi
1/3
2/3
esponenziali dell’ordine O(ec(log N ) (log log N ) ) per fattorizzare un numero grande N. In
contrasto a ciò, l’algoritmo di Shor completa la stessa operazione in un tempo polinomiale
O((log N)2 log log N)) sul computer quantistico, con un post processing di O(log N) passi
sul computer classico. Questa scoperta suscitò molto interesse per il quantum computer e
ne portò avanti gli studi. L’algoritmo di Shor è oggi uno dei più importanti e più studiati
algoritmi del computer quantistico.
42
5.3
Problema
Il problema che dobbiamo risolvere è il seguente: dato un numero composto N = pq,
dobbiamo determinare p e q. La soluzione per la risoluzione del problema consiste nel
ricondurre il problema di fattorizzazione a un problema di determinazione dell’ordine o
del periodo di una funzione. Per far ciò, dividiamo le operazioni in due parti:
• parte classica, per ridurre il problema alla determinazione del periodo
• parte quantistica, per determinare il periodo e risolvere il problema complessivo
5.4
Parte classica
Per ridurre il problema della fattorizzazione di N = pq ad una determinazione del periodo,
scegliamo innanzitutto un numero a casuale, tale che a < N.
Calcoliamo MCD(a, N) utilizzando l’algoritmo di Euclide. Nel caso più semplice, quando
MCD(a, N) 6= 1,
che significa che a è uno dei due fattori non triviali di N, il problema della fattorizzazione
è risolto.
Nella maggior parte dei casi (quasi sempre, lavorando con numeri grandi) invece a è
coprimo a N (cioè MCD(a, N) = 1) ed si rende quindi necessario procedere nel modo qui
analizzato.
Dati N e a coprimi, esiste un più piccolo r > 0 tale che
ar ≡ 1 mod N,
(5.1)
dove r è chiamato l’ordine di a modulo N.
Determinare l’ordine r, equivale a determinare il periodo della funzione
f (x) = ax
mod N,
infatti da (5.1) otteniamo
f (x + r) = ax+r
mod N = ax
mod N = f (x),
dove r indica il periodo di f , ossia il minor numero intero r per cui f (x + r) = f (x).
43
Ora, se r è dispari o ar/2 ≡ ±1 mod N si deve ricominciare da capo scegliendo un
altro a, altrimenti è possibile proseguire.
Teniamo in considerazione che per determinare il periodo di f dobbiamo scrivere x in notazione binaria e l’insieme di partenza deve corrispondere ad un insieme finito di {0, 1}n
elementi. Quindi la funzione non risulterebbe periodica nel caso in cui 2n non è un multiplo di r. D’altronde se 2n è sufficientemente grande, dell’ordine di O(N 2 ) (cioè con
N 2 ≤ 2n < 2N 2 ), allora la trasformata di Fourier quantistica, la parte dell’algoritmo
quantistico che permette di estrarre la periodicità, non pone problemi.
Una volta trovato un a che non rispetti le due condizioni precedenti, abbiamo
ar ≡ 1 mod N
→ ar − 1 ≡ 0 mod N
→ (ar/2 )2 − 1 ≡ 0 mod N,
da cui
(ar/2 − 1)(ar/2 + 1) ≡ 0 mod N.
Ciò significa che N divide il prodotto αβ, con α = (ar/2 − 1) e β = (ar/2 + 1). Se né α
né β è un multiplo di N, allora N divide in parte α = α1 α2 . . . αk (dove α1 α2 . . . αk è la
fattorizzazione in numeri primi di α) e in parte β = β1 β2 . . . βk . Esiste dunque un fattore
primo αi = p ed uno βj = q. Questi si ottengono calcolando MCD(α, N) e MCD(β, N),
quindi
p = MCD(ar/2 − 1, N)
q = MCD(ar/2 + 1, N).
Questo risultato viene ottenuto svolgendo i calcoli con l’algoritmo di Euclide.
44
L’algoritmo di Euclide
L’algoritmo di Euclide permette di calcolare in modo semplice e rapido il massimo
comune divisore MCD tra due numeri naturali. Siano a e b questi numeri con a > b.
La coppia di partenza è allora (a, b). La formulazione dell’algoritmo è la seguente:
Ad ogni passo, sulla base della coppia precedente, si calcola la coppia (b, r),
dove r è il resto della divisione euclidea di a per b. Si reitera poi il processo
fino a quando r = 0; l’altro numero è il MCD(a, b).
Ad esempio, prendendo a = 56 e b = 42:
5.5
Iterazione
a
b
r
1
2
56
42
3
14
42 14 56 = 42 + 14
14 0 42 = 3 · 14 + 0
0
Commento
r = 0, quindiMCD(56, 42) = 14
Parte quantistica
La parte quantistica del problema di Shor consiste in un algoritmo di ricerca della periodicità della funzione f : {0, 1}n → {0, 1}m , dove l’insieme di partenza ha 2n elementi e
quello di arrivo 2m . La funzione f è periodica di periodo r (vedi figura 5.1), quindi
f (x + r) = f (x)
f (x)
∀x ∈ {0, 1}n
r
x
Figura 5.1. Funzione periodica di periodo r definita su {0, 1}4
Il registro input a n qubit |xi contiene i valori della variabile x, mentre al registro di
output a m qubit |f (x)i sono associati i valori della funzione f per i diversi x. Poniamo
45
N = 2n , e supponendo che r divida N, ossia che esista K ∈ N tale che Kr = N e r < N.
L’algoritmo di Shor è rappresentato attraverso il circuito quantistico illustrato nella figura
5.2.
|0i
/n
|0i
/m
UQF T
H ⊗n
Uf
NM
NM
Figura 5.2. Il ciruito quantistico dell’algoritmo di Shor.
Applicando la porta di Hadamard allo stato iniziale |0i |0i otteniamo
|ψ1 i = (H ⊗n |0i) |0i =
N −1
1 X
√
|xi
N x=0
!
|0i .
Ora è necessario definire Uf partendo dalla funzione iniziale. Sapendo che f (x) = ax mod N
si ottiene
Uf : |xi |0i 7→ |xi |0 ⊕ f (x)i ,
dove 0 ⊕ f (x) è la somma modulo 2 di ognuno degli m qubit dello stato. Applicando Uf
allo stato |ψ1 i si ottiene
N −1
1 X
|xi |f (x)i .
|ψ2 i = Uf |ψ1 i = √
N x=0
Questo stato contiene tutti i valori di f e quindi anche le informazioni sulla periodicità,
tuttavia ottenere il valore di r non è immediato.
Effettuando ora una misura sui qubit del registro di output si ottiene f0 , il che modifica
lo stato dei qubit del registro di input nel modo seguente
|ψ3 i =
1
A
X
x:f (x)=f0
|xi
dove A è la normalizzazione dello stato. Ora, se x0 è il primo valore in {0, 1}n per cui
f (x) = f0
x = x0 + kr
con
46
k = 0, ..., K − 1
dove K =
N
r
indica il numero di periodi. Lo stato |ψ3 i può quindi esser scritto come
K−1
1 X
|ψ3 i = √
|x0 + kri .
k k=0
Si osserva che 0 ≤ x0 ≤ r − 1 è aleatorio e dipende dal valore f0 ottenuto nella misura sul
registro output.
Per determinare r utilizziamo la quantum fourier transform, che è definita dalla
matrice unitaria UQF T agente su |xi come
UQF T
N −1
1 X 2πi xy
|xi = √
e N |yi .
N y=0
Questa trasformazione richiede O((log2 N)2 ) operazioni.
Applicando UQF T agli n qubit dello stato |ψ3 i otteniamo
|ψ4 i = UQF T
K−1
K−1 N −1
1 X
1 X X 2πi (x0 +kr)y
N
|ψ3 i = √
UQF T |x0 + kri = √
e
|yi
K k=0
KN k=0 y=0
Cerchiamo ora di scrivere lo stato |ψ4 i in maniera più semplice.
Innanzitutto dividiamo gli esponenti di e
K−1
X
2πi
e
(x0 +kr)y
N
k=0
2πi
x0 y
N
K−1
X
kry
= |e {z }
e2πi N .
(a) |k=0 {z }
(b)
(5.2)
Ora, la parte (a) dell’equazione (5.2) non contiene il fattore k, quindi è stata tolta dalla sommatoria. La parte (b), che denotiamo αK,r(y) viene trasformata, utilizzando le
proprietà delle sucessioni geometriche e Kr = N, in
K−1
X
k=0
2πi kry
N
e
=
K−1
X
k=0
%
2πi ry
N
e
k
=
%
ry K
1 − e2πi N
47
2πi ry
N
1−e
=
1 − e2πiy
.
1 − e2πiy/K
(5.3)
Sucessioni e serie geometriche
Data una progressione geometrica u1 , u2 , u3, ... di ragione r vale
un = u1 r n−1.
La serie, o somma della sucessione, viene scritta come
n
X
= u1
k=1
1 − rn
1−r
con r 6= 1.
Formula d’Eulero
Nell’insieme dei numeri complessi C esiste la formula di Eulero
eiφ = cos ϕ + i sin ϕ
che mette in relazione e con il seno e il coseno, e da cui si ottiene la formula
eiϕ − e−iϕ
.
sin ϕ =
2i
In seguito, riscriviamo (5.3) nel modo seguente
1 − e2πiy
1 − e2πiy
=
1 − e2πiy/K
1 − e2πiy/K
e−πiy
e−πiy
!
y
e−πi K
y
e−πi K
!
infine, utilizzando la formula di Eulero, troviamo αK,r (y)
αK,r (y) = eiπy(1−1/K)
sin πy
.
sin π Ky
Possiamo quindi scrivere lo stato |ψ4 i come
N −1
1 X 2πi x0 z
|ψ4 i = √
e N αK,r(z) |zi .
KN z=0
48
y
−e−iπy + eiπy e−iπ K
=
;
y
y
−e−iπ K + eiπ K e−iπy
A questo punto, per determinare r è necessario effettuare una misura sui qubit del registro
input. La probabilità di osservare un valore y è data da
Prob|ψ4 i {y} = |hy |ψ4 i |
2
1 2πi x0 z 2
=
e N |αK,r(z)|2
KN
1 1 sin2 πy
=
,
r K 2 sin2 π Ky
dove abbiamo calcolato
N −1
1 X 2πi x0 z
e N αK,r(z)hy |zi
hy |ψ4 i = √
KN xz0
x0 z
1
= √
e2πi N αK,r(z) .
NK
Analizzando la funzione, definita sugli interi, ottenuta dal calcolo della probabilità e
ricordando che |yi è in relazione con y ∈ {0, 1}n (quindi y ≤ N − 1), otteniamo
Probψ4 {y} =

1
r
0
se y = jK
se y 6= jK.
con j ≤ r − 1, j ∈ N,
e quindi i valori osservabili sono y = j Nr .
Figura 5.3. Grafico della funzione ottenuta in (5.4) con r = 3 e K = 8.
Ottenuto y dalla misura e conosciuto N abbiamo
j
y
= .
N
r
49
(5.4)
Da (5.4) è possibile estrarre i valori di j e r, utilizzando il metodo classico delle frazioni
y
N
continue. Quest’ultimo ci fornisce il rapporto
riducibile rjkk , quindi MCD(jk , rk ) = 1.
=
j
r
nella forma di una frazione ir-
Il metodo delle frazioni continue
Lo scopo di questo metodo è descrivere numeri reali unicamente in termini di interi,
utilizzando espressioni della forma
[a0 , ...am ] ≡ a0 +
1
a1 +
1
a2 +
1
...+ a1
m
dove a0 , ..., am sono numeri interi positivi.
L’algoritmo delle frazioni continue è un metodo utilizzato per determinare la frazione
continua di un numero arbitrario reale. Si può facilmente capire il procedimento con
un esempio: scriviamo 31/13 come una frazione continua. Il primo passo è decomporre
31/13 nella sua parte intera e quella razionale e invertire quest’ultima, ottenendo
31
5
1
= 2.3846... = 2 +
= 2 + 13 .
13
13
5
Questo procedimento - decomposizione e inversione - vengono ora applicati a 13/5 =
2.6, dando
1
1
31
=2+
.
3 = 2+
13
2+ 5
2 + 15
3
ora decomponiamo e invertiamo 5/3 = 1.6666̄, ottenendo
1
31
1
=2+
.
=2+
1
13
2 + 1+ 2
2 + 1+1 1
2
3
3
La decomposizione è ora terminata, dato che
3
2
=1+
1
2
può essere scritto con un 1 al
numeratore senza dover essere invertito, dando come frazione continua finale di
2+
1
2+
1
31
13
.
1+ 1 1
1+ 2
Notiamo facilmente che l’algoritmo delle frazioni continue termina dopo un numero
finito di ’decomposizioni e inversioni’ per ogni numero razionale, dato che i numeratori
(nel nostro esempio 31, 5, 3, 2, 1) decrescono strettamente.
50
Ora, se j e r sono comprimi, ossia MCD(j, r) = 1, si ottiene direttamente r = rk . Calcoliamo quindi la probabilità per cui si ottiene questo risultato.
Dalla teoria dei numeri sappiamo che il numero di primi inferiori ad r è dato da
♯{primi ≤ r} ≈
r
,
ln r
otteniamo quindi (j ≤ r − 1)
Prob{MCD(j, r) = 1} ≥ Prob{j primo} =
1
1
1
♯{primi ≤ r}
≈
≥ N=
,
r
ln r
ln
ln 2 log2 N
ricordando che r < N ⇔ ln r < ln N.
Ripetendo l’algoritmo di ricerca del priodo di r un numero di volte dell’ordine O(log2 N
otteniamo, nella misura di y, un valore di j coprimo con r con una probabilità prossima a
1. Dall’espressione in frazioni continue dei valori conosciuti Ny si ottiene r. È ora spiegato
perché l’algoritmo trattato è di tipo probabilistico.
Per verificare se r è effetivamente il periodo, calcoliamo classicamente f (x) e f (x + r)
e compariamo i risultati. Osserviamo che il valore di r può solo essere minore o uguale
al periodo, in caso contrario avremmo infatti f (x) 6= f (x + r), il che sta chiaramente in
contrasto con la definizione del periodo di una funzione.
Abbiamo cosı̀ trovato un algoritmo quantistico capace di determinare la periodicità di una
funzione in un totale di O(n4 ) operazioni, suddivise nel modo seguente (ricordiamo che
N = 2n ):
• O(n) operazioni per il parallelismo quantistico (incluso H ⊗n ),
• O(n2 ) operazioni per la quantum Fourier transform,
• O(n) operazioni per la ripetizione probabilistica della misura del registro input.
Classicamente per determinare il periodo di una funzione è necessario un numero di operazioni dell’ordine O(2n ), questo per il semplice fatto che per determinare due valori
uguali di f sono necessari O(2n ) tentativi. Possiamo quindi concludere che l’algoritmo
quantistico velocizza drasticamente il processo, passando da un ordine esponenziale ad
uno polinomiale.
Esempio: fattorizzazione di 39
Procediamo ora ad illustrare un esempio concreto di come lavora l’algoritmo di Shor.
Ammettiamo di voler fattorizzare il numero 39 (quindi N = 39) e scegliamo a = 5 che è
51
coprimo a N. Calcoliamo la funzione f (x) = 5x mod 39, otteniamo:
f (0) = 50 mod 39 = 1
f (1) = 51 mod 39 = 5
f (2) = 52 mod 39 = 25
f (3) = 53 mod 39 = 8
f (4) = 54 mod 39 = 1
f (5) = 55 mod 39 = 5
...
f (6) = 56 mod 39 = 25
f (7) = 57 mod 39 = 8
f (8) = 58 mod 39 = 1
f (9) = 59 mod 39 = 5
f (10) = 510 mod 39 = 25
Notiamo chiaramente che il periodo r = 4. Calcoliamo ora questo valore con l’algoritmo
di Shor. Per far ciò, poiché N 2 = 392 = 1521, scegliamo n = 10 di modo che 210 = 1024 =
O(N 2 ).
Lo stato iniziale è quindi
|ψ0 i = |0i⊗10 |0i .
Dopo aver applicato la porta di Hadamard abbiamo
1023
|ψ1 i = H
⊗10
|ψi = H
⊗10
|0i
⊗10
1 X
|0i =
|xi |0i ,
32 x=0
in seguito calcoliamo Uf |ψ1 i, che dà
1023
1 X
|ψ2 i = Uf |ψ1 i =
|xi |f (x)i
32 x=0
1%
|0i |1i + |1i |5i + |2i |25i + |3i |8i + |4i |1i + |5i |5i + |6i |25i + . . . .
=
32
Adesso misuriamo lo stato del registro output e otteniamo con uguale probabilità uno dei
risultati 1, 5, 25, 8. In base al risultato della misurazione il registro input è perciò uno
dei seguenti
misura registro output stato registro input (dopo la misurazione)
%
1
1
|Ψ1 i = 16
|0i + |4i + |8i + |12i + |16i + . . .
%
1
|1i + |5i + |9i + |13i + |17i + . . .
5
|Ψ5 i = 16
%
1
25
|Ψ25 i = 16
|2i + |6i + |10i + |14i + |18i + . . .
%
1
|3i + |7i + |11i + |15i + |19i + . . .
8
|Ψ8 i = 16
52
Supponiamo di trovare il valore 1, ci ritroviamo quindi con lo stato |Ψ1 i.
Ora, non rimane che applicare la trasformata di Fourier quantistica UQF T :
1%
UQF T |0i + UQF T |4i + UQF T |8i + UQF T |12i + . . . + UQF T |1020i
16
1023
1023
1023
511
X
X
X
4y
8y
508y
1 1 %X
2πi 1024
2πi 1024
|yi +
e
|yi +
e
|yi + . . . +
e2πi 1024 |yi
=
16 32 y=0
y=0
y=0
y=0
UQF T |Ψ1 i =
1023
=
4y
8y
12y
1020y 1 X%
1 + e2πi 1024 + e2πi 1024 + e2πi 1024 + . . . + e2πi 1024 |yi
512 y=0
1023 255
1023 255
1 X X 2πi 4ky
1 X X 2πi ky
=
e 1024 |yi =
e 256 |yi
512 y=0 k=0
512 y=0 k=0
1 %
256 |0i + 0 |1i + . . . + 256 |256i + . . . + 256 |512i + . . . + 256 |768i + . . .
512
1%
|0i + |256i + |512i + |768i .
=
2
=
Effettuando la stessa operazione sugli altri tre stati ottenibili dopo la misurazione di |ψ2 i,
ovvero |Ψ5 i, |Ψ25 i, |Ψ8 i, il risultato sarebbe lo stesso.
Misurando poi lo stato del sistema, i risultati possibili sono (con uguale probabilità di 14 )
512
0, 256, 512, 768. Supponiamo di ottenere 512. Lo sviluppo in frazione continua di 1024
è
semplicemente
1
1
512
= 0 + ≡ [0, 2] = .
1024
2
2
Abbiamo quindi trovato r = 2, ma sappiamo benissimo che invece r = 4. L’algoritmo
è infatti di tipo probabilistico e finché non otterremo come risultato della misurazione
finale 256 o 768, il periodo risulterà essere sbagliato. In effetti, se utilizziamo r = 2 per
2
2
proseguire attraverso la parte classica, abbiamo 5 2 − 1 = 4 e 5 2 − 1 = 6, il che significa
p = MCD(4, 39) = 1
q = MCD(6, 39) = 3.
Si nota chiaramente che pq = 3 6= 39 e quindi l’esecuzione dell’algoritmo non ha avuto
esito positivo. In questo caso occorre ripetere un’altra volta l’algoritmo.
Ammettiamo che ora, dopo aver eseguito una seconda volta l’algoritmo, ci ritroviamo
53
con la misurazione finale che dà come risultato 768, il cui sviluppo in frazione continua è
768
1
=0+
1024
1+
1
3
3
≡ [0, 1, 3] = .
4
4
Abbiamo r = 4. Visto che 4 non è dispari e 5 2 ± 1 mod 39 6= 0, il criterio di applicabilità
dell’algoritmo è soddisfatto. Non ci resta che calcolare il massimo comun divisore tra
4
4
5 2 − 1 = 24 e 39, nonché tra 5 2 − 1 = 26 e 39. Grazie all’algoritmo di Euclide otteniamo
p = MCD(24, 39) = 3
q = MCD(26, 39) = 13.
Si può ora facilmente notare che pq = 3 · 13 = 39. Abbiamo infine trovato, dopo due
iterazioni dell’algoritmo, lo sviluppo in fattori primi di 39.
54
Capitolo 6
Aspetti sperimentali
6.1
Problemi di realizzabilità
La realizzabilità fisica di dispositivi in grado di effettuare calcolazioni quantistiche è fortemente condizionata da un fenomeno chiamato decoerenza quantistica, ossia l’inevitabile
interazione tra il sistema quantistico e l’ambiente circostante. Questo effetto è paragonabile ad un semplice fenomeno classico: una moneta lanciata su un tavolo assume nel
momento dell’impatto con la superficie uno stato definitivo, testa o croce, annullando
cosı̀ la sovrapposizione presente durante il volo conseguenze all’impatto. Similmente, la
sovrapposizione quantistica viene annullata dall’interscambio con l’ambiente, nel quale
il sistema è necessariamente immerso. Lo stupefacente fenomeno della sovrapposizione
quantistica e del conseguente parallelismo quantistico, che compongono gran parte della
potenzialità del quantum computer, vengono cosı̀ fortemente messi in discussione dalla decoerenza quantistica. D’altra parte, i molti progressi effettuati in quest’ambito inducono
a credere che in qualche modo il problema della decoerenza possa venire superato.
In questa sezione viene fornita qualche informazione riguardo le attuali tecnologie sviluppate nei laboratori attivi in questo campo, per sviluppare dispositivi in grado di funzionare
sui principi della fisica quantistica.
6.2
Confinamento ionico lineare (Trapped Ions)
Nel 1995 Cirac e Zoller hanno realizzato un metodo per realizzare il quantum computer chiamata di confinamento ionica linera, o trapped ions. La tecnologia consiste nel56
l’allineare un gruppo di ioni1 in un’area di confinamento ottenuta con un campo elettromagnetico. Ogni ione rappresenta un qubit, i cui due stati stabili (|0i e |1i) sono dati
dallo stato di riposo e dallo stato d’eccitazione dello ione. I singoli ioni sono allineati
formando una sorta di registro e possono essere irradiati singolarmente da raggi laser di
diverse intensità: questo è possibile in quanto la distanza fra le particelle è molto maggiore
della lunghezza d’onda della luce laser utilizzata.
fasci laser
d’eccitazione
ioni
Figura 6.1. Registro a confinamento ionico lineare (trapped ions)
Gli impulsi cambiano l’eccitazione degli ioni, cambiando quindi lo stato dei qubit, e posizionandoli in uno stato di sovrapposizione
Gli ioni confinati nel registro hanno tutti la
stessa carica, e visto che effettuano l’uno sul-
oppure
nello
stato
opposto.
l’altro una repulsione mutua elettrostatica,
il movimento di ogni ione è trasmesso sugli altri; questo può creare movimenti collettivi detti fononi 2. Con le opportune manipolazioni è possibile creare correlazioni fra
le coppie di particelle e ottenere l’entanglement.
Un notevole passo in avanti è stato fatto Figura 6.2. Questa immagine colorizzata rapcon questo modello, in quanto permette di presenta la fluorescenza di tre ioni di Berilio,
illuminati con un raggio laser UV.
creare bus quantistici delle dimensioni volute.
1
2
Tipicamente si usavano ioni di Berillio Be+
Il fonone è una quasiparticella che descrive un quanto di vibrazione in un reticolo cristallino rigido.
57
L’ostacolo maggiore consiste tutt’ora nel fenomeno della decoerenza: il tempo impiegato
da una particella a ritornare in uno stato stabile è stato misurato in millisecondi. Un
meccanismo per superare il problema della decoerenza, forse il più significativo, prevede
il riscaldamento dei modi dei fononi.
Attenendosi ai risultati sperimentali fin’ora ottenuti, si può prevedere che fra circa 10 anni
sarà possibile realizzare registri a confinamento lineare contenenti qualche decina di ioni.
Figura 6.3. Rappresentazione del sistema a confinamento ionico lineare.
6.3
Risonanza magnetica nucleare (NMR)
Il metodo della risonanza magnetica nucleare utilizza lo spin del nucleo atomico come
corrispondente al qubit, e i cambiamenti di stato vengono provocati da campi magnetici
esterni. Si è riuscito a realizzare con questo sistema delle porte logiche semplici agenti
su un singolo qubit, utilizzando campi prodotti con radiofrequenze, con i quali è possibile
agire sugli spin con buona precisione. Hanno invece creato difficoltà nella realizzazione
le azioni più complesse, dirette ad influenzare molti qubit irraggiandone solo uno, per la
necessità di far interagire i qubit tra di loro.
Il grosso problema in questo sistema consiste nel fatto che il segnale emesso da una singola
molecola è troppo debole per essere rilevato; è quindi necessario ricorrere a molte molecole
per ottenere un segnale utilizzabile. Questa circostanza non crea di per sé alcun problema,
dato che anche grosse quantità di molecole sono facilmente ottenibili. La grossa difficoltà
sta nel preparare tutte le molecole nello stesso stato iniziale. Nel 1997 alcuni ricercatori
58
sono riusciti ad ottenere uno stato puro con una miscela, che consentiva di far partire
il sistema dallo stesso stato. Nonostante ciò, gli studiosi sono abbastanza scettici sulla
possibilità di poter realizzare un computer quantistico basato sul sistema NMR, in quanto
il processo di creazione dello stato puro diventa meno redditizio all’aumentare dal numero
di molecole. Altri problemi segnalati riguardano la difficoltà di agire su qubit singoli in
presenza di molte molecole.
Attualmente si ritiene possibile, in termini temporali accettabili, che si arrivi a realizzare
un computer NMR con non più di 6 qubit. Sebbene un sistema del genere non permetta di sfruttare al completo le potenzialità della computazione quantistica, consentirebbe
tuttavia di risolvere interessanti problemi e sembra più a portata di mano delle altre idee
proposte.
6.4
Spin nucleare basato sulla tecnologia al silicio
Recentemente ideato, questo metodo permette di creare dispositivi per la computazione
quantistica impiegando la tecnologia dello stato solido, già utilizzata con enorme successo
nella tecnologia di produzione elettronica. L’idea consiste nell’integrare gli spin nucleari
in un dispositivo elettronico e rilevarli con opportune tecniche di controllo. Gli spin elettronici e nucleari sono accoppiati mediante l’interazione iperfine3 . Avendo le condizioni
adatte, è possibile effettuare un trasferimento di polarizzazione tra due spin, il ché permetterebbe di rilevare lo spin nucleare attraverso i suoi effetti elettronici sul campione.
Attualmente si lavora sulla proposta che prevede l’utilizzo di Silicio Si come host e fosforo
P come donor. L’informazione dei qubit verrebbe codificata negli spin nucleari degli
atomi donor, posti in dispositivi al silicio opportunamente preparati. Applicando campi
31
elettrici esterni sarebbe possibile effettuare operazioni logiche sugli spin e le misurazioni
verrebbero eseguite usando correnti di elettroni polarizzati di spin. La caratteristica vincente di questo sistema è però il fatto che riesca ad impedire il fenomeno decoerenza dei
qubit: infatti questi ultimi sono ben isolati dal sistema e quindi privati di ogni grado
di libertà che potrebbe provocare il fenomeno. Inoltre, a concentrazioni sufficientemente
basse e alla temperatura di 1.5 K, il tempo di rilassamento degli spin elettronici ammonta
a migliaia di secondi e il tempo di rilassamento dello spin nucleare del 31 P è dell’ordine
dei 1018 s, entrambi ottimi valori per la computazione quantistica.
La possibilità di sfruttare le enormi conoscenze tecnologiche acquisiste durante la fabbricazione di dispositivi elettronici allo stato solido, ha indotto i ricercatori a credere che la
3
L’accoppiamento iperfine è l’interazione magnetica debole tra elettroni e nucleo.
59
realizzazione di computer quantistici basati sulla tecnologia al silicio sia un’ottima sfida
da affrontare. L’intento è di riuscire a ridurre ulteriormente le dimensioni in modo da
raggiungere livelli di complessità maggiori.
6.5
6.5.1
Esperimenti e realizzazioni
Orion
Nel 2006 la ditta canadese D-Wave ha realizzato quello che loro chiamano il primo ’computer quantistico commerciale’. Il prototipo, che utilizza un sistema quantistico a 16 qubit
è stato testato al Computer History Museum a Mountain View, in California [1].
Il nuovo computer chiamato Orion può risolvere una classe di problemi molto particolare.
Durante la dimostrazione pratica (che è avvenuta a distanza, perché la D-Wave sosteneva
che Orion era troppo delicato da trasportare) ha risolto i seguenti tre problemi:
• trovare delle strutture molecolari che coincidono con quella della caffeina,
• creare la disposizione dei posti a sedere di un matrimonio,
• completare alcuni puzzle Sudoku.
Molti scienziati sono ancora scettici su
quanto dimostrato dalla D-Wave, infatti la
ditta stessa ha ammesso di non essere completamente sicura che Orion esegua calcolazioni quantistiche. La D-Wave ha costruito il computer quantistico basandosi su
un’elettronica di superconduzione che è in
grado di proteggere gli stati quantistici dall’ambiente esterno, in modo che questi posFigura 6.4. Il chip del computer quantistico Orion,
sano esistere anche in uno stato entangled. sviluppato dalla D-Wave.
I due superconduttori utilizzati per costruire Orion sono di alluminio e niobio4 . A temperatura ambiente questi materiali sono
metalli, ma se raffreddati a temperature prossime allo zero assoluto, gli elettroni in essi
si accopiano, formando particelle chiamate coppie di Cooper. Queste particelle portano
carica elettrica nei superconduttori.
4
Lo niobio (numero atomico 41) è un metallo di trasizione raro, tenero, duttile di colore grigio. Viene
principalmente impiegato nella produzione di lege metalliche speciali e in saldature ad elevata resistenza.
60
Figura 6.5. Il nuovo computer quantistico ’Orion’, sviluppato dalla D-wave.
La D-Wave afferma che il computer quantistico non è destinato a sostituire gli attuali sistemi classici, bensı̀ a potenziarli. La computazione quantistica servirà a risolvere i problemi
cosidetti NP-Completi, ossia problemi che a causa dell’enorme ammontare di dati e variabili non sono risolvibili da un computer classico in tempi ragionevoli. Problemi di questo
tipo esistono in molti ambiti, come le scienze naturali, biometria, logistica, matematica
finanziaria. I computer quantistici dovrebbero essere in grado di fornire risposte precise
a domande a cui oggi possono essere date risposte solo in termini molto generali.
6.5.2
Nucleo atomico usato come memoria quantistica
Nel 2008 un team internazionale di ricercatori ha scoperto un metodo per miniaturizzare
la memoria di un computer che consiste nel salvare l’informazione all’interno di un atomo. La scoperta potrebbe essere un progresso fondamentale nello sviluppo del computer
quantistico [2].
Il problema affrontato è sempre quello della decoerenza: come isolare un qubit dall’ambiente esterno per proteggere la delicata informazione quantistica, e allo stesso tempo
permetterli di interagire con il mondo esterno in modo che possa essere manipolato e
misurato?
Il gruppo, di cui fanno parte anche scienziati di Oxford, Princeton e Lawrence Berkeley National Laboratory, sembra aver trovato una soluzione a tale problema, concependo
un sistema ibrido che utilizza sia gli elettroni sia il nucleo di un atomo di fosforo inserito
61
in un cristallo di silicio. Ognuno di essi si comporta come un piccolo magnete quantistico
capace di salvare informazioni, ma all’interno del cristallo l’elettrone è oltre un milione di
volte più grande del nucleo, con un campo magnetico mille volte più forte. Questo rende
l’elettrone adatto per la manipolazione e per le misurazioni, ma non ideale per salvare
l’informazione, che potrebbe corrompersi rapidamente. Entra quindi in gioco il nucleo:
quando i dati sono pronti per essere salvati vengono spostati nel nucleo, dove possono
sopravvivere per tempi molto più lunghi.
L’elettrone funge da intermediatore fra il nucleo e il mondo esterno, e permette elevate velocità di esecuzione dei
processi, che combinate con la memorizzazione a lungo
termine possibile all’interno del nucleo, forma il sistema
ibrido vincente. Per fare un’analogia con i computer
tradizionali, l’elettrone può esser visto come il processore (la CPU) dove possono venir effettuate le calcolazioni quantistiche, mentre l’atomo è paragonabile all’hard disc, dove possono venir salvati i risultati delle
misurazioni, in modo sicuro.
Fondamentalmente, l’informazione salvata nel nucleo ha
Figura 6.6. Il nuovo sistema ibrido.
una durata di vita media di 1.75 secondi, ma essa può essere allungata ad un tempo
qualsiasi impiegando tecniche di correzione dell’errore, già esistenti. Il risultato ottenuto
in questo esperimento eccede notevolmente i tempi misurati in precedenza: senza questa
tecnica si riuscı̀ a conservare dell’informazione quantistica solo per alcuni centesimi di
secondo [3].
Gli esperimenti con il sistema ibrido sono stati realizzati utilizzando silicio arricchito dall’isotopo 28 Si, minuziosamente preparato in grandi cristalli dai ricercatori di Berkeley, conservando il materiale in uno stato assolutamente puro e lontano da sostanze contaminanti.
Sebbene siano studiate numerose tecniche per costruire un computer quantistico, un
grande vantaggi di questo modello è il fatto che sia basato sulla tecnologia al silicio,
il che lo rende più compatibile con i computer odierni.
6.5.3
Purificazione dell’entanglement
Nell’ottobre del 2006 alcuni fisici del Commerce Department’s National Institute of Standards and Technology (NIST) hanno ottenuto un risultato straordinario, riuscendo a
62
creare uno stato entangled illuminando gli atomi con degli impulsi laser ultravioletti [4].
In particolare, hanno sviluppato un metodo (chiamato purificazione) per migliorare la
coppia di atomi entangled, di modo che questa possa esser meglio utilizzata per la computazione quantistica.
Il lavoro svolto al NIST ha permesso per la prima volta di creare uno stato entangled
di una coppia di atomi e in seguito purificarli; in precedenza questo processo era stato
svolto unicamente su dei fotoni5 . La dimostrazione effettuata al NIST è stata anche la
prima volta in cui gli scienziati sono riusciti a purificare delle particelle in modo non distruttivo. Una misurazione diretta distruggerebbe il delicato stato entangled delle coppie
di atomi; il nuovo esperimento risolve questo problema creando due coppie di atomi entangled e misurandone solo una.
L’entanglement è quella proprietà fisica molto
particolare che combina la condizione e il comportamento di due o più particelle, come atomi o
fotoni. Sebbene l’entanglement può crearsi solo
se le due particelle sono in prossimità, esso può
persistere anche se queste sono allontanate l’una dall’altra. La qualità dell’entaglement può
venir degradata da molteplici fattori legati all’ambiente, come dei campi magnetici fluttuanti.
Il processo e il trasporto di particelle entangled Figura 6.7. Il processo di purificazione del
deve quindi esser strettamente controllato nelle NIST involve l’illuminazione di due coppie di
atomi di berillio con degli impulsi laser UV.
applicazioni tecnologiche. Il processo di purificazione messo in pratica al NIST può rimuovere ogni forma di distorsione o disturbo
indipendetemente dalla sorgente, semplicemente processando due o più coppie entangled
impure, ottenendo una coppia di purità maggiore.
Il team del NIST ha utilizzato fasci laser ultravioletti per creare uno stato entangled di
due coppie di ioni di berillio in un sistema a confinamento ionico elettromagnetico. Un
processo simile viene utilizzato per intrecciare le coppie entangled, ossia intrecciare ogni
membro della prima coppia con il suo corrispondente nella seconda coppia. Sucessivamente la prima coppia di ioni viene misurata e i risultati vengono utilizzati per vedere se
la seconda coppia (non misurata, quindi intatta) è in uno stato entangled maggiormente
puro. Dei test aggiuntivi vengono effettuati per verificare se la qualità dell’entanglement
5
I fotoni sono le particelle della luce.
63
è effettivamente migliorata.
La percentuale di successo (un successo solo parziale, dato che lo stato entangled non
è ancora sufficientemente puro per esser utilizzato in un computer quantistico) registrata
è superiore al 33%, che comparata con il 0.0001% degli esperimenti con i fotoni, risulta
notevolmente alta. Teoricamente, il processo sviluppato al NIST potrebbe esser migliorato e poi ripetuto tante volte in modo da creare una serie di coppie quasi perfettamente
entangled, le quali potrebbero poi a sua volta venir utilizzate per effetuare calcolazioni
quantistiche.
Le ricerche del team del NIST hanno lo scopo di continuare ad affinare il processo di
purificazione, ad esempio con un migliore controllo dei campi magnetici e delle intensità
dei raggi laser UV.
64
Appendice A
Il teletrasporto
La tecnica del teletrasporto quantistico è stata
scoperta nel 1993. Essa permette, grazie alle
proprietà degli stati entangled, di trasportare
uno stato quantistico sfruttando solo l’informazione classica. Più precisamente permette di
ricreare, in un altro luogo, uno stato quantistico
che si trova a chilometri di distanza, perdendo
però quello stesso stato che possedeva il primo
sistema. La sua validità è stata confermata a livello sperimentale, ottenendo un risultato imporFigura A.1. Un’illustrazione del teletrasporto.
tante nel 2003, quando all’università di Ginevra
venne effettuato il teletrasporto di un qubit tra due laboratori posti a 55 metri di distanza
e utilizzando un canale di telecomunicazione di 2 chilometri.
La situazione classica per spiegare l’utilità del teletrasporto è quella in cui una persona
che chiameremo Alice deve far conoscere lo stato di un qubit ad un’altra persona che
chiameremo Bob e che si trova ad una certa distanza da Alice. Ella non può conoscere lo
stato del qubit poiché effettuando una misurazione lo stato andrebbe perso, collassando
nel valore |0i o |1i. Inoltre non le è possibile neppure farne una copia, visto il teorema del
no-cloning, e può inviare a Bob solo informazione classica. Sembrerebbe quindi impossibile trasmettere il qubit a Bob.
L’ipotesi, per il funzionamente del teletrasporto, è che sia Alice sia Bob possiedano un
66
qubit di una coppia di uno stato entangled generata in precedenza.
Lo stato del qubit da teletrasportare è |φi = α |0i + β |1i, le cui ampiezze α e β non sono
conosciute ne da Alice ne da Bob.
Analizziamo ora il funzionamento del circuito per il teletrasporto quantistico, visibile
nella figura (A.2). Lo stato di input è:
i
1 h
|ψi = |φi |β00 i = √ α |0i (|00i + |11i) + β |1i (|00i + |11i)
2
√
Lo stato β00 ≡ (|00i + |11i)/ 2 occupa il secondo qubit di Alice e il qubit di Bob. Alice
applica adesso la porta cNot ai suoi due qubit e lo stato che si ottiene è
i
1 h
|ψ ′ i = √ α |0i (|00i + |11i) + β |1i (|10i + |01i)
2
Si applica quindi Hadamard al qubit |φi, ottenendo
|ψ ′′ i =
i
1h
α(|0i + |1i)(|00i + |11i) + β(|0i − |1i)(|10i + |01i)
2
che, come si noterà sviluppando, si può scrivere in modo equivalente cosı̀:
i
1h
|00i (α |0i + β |1i) + |01i (α |1i + β |0i) + |10i (α |0i − β |1i) + |11i (α |1i − β |0i)
|ψ i =
2
′′
Ora Alice misura i suoi due qubits ottenendo una delle seguenti coppie di bits mn:
00 01 10 11
Causa la misurazione di Alice, anche il qubit di Bob, poiché legato alla coppia dello stato
entangled, collasserà nello stato corrispondente al risultato della misurazione, cioè:
00 −→ α |0i + β |1i
01 −→ α |1i + β |0i
10 −→ α |0i − β |1i
11 −→ α |1i − β |0i
Come possiamo notare lo stato di Bob contiene, anche dopo la misurazione, lo stato del
qubit iniziale di Alice. Alice comunica quindi i due qubit mn a Bob attraverso un canale
classico. Bob può cosı̀ ricostruire, partendo dallo stato ottenuto grazie alla misurazione di
Alice lo stato del qubit |Φi. Per far ciò, gli basta applicare la parte restante del circuito,
67
ovvero le porte X n e Z m . Il numero di potenza sta ad indicare se la porta deve essere
applicata (quando è 1) o no (quando è 0). Se, per esempio, Bob ricevesse da Alice il valore
10, dovrebbe far passare il suo stato solo attraverso una porta logica X. Infatti:
X(α |0i − β |1i) = α |0i + β |1i = |Φi
ed otterrebbe cosı̀ lo stato iniziale di Alice.
|Φi
•
|β00 iA
H
NM
NM
Xn
|β00 iB
Zm
Figura A.2. Circuito per il teletrasporto quantistico.
68
|Φi
Bibliografia
[1] http://thefutureofthings.com/.
[2] http://www.ox.ac.uk/.
[3] http://www.redorbit.com/.
[4] http://www.nist.gov/.
[5] http://tph.tuwien.ac.at/ oemer/doc/quprog/node18.html.
[6] http://wikipedia.org/.
[7] Michel Le Bellac. Introduction à l’information quantique. Belin.
[8] Christian Ferrari e Matteo Nota. Alcuni concetti di algebra lineare. Liceo Locarno,
2008.
[9] Christian Ferrari. Fisica quantistica: un approccio moderno. Liceo Locarno, 2008.
[10] Christian Ferrari. Un po’ di teoria dei numeri. Liceo Locarno, 2008.
[11] Michael A. Nielsen and Isaac L. Chuang. Quantum Computation and Quantum
Information. Cambridge University Press.
[12] Allessandra Di Pierro. appunti delle lezioni di quantum computing. Università di
Bologna, 2005.
70

Documenti analoghi

Il computer quantistico

Il computer quantistico implementazione di un algoritmo con resistenza agli errori  'benchmark': c.q. più complesso di una simulazione classica  sistema con 50 qubit

Dettagli

Quantum Simulators

Quantum Simulators parte, quella corrispondente a 0, manda il messaggio “fa questo”, mentre l’altra parte, quella corrispondente a 1, ordina “fa quello”. Come può il computer quantistico decidere il da farsi? Non d...

Dettagli