Kvantni algoritmi -...

12
UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Fizika – 2. stopnja, smer Matematična fizika Filip Kozarski Kvantni algoritmi Seminar I a Mentor: izred. prof. dr. Marko Žnidarič Povzetek V seminarju je predstavljeno teoretično delovanje kvantnega računalnika in osnovne lastnosti kvantnih algoritmov. Podrobneje sta opisana Bernstein-Vaziranijev in Groverjev algoritem, oba primerjamo s klasičnima analogoma. Opisana je tudi kvantna Fourierova transformacija. Primerjamo jo z običajno diskretno Fourierovo transformacijo in pokažemo, da je slednja eksponentno počasnejša od kvantne. Predstavljen je tudi eden od možnih načinov za simulacijo enodelčnega kvantnomehanskega problema s pomočjo kvantnega računalnika. Ključne besede: kvantni računalnik, algoritmi in simulacije; kvantna Fourierova trans- formacija; Bernstein-Vaziranijev algoritem; Groverjev algoritem.

Transcript of Kvantni algoritmi -...

Page 1: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

UNIVERZA V LJUBLJANIFAKULTETA ZA MATEMATIKO IN FIZIKO

Fizika – 2. stopnja, smer Matematična fizika

Filip Kozarski

Kvantni algoritmi

Seminar Ia

Mentor: izred. prof. dr. Marko Žnidarič

Povzetek

V seminarju je predstavljeno teoretično delovanje kvantnega računalnika in osnovne lastnostikvantnih algoritmov. Podrobneje sta opisana Bernstein-Vaziranijev in Groverjev algoritem,oba primerjamo s klasičnima analogoma. Opisana je tudi kvantna Fourierova transformacija.Primerjamo jo z običajno diskretno Fourierovo transformacijo in pokažemo, da je slednjaeksponentno počasnejša od kvantne. Predstavljen je tudi eden od možnih načinov zasimulacijo enodelčnega kvantnomehanskega problema s pomočjo kvantnega računalnika.

Ključne besede: kvantni računalnik, algoritmi in simulacije; kvantna Fourierova trans-formacija; Bernstein-Vaziranijev algoritem; Groverjev algoritem.

Page 2: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

Kazalo1 Uvod 2

2 Delovanje kvantnega računalnika 3

3 Bernstein-Vaziranijev algoritem 4

4 Groverjev algoritem 6

5 Kvantna Fourierova transformacija 9

6 Simulacije enodelčnih kvantnih problemov 11

7 Zaključek 11

1 UvodKvantni računalnik je računalnik, ki za izračune uporablja kvantno mehaniko, na primer

superpozicijo, interferenco in kvantno prepletenost [1]. S pomočjo teh pojavov lahkonekatere probleme rešimo mnogo hitreje, kot bi jih rešili s klasičnim računalnikom. Medobema vrstama računalnikov ni razlike v tem, katere probleme znamo rešiti z enim aliz drugim. Razlika je le v časovni (lahko tudi prostorski) ekonomičnosti računanja. Aizboljšava pri prehodu s klasičnega na kvantni način računanja ni zagotovljena, še manj pasamoumevna. Za pospešitev reševanja potrebujemo posebej prirejene algoritme, ki znajoizkoristiti prednosti kvantne mehanike. Rečemo jim kvantni algoritmi, s čimer v ožjemsmislu označimo le tiste, ki imajo časovno (ali prostorsko) zahtevnost strogo manjšo odustreznega klasičnega analoga. Taki algoritmi so redki in v splošnem ne obstaja postopek,s katerim bi poljuben klasični algoritem prepisali v strogo hitrejši kvantni algoritem.

Prve ideje o kvantnih računalnikih so se pojavile v osemdesetih letih 20. stoletja.Nekateri rezultati kvantne informacijske teorije so bili znani tudi že prej, v sedemdesetihletih. Področje je prvi populariziral Richard Feynman, ki je leta 1981 predlagal [2], da bikvantni računalnik uporabili za simulacije kvantnih sistemov, ki jih ne moremo učinkovitomodelirati s klasičnim računalnikom [3]. Raziskovalcem do zdaj še ni uspelo narediti dovoljvelikega kvantnega računalnika, ki bi bil boljši od običajnih računalnikov. Čeprav ni znanihteoretičnih omejitev, je pri konstrukciji več problemov, ki nam zaenkrat onemogočajoimplementacijo. S temi problemi se ne bomo ukvarjali in se bomo osredotočili zgolj nateoretično plat. Teorija se je razvijala hitreje kot eksperimentalne implementacije, zaprelomnico teoretičnih rezultatov pa lahko štejemo Shorov algoritem iz leta 1994 [4], skaterim lahko v polinomskem času razstavimo dano število na prafaktorje. To predstavljaeksponentno izboljšavo v primerjavi s klasičnimi algoritmi in utegne celo ogroziti varnostRSA šifriranja, zaradi česar je imelo velik vpliv na popularizacijo kvantnega računalništva.

V seminarju se najprej posvetimo osnovnim principom delovanja kvantnega računalnikain nato nadaljujemo z opisom dveh konkretnih algoritmov, Bernstein-Vaziranijevega inGroverjevega algoritma. Potem pokažemo, zakaj je kvantna Fourierova transformacijaeksponentno hitrejša od običajne, in jo uporabimo pri predlogu za simulacijo enodelčnihkvantnih problemov.

