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