2

Page 3: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

2 Delovanje kvantnega računalnikaZasnova kvantnega računalnika je do neke mere podobna klasičnemu [5]. Pri slednjem

informacije v spominu hranimo v bitih, ki imajo lahko vrednosti 0 ali 1. V kvantnemračunalniku bit nadomešča kubit, njegovo stanje je lahko superpozicija klasičnih vrednosti.V Diracovi pisavi to zapišemo kot α0 |0〉+ α1 |1〉, kjer sta α0 in α1 kompleksni števili, zakateri velja |α0|2 + |α1|2 = 1. Stanje lahko predstavimo tudi na Blochovi sferi. Najboljnaravna implementacija kubita je zato delec s spinom 1

2 , ki ima ob meritvi (z komponentespina) lastni stanji |↓〉 ≡ |0〉 in |↑〉 ≡ |1〉. Z višjimi spini bi opisali spomin, ki ima večlastnih stanj. Z delci s spinom 1 bi na primer posplošili klasičen trojiški zapis.

Za računanje potrebujemo več kubitov, njihovo število označimo z N . Za te kubitezahtevamo neodvisnost in zato skupno valovno funkcijo dobimo kot tenzorski produkt.Kubite αk0 |0〉+ αk1 |1〉 za k = 1, . . . , N v skupno stanje |ψ〉 zapišemo kot

|ψ〉 =N⊗k=1

(αk0 |0〉+ αk1 |1〉) =∑

i∈1,...,Nxi∈0,1

αx1···xN |x1 · · ·xN 〉 =∑

x∈0,1N

αx |x〉 , (1)

kjer je αx1···xN = α1x1 · · ·α

NxN

in x teče po vseh 2N konfiguracijah indeksov x1, . . . , xN .V osnovnem primeru N = 2 imamo |ψ〉 = α00 |00〉 + α01 |01〉 + α10 |10〉 + α11 |11〉. Zaopis stanja N kubitov potrebujemo kar 2N − 1 kompleksnih števil1! Stanje kvantnegaračunalnika je lahko poljubna superpozicija 2N baznih stanj. V nasprotju s tem se Nklasičnih bitov nahaja v natanko enem od 2N stanj |x1 · · ·xN 〉. A eksponentna rastkvantnega konfiguracijskega prostora nas ne sme zavesti, da bi sklepali o avtomatičnieksponentni računski izboljšavi v primerjavi z običajnim računalnikom. Račun kvantnegaračunalnika namreč končamo z meritvijo končnega stanja, ki se ob kolapsu valovne funkcijepostavi le v enega od baznih stanj. Tako z meritvijo lahko pridobimo le podatek o Nštevilih. To pa je enako kot za klasičen računalnik z N biti! Če bi želeli iz končnega stanjaizluščiti koeficiente αx1···xN , bi morali v principu izvesti neskončno meritev, kar sevedane pride v poštev. Moč kvantnega računanja moramo zato izkoristiti še pred zaključnomeritvijo, če želimo v primerjavi s klasičnim računanjem kaj pridobiti.

Kot rečeno, račun zaključimo z neko meritvijo, in sicer enega ali več kubitov. Ker obtem valovna funkcija skolapsira in se projicira na ustrezen podprostor, s tem nepovratnoposežemo v sam potek računanja. Temu se med delovanjem računalnika izogibamo in kubitetransformiramo zgolj z unitarnimi preslikavami. Prav tako želimo, da med računanjemne prihaja do dekoherence. Ta je posledica sklopitve kvantnih stanj z okolico in lahkopreprečuje, da bi bila superpozicija stabilna dovolj dolgo, da bi izvedli račun. Stanja kubitovtako zaradi motenj iz okolice ne moremo imeti povsem pod kontrolo. Dekoherenca jetrenutno v praksi najbolj restriktivna težava, ki nam preprečuje konstrukcijo računalnikovz večjim številom kubitov.

Vrnimo se k poteku računanja. Začnemo z nekim znanim začetnim stanjem našihkubitov, ki ga potem spreminjamo z unitarnimi transformacijami U . Ta postopek jeobrnljiv, saj za unitarne preslikave velja U †U = I. Ker je število kubitov N končno, lahkotransformacije U zapišemo z matrikami v običajni bazi, |x1 · · ·xN 〉. Ker imamo opravkaz računalnikom, tem transformacijam pravimo tudi kvantna (logična) vrata. Preprostavrata, ki delujejo na enem samem kubitu, so fazna vrata, ki delujejo z matriko

Rδ =[1 00 eiδ

], (2)

1Odšteli smo en kompleksen parameter. En realen parameter je poljuben, ker globalna faza stanja |ψ〉ni pomembna, en realen parameter pa je določen z normalizacijo.

3

Page 4: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

stanje α0 |0〉+ α1 |1〉 preslikajo v α0 |0〉+ α1eiδ |1〉. Za našo uporabo pa bodo najpomemb-

nejša Hadamardova vrata [1]. Za N = 1 je matrika enaka

H1 = H = 1√2

[1 11 −1

]. (3)

Stanje |0〉 se preslika v |+〉 ≡ 1√2 |0〉+

1√2 |1〉, stanje |1〉 pa v |−〉 ≡ 1√

2 |0〉−1√2 |1〉. Operator

H1 lahko zapišemo tudi z vsoto, H1 = 1√2∑1x,y=0 ((−1)xy |x〉 〈y|). V taki obliki ga lažje

posplošimo na N kubitov, kar bomo kasneje potrebovali v algoritmih. S tenzorskimproduktom za Hadamardova vrata na N kubitih dobimo

HN ≡ H⊗N =

1√2

1∑x,y=0

(−1)xy |x〉 〈y|

⊗N = 1√2N

∑x,y∈0,1N

(−1)x·y |x〉 〈y| ,

kjer je s piko označen skalarni produkt, x · y = x1y1 + · · ·+ xNyN mod 2. Na nekem |y〉potem HN deluje kot

HN |y〉 = 1√2N

∑x∈0,1N

(−1)x·y |x〉 . (4)

Pomembna in uporabna lastnost Hadamardovega operatorja je, da je sam svoj inverz. Topreverimo z računom,

HN (HN |y〉) = 1√2N

∑x∈0,1N

(−1)x·yHN |x〉 = 12N

∑x,w∈0,1N

(−1)x·y(−1)w·x |w〉

= 12N

∑x,t∈0,1N

(−1)x·t |−y + t〉 = 12N

∑t∈0,1N

∑x∈0,1N

(−1)x·t

|y + t〉 .

Pri tem vektorje iz 0, 1N seštevamo po modulu 2. Pri tretjem enačaju smo uvedlispremenljivko t = w + y, pri zadnjem enačaju pa smo upoštevali še y = −y, kar pri takemseštevanju seveda velja. Izračunajmo še vrednosti koeficientov qt =

∑x∈0,1N (−1)x·t. Za

t = 0 je jasno∑

x∈0,1N 1 = 2N . Za t 6= 0 pa obstaja neki e ∈ 0, 1N , da je e · t = 1, sajje neka komponenta t neničelna.

qt =∑

x∈0,1N

(−1)x·t = 12

∑x∈0,1N

(−1)x·t +∑

x+e∈0,1N

(−1)(x+e)·t

= 1

2∑

x∈0,1N

((−1)x·t + (−1)(x+e)·t

)= 1

2∑

x∈0,1N

((−1)x·t − (−1)x·t

)= 0,

torej HN (HN |y〉) = 12N 2N |y + 0〉 = |y〉, kar smo želeli pokazati. Povedano drugače, s HN

si lahko pomagamo, da iz izraza oblike 1√2N

∑x∈0,1N

(−1)x·y |x〉 izluščimo |y〉. To nam bo

prišlo prav pri naslednjem algoritmu.

3 Bernstein-Vaziranijev algoritemKot prvi preprost primer kvantnega algoritma si poglejmo Bernstein-Vaziranijev algo-

ritem [6]. Ta reši problem „črne škatle“, ki vhodni podatek x ∈ 0, 1n skalarno zmnožiz nekim določenim, a neznanim vektorjem u ∈ 0, 1n. Škatlo lahko razumemo tudi kot

4

Page 5: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

funkcijo f : 0, 1n → 0, 1, ki slika x v f(x) = x · u = x1u1 + · · · + xnun mod 2. Priproblemu želimo poiskati u. Za osnovno delovanje algoritma v principu potrebujemo leN = n kubitov, a to pri dejanski uporabi seveda ne bo zadoščalo. Za delovanje sistema inuporabo kvantnih vrat potrebujemo dodatne kubite. Ker bo v praksi potrebno poskrbetitudi za odpravljanje napak [7], bomo za pravilno delovanje potrebovali več kubitov, N > n.S tem se v seminarju ne bomo ukvarjali in za število kubitov vzemimo kar N = n.

Najprej razmislimo, kakšna je zahtevnost klasičnega algoritma. Zanima nas, kolikokratmoramo izračunati vrednost funkcije f , oziroma kolikokrat moramo uporabiti črno škatlo.Funkcija f vrne skalar, ki je 0 ali 1, in z vsakim klicem funkcije zato pridobimo največ 1bit informacije. Ker je u sestavljen iz N bitov, moramo funkcijo f poklicati vsaj N -krat.Hitro se prepričamo, da N klicev zadošča2. Za x lahko namreč izberemo x1 = (1, 0, . . . , 0),x2 = (0, 1, 0, . . . , 0), . . . , xN = (0, . . . , 0, 1), s čimer po vrsti pridobimo vrednosti u1, u2,. . . , uN . Časovna zahtevnost je zato reda O(N). S kvantnim algoritmom pa bomo problemrešili v konstantnem času, O(1), torej neodvisno od dolžine N vektorja u!

Spomnimo se Hadamardovih vrat. Če nam uspe narediti stanje1√2N

∑x∈0,1N

(−1)f(x) |x〉 = 1√2N

∑x∈0,1N

(−1)x·u |x〉 ,

bomo z delovanjem HN dobili stanje |u〉. To stanje potem le še izmerimo3, dobimo |u〉 in stem poznamo rešitev. Preden zapišemo algoritem, povejmo še, kako definiramo seštevanje⊕ znotraj ketov. Stanje |ψ ⊕ χ〉 dobimo tako, da po modulu 2 seštevamo pri zapisu zbaznimi stanji. Če je |ψ〉 = 1√

2(|0〉 − |1〉) in |χ〉 = |1〉, je

|ψ ⊕ χ〉 = 1√2

(|0 + 1〉 − |1 + 1〉) = 1√2

(|1〉 − |0〉),

saj je 1 + 1 = 0 mod 2.Vektorji (v odebeljeni pisavi) so vsi dolžine N in vsi elementi množice 0, 1N .

Algoritem 1: Bernstein-Vaziranijev algoritem, ki v konstantnem času O(1) poiščevektor u ∈ 0, 1N , ki definira funkcijo f(x) = x · u.

Vhodni podatek: Črna škatla, ki sprejme |x〉 ⊗ |ψ〉, kjer ψ ∈ 0, 1, in vrne|x〉 ⊗ |ψ ⊕ f(x)〉, kjer f(x) = x · u. Označimo jo z Uf , je linearna in unitarna.

1. Pripravi začetno stanje, |φ〉 = |0〉 ⊗ |1〉 = |0, . . . , 0〉 ⊗ |1〉.

2. Na stanju deluj s HN+1 = H⊗N ⊗H, |φ〉 = HN+1 |φ〉.

3. Na stanju deluj z Uf , |φ〉 = Uf |φ〉.

4. Na stanju deluj s HN+1 = H⊗N ⊗H, |φ〉 = HN+1 |φ〉.

5. Izmeri in vrni vrednosti prvih N kubitov.

Algoritem res le enkrat uporabi Uf in ima zato konstantno časovno zahtevnost O(1).Preverimo še pravilnost algoritma. Po prvem koraku je |φ〉 = |0〉 ⊗ |1〉 in po uporabiHadamarda v drugem koraku imamo

|φ〉 = 1√2N

∑x∈0,1N

|x〉 ⊗ 1√2

(|0〉 − |1〉) = 1√2N

∑x∈0,1N

|x〉 ⊗ |−〉 .

2Tako kot za rešitev problema z N neznankami potrebujemo vsaj N enačb. Če so te neodvisne, jih Ntudi zadošča.

3Zaključek računa vedno izvedemo z neko meritvijo, saj le tako lahko pridobimo informacijo.

5

Page 6: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

Kaj dobimo, če z Uf delujemo na |x〉 ⊗ |−〉 = 1√2 (|x〉 ⊗ |0〉 − |x〉 ⊗ |1〉)?

Uf |x〉 ⊗ |−〉 = 1√2

(Uf (|x〉 ⊗ |0〉)− Uf (|x〉 ⊗ |1〉))

= 1√2

(|x〉 ⊗ |0 + f(x)〉 − |x〉 ⊗ |1 + f(x)〉)

= 1√2

(−1)f(x) (|x〉 ⊗ |0〉 − |x〉 ⊗ |1〉) = (−1)f(x) |x〉 ⊗ |−〉 ,

kjer smo pri prvem enačaju upoštevali definicijo Uf in seštevanja ⊕, pri drugem pa smostanje zgolj zapisali v ekvivalentni obliki. Ko z Uf v tretjem koraku delujemo na |φ〉, zaradilinearnosti dobimo

|φ〉 = 1√2N

∑x∈0,1N

(−1)f(x) |x〉 ⊗ |−〉 = 1√2N

∑x∈0,1N

(−1)x·u |x〉 ⊗ |−〉 .

S tem je dosežen cilj, ki smo si ga zadali ob prvotni ideji. Z uporabo Hadamardovih vratje naše stanje |φ〉 po četrtem koraku enako |u〉 ⊗ |1〉. Po meritvi prvih N kubitov v petemkoraku dobimo iskani vektor u.

Bernstein-Vaziranijev algoritem je zelo osnoven in od njega si ne obetamo kakšnevelike uporabnosti. Za ogromne N , kjer bi predstavljal bistveno izboljšavo v primerjavis klasičnimi algoritmi, potrebujemo tudi ogromno število kubitov, zato ni nujno, da boalgoritem sploh kdaj prišel v uporabo. Kljub temu pa lepo prikaže, da zaradi superpozicijelahko na neki način simultano računamo vrednosti funkcije f za vse x hkrati, kar bistvenopospeši reševanje problema. A ne pozabimo, da od tega ne bi imeli nikakršne koristi, če nebi s četrtim korakom uspeli informacije transformirati v obliko, primerno za branje oziromameritev.

4 Groverjev algoritemGroverjev algoritem je bil objavljen leta 1996 in je poleg Shorovega najbolj znan

algoritem za kvantni računalnik [8]. Groverjev algoritem je namenjen iskanju elementov vneurejenem seznamu velikosti n. Najprej spet premislimo, kakšna je zahtevnost klasičnegaalgoritma. Ker ne vemo ničesar o položaju iskanega elementa, moramo v najslabšemprimeru pregledati celoten seznam. Časovna zahtevnost je v tem primeru reda O(n).Zahtevnost kvantnega algoritma pa je le O(

√n)!

Za delovanje samega algoritma zadošča N = log2 n kubitov, saj lahko z 2N = 2log2 n = nstanji opišemo vseh n indeksov danega seznama. Kot pri Bernstein-Vaziranijevem algoritmupa bodo tudi tu v praksi potrebni dodatni kubiti za delovanje sistema in korekcijo računskihnapak. Po potrebi seznamu dodamo nekaj praznih mest, da je n potenca števila 2. Baznastanja zdaj oštevilčimo drugače. Označujmo jih z grškimi črkami, ki naj predstavljajoštevila med 0 in n − 1. Tako število v ketu direktno predstavlja indeks v seznamu,pretvorba pa je določena s povezavo med dvojiškim in desetiškim zapisom. Če je κ =k12N−1 + k22N−2 · · ·+ kN20, je |κ〉 ≡ |k〉. Preden zapišemo algoritem, definirajmo še dveunitarni transformaciji, ki jih bomo v algoritmu uporabili kot kvantna vrata [9]. Najprejimejmo funkcijo g : 0, . . . , n− 1 → 0, 1, ki bazno stanje |ω〉 preslika v 1, če je na mestuω v seznamu iskani element, sicer pa vrne 0. A take funkcije ne moremo direktno uporabitipri transformaciji stanj med računanjem, saj preslikava |ω〉 7→ g(ω) ni obrnljiva, kaj šeleunitarna. Kvantna vrata pa morajo biti unitarne transformacije! Zato definiramo preslikavoUω, ki jo na baznih vektorjih definiramo kot

Uω |ϕ〉 =− |ϕ〉 če ϕ = ω

|ϕ〉 če ϕ 6= ω,(5)

6

Page 7: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

ali krajše Uω |ϕ〉 = (−1)g(ϕ) |ϕ〉. Pišemo lahko tudi Uω = I − 2 |ω〉 〈ω|. Ker je U †ω = Uω inU2ω = I−2·2 |ω〉 〈ω|+4 |ω〉 〈ω |ω〉 〈ω| = I, je Uω res unitarna transformacija. Preslikava ima

tudi nazoren geometrijski pomen, in sicer vektorje prezrcali čez ravnino, ki je pravokotna

na |ω〉. Podobno definiramo še Uα = 2 |α〉 〈α| − I, kjer je |α〉 = 1√n

n−1∑χ=0|χ〉 uniformna

superpozicija vseh baznih stanj. Tudi ta ima nazoren geometrijski pomen, in sicer vektorjeprezrcali čez premico, ki jo določa vektor |α〉. Transformaciji Uω in Uα delujeta naN = log2 n kubitov.

Algoritem 2: Groverjev algoritem, ki v času O(√n) poišče iskani element seznama

dolžine n. Potrebujemo O(log2 n) kubitov.Vhodni podatek: Seznam dolžine n in pogoj g za iskani element: g(ϕ) = 1, če insamo če se na mestu z indeksom ϕ nahaja iskani element. Funkcija g je skrita v Uω.Naj bo r tako število, da sin2

((r + 1

2)θ)doseže prvi lokalni maksimum, kjer je

θ = 2 arcsin 1√n.

1. Pripravi začetno stanje, |τ〉 = |α〉 ≡ 1√n

n−1∑χ=0|χ〉.

2. r-krat ponovi:

(a) Deluj z Uω = I − 2 |ω〉 〈ω|, |τ〉 = Uω |τ〉.(b) Deluj z Uα = 2 |α〉 〈α| − I, |τ〉 = Uα |τ〉.

3. Izmeri stanje vseh kubitov. Stanje skolapsira v neko vrednost |Ω〉, preberiΩ.

Z verjetnostjo sin2((r + 1

2)θ)dobimo pravi rezultat. Če je g(Ω) 6= 1, se vrni na

korak 1.

200 400 600 800 1000

5

10

15

20

25

n

r

Slika 1: Vrednosti r, pri katerih je verjetnost za napako pri meritvi najmanjša,so prikazane s stopničasto funkcijo. Gladka funkcija je asimptota π

4√n.

7

Page 8: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

Najprej ocenimo zahtevnost algoritma. Če je n velik, je θ = 2 arcsin 1√n≈ 2√

n. Sinus

doseže prvi maksimum pri vrednosti argumenta π2 , torej (r + 1

2) 2√n≈ π

2 in za velike ndobimo r ≈ π

4√n. V vsaki iteraciji le enkrat uporabimo Uω, ki je ekvivalentna preverjanju,

če smo našli iskani element. Časovna zahtevnost je zato res O(√n). Odvisnost r(n) je

prikazana na sliki 1, kjer vidimo tudi, da je aproksimacija r ≈ π4√n dobra.

Zdaj si poglejmo še, kaj se dogaja v drugem koraku algoritma in ali nas res vodi k rešitviproblema. Stanji |ω〉 in |α〉 sta vektorja v Hilbertovem prostoru H. Nista pravokotna,saj je 〈ω |α〉 = 1√

n. Jasno pa sta linearno neodvisna, zato razpenjata dvodimenzionalni

podprostor, K. Ta je prikazan na sliki 2. Vektor Uα |ω〉 je linearna kombinacija |α〉 in |ω〉,podobno velja za Uω |α〉. Ker je hkrati še Uα |α〉 = |α〉 in Uω |ω〉 = |ω〉, je K invariantenpodprostor za Uα in Uω. Ker začnemo s |τ〉 = |α〉, ostanemo po vsaki iteraciji drugegakoraka v tej isti ravnini, podprostoru K. Geometrijsko gledano je transformacija Uωzrcaljenje čez premico, ki je v ravnini K pravokotna na |ω〉, transformacija Uα pa zrcaljenječez premico |α〉. Med obema premicama je kot, katerega sinus je enak 〈ω |α〉 = 1√

n.

Kompozitum dveh zrcaljenj čez premico pa je enak vrtežu za dvojni kot med premicama.V tem primeru torej UαUω zavrti vektor v ravnini K za kot θ = 2 arcsin 1√

n. Prva iteracija

Groverjevega algoritma je prikazana na sliki 2.

|ω〉

|α〉

Uω|α〉

UαUω|α〉

θ/2θ/2

θ

Slika 2: Geometrijski prikaz prve iteracije Groverjevega algoritma. S črtkanočrto sta narisani premici, prek katerih zrcalimo v vsakem koraku. Med |α〉in UαUω |α〉 je kot θ. Ker je na sliki kot θ precej velik, bi do |ω〉 prišli že vdveh iteracijah. Za velike n sta |ω〉 in |α〉 skoraj pravokotna, θ = 2 arcsin 1√

n.

Slika je narejena po [9].

Če kot merimo od premice, pravokotne na |ω〉, smo na začetku pri θ2 . Po r iteracijah jekot enak (r+ 1

2)θ in verjetnost, da izmerimo |ω〉 je res | 〈ω | (UαUω)rα〉 |2 = sin2((r + 1

2)θ).

Seveda želimo, da je ta največja, zato najprej poiščemo ustrezen r. Če bi drugi korakGroverjevega algoritma izvajali predolgo, bi se od rešitve začeli oddaljevati.

Ker je rezultat meritve naključen, ne dobimo nujno pravega odgovora. A če cel postopeknekajkrat ponovimo, bo verjetnost za same napačne rezultate tako majhna, da nam za to nitreba skrbeti. Za n > 100 je verjetnost za napačen rezultat manjša od enega odstotka, karje razvidno s slike 3. Verjetnost, da bi petkrat izmerili napačen rezultat, je torej manjša od10−10. Za dovolj velike n je pospešitev iskanja elementa v seznamu, kljub nekaj ponovitvamalgoritma, kvadratična, saj (

√n)2 = n. Za konstanto c namreč velja O(c

√n) = O(

√n).

Verjetnost za pravilen rezultat je P = sin2((r + 1

2)θ). Ker je r naravno število, bo

8

Page 9: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

odstopanje P od 1 največje, ko bo ((r+ 12)+ 1

2)θ = π2 . Takrat je namreč r najbolj odmaknjen

od optimalne vrednosti, če bi dopuščali realne vrednosti parametra r. V tem primeru zaverjetnost P dobimo

P = sin2(

(r + 12)θ

)= sin2

((r + 1)θ − θ

2

)= sin2

2 −θ

2

)= cos2

2

)

= cos2(

arcsin 1√n

)=

√1−( 1√

n

)22

= 1− 1n,

kar je kot spodnja meja verjetnosti za pravilen rezultat prikazano tudi na sliki 3. Znaraščanjem števila podatkov, n, se verjetnost za pravilen rezultat Groverjevega algoritmaasimptotično približuje 1.

200 400 600 800 10000.990

0.992

0.994

0.996

0.998

1.000

n

Ver

jetn

ost

zap

ravi

len

rezu

ltat

Slika 3: Verjetnost za pravilen rezultat v odvisnosti od n. Gladka funkcija,ki navzdol omejuje to verjetnost, je 1− 1

n .

5 Kvantna Fourierova transformacijaKvantna Fourierova transformacija (QFT) je podobna običajni diskretni Fourierovi

transformaciji (DFT), le da je izračun kvantnega algoritma eksponentno hitrejši [1]. Najprejse spomnimo klasične DFT, ki kompleksen vektor x = (x0, . . . , xn−1) ∈ Cn preslika vy = (y0, . . . , yn−1) ∈ Cn, kjer je4

yk = 1√n

n−1∑j=0

xje2πijk/n, (6)

za k = 0, . . . , n− 1. Pri naivnem izračunu potrebujemo O(n2) operacij, pri hitri Fourierovitransformaciji (FFT) pa O(n log2 n).

Preden definiramo QFT, vpeljimo še notacijo, ki jo bomo uporabljali. Bazna stanja N -kubitnega računalnika označujemo s |k〉 = |k1 . . . kN 〉, kjer je k vektor, k = (k1, . . . , kN ) ∈0, 1N . Bazna stanja lahko tako kot v prejšnjem poglavju ekvivalentno označimo s

4V celotnem poglavju i ∈ C predstavlja kompleksno število, katerega kvadrat je i2 = −1.

9

Page 10: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

|k〉 = |k〉, kjer je k = k12N−1 + k22N−2 · · ·+ kN20. Število k ima enak pomen kot grškečrke v prejšnjem poglavju. Zdaj lahko na baznih stanjih definiramo QFT, in sicer kot

QFT |j〉 = 1√n

n−1∑k=0

e2πijk/n |k〉 . (7)

Na ostala stanja definicijo linearno razširimo in za splošno stanje∑n−1j=0 xj |j〉 dobimo

QFTn−1∑j=0

xj |j〉 =n−1∑j=0

xj QFT |j〉 =n−1∑j=0

xj1√n

n−1∑k=0

e2πijk/n |k〉 =n−1∑k=0

yk |k〉 ,

kjer je yk = 1√n

n−1∑j=0

xje2πijk/n. Koeficienti se pri QFT, dani z enačbo (7), transformirajo

enako kot pri DFT, dani z enačbo (6). Pri izračunu števila operacij, ki jih potrebujemo zaprimerjavo z DFT, bomo QFT zapisali še v drugačni, produktni obliki. Začetna definicijaje dobra za poljuben n, a se zdaj omejimo na n = 2N , saj imamo toliko baznih stanj priN -kubitnem računalniku. Definirajmo binarni ulomek,

0.j`j`+1 . . . jm ≡j`2 + j`+1

4 + · · ·+ jm2m−`+1 , (8)

in s tem preoblikujmo zapis za QFT.

QFT |j〉 = 1√2N

2N−1∑k=0

e2πijk/2N |k〉 = 1√2N

1∑k1=0· · ·

1∑kN =0

e2πij∑N

`=1 k`2−`

|k1 . . . kN 〉

= 1√2N

1∑k1=0· · ·

1∑kN =0

N⊗`=1

e2πijk`2−` |k`〉 = 1√2N

N⊗`=1

1∑k`=0

e2πijk`2−` |k`〉

= 1√

2N

N⊗`=1

(|0〉+ e2πij2−` |1〉

)=(|0〉+ e2πi 0.jN |1〉

)⊗ · · · ⊗

(|0〉+ e2πi 0.j1...jN |1〉

)√

2N,

kjer smo pri prvem enačaju upoštevali definicijo QFT ter pri drugem definicijo k in |k〉, pritretjem smo uporabili tenzorski zapis, pri četrtem smo zamenjali vrstni red seštevanja inmnoženja, pri petem smo izračunali vsoto (ima le dva člena), pri zadnjem pa napisali nadaljši način in upoštevali definicijo binarnega ulomka ter enakost e2πi = 1.

S QFT torej bazno stanje |j〉 = |j1 . . . jN 〉 slikamo v(|0〉+ e2πi 0.jN |1〉

)⊗(|0〉+ e2πi 0.jN−1jN |1〉

)⊗ · · · ⊗

(|0〉+ e2πi 0.j1...jN |1〉

)√

2N.

Za izračun prvega kubita potrebujemo ena Hadamardova vrata, definirana z enačbo (3), inena fazna vrata, definirana z enačbo (2). Za izračun drugega potrebujemo ena Hadamardovain dvoje faznih vrat, in tako naprej – za izračun zadnjega potrebujemo ena Hadamardovain N faznih vrat. To skupaj nanese O(N2) = O((log2 n)2) vrat oziroma operacij, kar jeeksponentno manj od O(n log2 n) = O(N2N ), kolikor jih potrebujemo pri klasični DFT.

Spet pa pospešitve računanja ne smemo razumeti preveč dobesedno. Postopka zaizračun QFT z namenom nismo zapisali v obliki formalnega algoritma, saj v splošnemne vemo, kaj bo zaključna meritev. Kvantna Fourierova transformacija v več algoritmihnastopa le kot del računa in od posameznih primerov je odvisno, kako bomo z meritvijona koncu pridobili iskano informacijo. Eden od parametrov, ki jih lahko s QFT poiščemohitreje kot klasično, je perioda dane funkcije. To izkorišča Shorov algoritem [4], ki v časuO((log2 n)3) faktorizira število n. Rešitev torej poišče v polinomskem času glede na dolžinovhoda, kar je eksponentno hitreje od vseh znanih klasičnih algoritmov za razcep naravnihštevil.

10

Page 11: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

6 Simulacije enodelčnih kvantnih problemovZa konec povejmo še nekaj o kvantnih simulacijah. To je bila tudi prvotna Feynmanova

ideja za uporabo kvantnih računalnikov. Obravnavajmo enodelčni problem v eni dimenziji[10]. Valovna funkcija ψ = ψ(x, t) je določena s Schrödingerjevo enačbo,

i∂

∂tψ(x, t) = H ψ(x, t), kjer je H = H0 + V (x) = − 1

2m∂2

∂x2 + V (x).

Pri obravnavi se še dodatno omejimo in obravnavajmo omejeno gibanje, −L ≤ x ≤ L.To območje razdelimo na 2N intervalov dolžine ∆x = 2L/2N in gibanje simuliramo zN -kubitnim računalnikom. Z večanjem N se korak ∆x (in s tem diskretizacija ter napaka)eksponentno zmanjšuje. Bazna stanja kubitov spet označimo s števili namesto vektorji,in sicer kot |0〉,. . . , |2N − 1〉. Če za k = 0, . . . , 2N − 1 označimo xk = −L + (k + 1

2)∆x,valovno funkcijo aproksimiramo kot

|ψ〉 ≈2N−1∑k=0

ck(t) |k〉 =2N−1∑k=0

ψ(xk, t) |k〉 ,

kjer so koeficienti ck(t) oziroma ψ(xk, t) primerno normalizirani. Rešitev Schrödingerjeveenačbe formalno zapišemo z eksponentom,

ψ(x, t+ ε) = e−i(H0+V (x))εψ(x, t).

Za majhne ε lahko eksponent na desni strani razvijemo in do prvega reda natančnopišemo e−i(H0+V (x))ε ≈ e−iH0εe−iV (x)ε. Drugi člen, e−iV (x)ε, je diagonalen operator vkoordinatni bazi in preslika |k〉 v e−iV (xk)ε |k〉. Pri prvem členu pa si pomagamo s Fourierovotransformacijo. Ker QFT lahko računamo hitro, to ne upočasni simulacije. S QFTprehajamo med krajevno (x-) in momentno (p-) reprezentacijo. Za operator gibalne količinevelja zveza −i ∂∂x = QFT† pQFT in zato

e−iH0ε = QFT† e−ip22m

ε QFT,

torej je v momentni bazi tudi e−iH0ε diagonalen operator. Če vse to združimo, lahko koraksimulacije zapišemo kot delovanje unitarnega operatorja

Uε = QFT† e−ip22m

ε QFT e−iV (x)ε

in če želimo izračunati stanje po času t = sε, z Uε na začetnem stanju delujemo s-krat. Šeenkrat več poudarimo, da se simulacija s tem ne konča, saj moramo na koncu izvesti nekomeritev. Zato se moramo pri vsakem konkretnem primeru vprašati, kateri parameter naszanima in kako bi ga po opravljeni simulaciji čimbolj natančno pridobili z meritvijo.

7 ZaključekKvantno računalništvo je eno tistih področij, pri katerih se teorija razvija hitreje kot

eksperimentalne realizacije. Kot smo omenili v uvodu, do zdaj še ni bil zgrajen kvantniračunalnik, ki bi deloval bolje od klasičnih superračunalnikov. A vendar to ne zmanjšujepomembnosti tega raziskovalnega področja. Eksperimentalne metode, ki jih razvijamo zakonstrukcijo kvantnega računalnika, imajo različna fizikalna ozadja in bodo v prihodnjelahko igrala pomembno vlogo pri reševanju drugih problemov. Poleg tega nas drugi uspehi

11

Page 12: Kvantni algoritmi - mafija.fmf.uni-lj.simafija.fmf.uni-lj.si/.../2013_2014/Kozarski_Kvantni_algoritmi.pdf · Rečemojim kvantni algoritmi,sčimervožjem smisluoznačimoletiste,kiimajočasovno(aliprostorsko)zahtevnoststrogomanjšood

fizike učijo, da je le vprašanje časa, kdaj pride do večjega preboja pri reševanju določenegaodprtega problema.

Eden največjih trenutno delujočih kvantnih računalnikov, ki so ga zgradili raziskovalci,je sestavljen iz 14 kubitov [11]. To je premalo, da bi bil tak kvantni računalnik uspešnejšipri reševanju problemov ali simulaciji kvantnih sistemov. Po nekaterih ocenah, [12], najbi bile simulacije na kvantnih računalnikih hitrejše kot na klasičnih računalnikih že privsega 40 kubitih. Groverjev algoritem bo uspešnejši od klasičnih algoritmov pri nekaj stokubitih, Shorov pa pri nekaj tisoč [10]. Meje se premikajo počasi, a napredek je vseenoopazen, v posebnih primerih so uspeli čas dekoherence podaljšati že na 39 minut [13].

Ko razmišljamo o kvantnih algoritmih, se moramo zavedati, da informacijo na konculahko dobimo le z meritvijo. Na več primerih smo videli, da se moramo za to posebejpotruditi in poiskati način, kako lahko rezultat računa predelamo v merljivo količino. Zapospešitev reševanja problemov zato potrebujemo posebej prirejene algoritme. Ti pa neobstajajo za vsak problem in so na nek način redki.

Literatura[1] Michael A. Nielsen and Isaac L. Chuang. Quantum Computation and Quantum Information. Cambridge

University Press, New York, 2010.[2] Feynman, R. P. Simulating pysics with computers. Int. J. Theor. Phys., 21(6/7):467–488, 1982.[3] Feynman, R. P. Quantum mechanical computers. Foundations of Physics, 16(6):507–531, 1986.[4] Peter W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms on a

quantum computer. SIAM J. Comput., 26, 1997.[5] N. David Mermin. Quantum Computer Science: An Introduction. Cambridge University Press, New

York, 2007.[6] Quantum Computing.

http://courses.cs.washington.edu/courses/cse599d/06wi/. [ogled 18. 3. 2014].[7] B. Kranjc. Quantum error correction. Seminar I, 2014.[8] Lov K. Grover. A fast quantum mechanical algorithm for database search. arXiv:quant-ph/9605043,

1996.[9] Grover’s algorithm.

http://en.wikipedia.org/wiki/Grover’s_algorithm. [ogled 18. 3. 2014].[10] G. Benenti and G. Strini. Quantum simulation of the single-particle Schrödinger equation. American

Journal of Physics, 76, 2008.[11] T. Monz et. al. 14-qubit entanglement: Creation and coherence. Phys. Rev. Lett., 106, 2011.[12] I. M. Georgescu, S. Ashhab, and F. Nori. Quantum simulation. Rev. Mod. Phys., 86, 2014.[13] K. Saedi et. al. Room-temperature quantum bit storage exceeding 39 minutes using ionized donors in

silicon-28. Science, 342, 2011.

12