UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA NEŽKA RUGELJ SHOROV ALGORITEM DIPLOMSKO DELO LJUBLJANA, 2017

Podobni dokumenti
Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

Osnove matematicne analize 2018/19

Slide 1

DN5(Kor).dvi

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

Vrste

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

Matematika 2

resitve.dvi

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Brownova kovariancna razdalja

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Linearna algebra - povzetek vsebine Peter Šemrl Jadranska 21, kabinet 4.10 Izpitni režim: Kolokviji in pisni izpiti so vsi s

FGG13

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

FGG14

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

Poslovilno predavanje

Microsoft Word - Analiza rezultatov NPZ matematika 2018.docx

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

Osnove verjetnosti in statistika

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

Domače vaje iz LINEARNE ALGEBRE Marjeta Kramar Fijavž Fakulteta za gradbeništvo in geodezijo Univerze v Ljubljani 2007/08 Kazalo 1 Vektorji 2 2 Analit

Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y

SESTAVA VSEBINE MATEMATIKE V 6

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

Matematika II (UN) 2. kolokvij (7. junij 2013) RE ITVE Naloga 1 (25 to k) ƒasovna funkcija f je denirana za t [0, 2] in podana s spodnjim grafom. f t

M

RAČUNALNIŠKA ORODJA V MATEMATIKI

Strojna oprema

Teorija kodiranja in kriptografija 2013/ AES

STAVKI _5_

Microsoft Word - avd_vaje_ars1_1.doc

glava.dvi

resitve.dvi

Microsoft Word - UP_Lekcija04_2014.docx

Delavnica Načrtovanje digitalnih vezij

Srednja šola za oblikovanje

Rešene naloge iz Linearne Algebre

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

INDIVIDUALNI PROGRAM PREDMET: MATEMATIKA ŠOL. LETO 2015/2016 UČITELJ: ANDREJ PRAH Učenec: Razred: 7. Leto šolanja: Ugotovitev stanja: Učenec je lani n

NAVODILA AVTORJEM PRISPEVKOV

Poskusi s kondenzatorji

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

Uvodno predavanje

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

ELEKTRIČNI NIHAJNI KROG TEORIJA Električni nihajni krog je električno vezje, ki služi za generacijo visokofrekvenče izmenične napetosti. V osnovi je "

CpE & ME 519

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

POPOLNI KVADER

resitve.dvi

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

MATEMATIKA 2. LETNIK GIMNAZIJE G2A,G2B Sestavil: Matej Mlakar, prof. Ravnatelj: Ernest Simončič, prof. Šolsko leto 2011/2012 Število ur: 140

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

predstavitev fakultete za matematiko 2017 A

Matematika II (UNI) Izpit (23. avgust 2011) RE ITVE Naloga 1 (20 to k) Vektorja a = (0, 1, 1) in b = (1, 0, 1) oklepata trikotnik v prostoru. Izra una

GeomInterp.dvi

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-junij-17.dvi

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Mrežni modeli polimernih verig Boštjan Jenčič 22. maj 2013 Eden preprostejših opisov polimerne verige je mrežni model, kjer lahko posamezni segmenti p

(Microsoft PowerPoint - vorsic ET 9.2 OES matri\350ne metode 2011.ppt [Compatibility Mode])

resitve.dvi

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Poglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri te

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

UNIVERZA V MARIBORU FAKULTETA ZA KEMIJO IN KEMIJSKO TEHNOLOGIJO Petra Žigert Pleteršek MATEMATIKA III Maribor, september 2017

Kotne in krožne funkcije Kotne funkcije v pravokotnem trikotniku β a c γ b α sin = a c cos = b c tan = a b cot = b a Sinus kota je razmerje kotu naspr

Vektorji - naloge za test Naloga 1 Ali so točke A(1, 2, 3), B(0, 3, 7), C(3, 5, 11) b) A(0, 3, 5), B(1, 2, 2), C(3, 0, 4) kolinearne? Naloga 2 Ali toč

Microsoft PowerPoint - Java_spremenljivke

OSNOVE LOGIKE 1. Kaj je izjava? Kaj je negacija izjave? Kaj je konjunkcija in kaj disjunkcija izjav? Povejte, kako je s pravilnostjo negacije, konjunk

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

PowerPoint Presentation

Datum in kraj

Delavnica Načrtovanje digitalnih vezij

ANALITIČNA GEOMETRIJA V RAVNINI

Diapozitiv 1

2.1 Osnovni pojmi 2 Nim Ga²per Ko²mrlj, Denicija 2.1 P-poloºaj je poloºaj, ki je izgubljen za igralca na potezi. N- poloºaj je poloºaj, ki

MAGIČNI KVADRATI DIMENZIJE 4n+2

LaTeX slides

2. izbirni test za MMO 2017 Ljubljana, 17. februar Naj bosta k 1 in k 2 dve krožnici s središčema O 1 in O 2, ki se sekata v dveh točkah, ter

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k

'Kombinatoricna optimizacija / Lokalna optimizacija'

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

dr. Andreja Šarlah Teorijska fizika II (FMF, Pedagoška fizika, 2010/11) kolokviji in izpiti Vsebina Kvantna mehanika 2 1. kolokvij 2 2. kolokvij 4 1.

Verjetnost in vzorčenje: teoretske porazdelitve standardne napake ocenjevanje parametrov as. dr. Nino RODE prof. dr. Blaž MESEC

Matematika II (UN) 1. kolokvij (13. april 2012) RE ITVE Naloga 1 (25 to k) Dana je linearna preslikava s predpisom τ( x) = A x A 1 x, kjer je A

FGG02

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

VIN Lab 1

CelotniPraktikum_2011_verZaTisk.pdf

Transkripcija:

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA NEŽKA RUGELJ SHOROV ALGORITEM DIPLOMSKO DELO LJUBLJANA, 017

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DVOPREDMETNI UČITELJ: matematika - računalništvo NEŽKA RUGELJ Mentor: Prof. dr. Janez Demšar SHOROV ALGORITEM DIPLOMSKO DELO LJUBLJANA, 017

Če te kvantna mehanika ni popolnoma šokirala, je še nisi povsem razumel. (Niels Bohr) V prvi vrsti se iskreno zahvaljujem mentorju prof. dr. Janezu Demšarju za izjemno potrpežljivost in vso pomoč pri pisanju diplomskega dela. Zahvalila bi se tudi svoji družini in fantu za vso vzpodbudo in podporo v času celotnega študija. Hvala tudi prijateljem za vse trenutke, ki so lepšali študijska leta.

Povzetek V diplomskem delu obravnavamo Shorov algoritem za faktorizacijo števil, ki se izvaja na kvantnih računalnikih. V začetku dela najprej razložimo nekaj osnovnih pojmov kvantnega računalništva. Nato na kratko opišemo Fourierovo in diskretno Fourierovo transformacijo iz katere naprej izpeljemo kvantno Fourierovo transformacijo. V zadnjem delu diplomskega dela ponovimo osnove modularne aritmetike. Nato opišemo način faktorizacije, ki jo uporablja Shorov algoritem. Diplomsko delo zaključimo z natančnim opisom delovanja algoritma na kvantnih računalnikih in preprostim primerom. Ključne besede: Shorov algoritem, kvantno računalništvo, faktorizacija, kvantna Fourierova transformacija

Abstract In this diploma paper we present the Shor s algorithm for factorising numbers, which runs on quantum computers. Initially, we explain the basics of quantum computing. Afterwards, we present a general review of the Fourier and the discrete Fourier transform, from which we derive the quantum Fourier transform. In the last part, we first give a short introduction to modular arithmetics. Later on, we describe the concept of factorization that is used in Shor s algorithm. Diploma thesis ends with a detailed review of how the algorithm works on quantum computers and a simple example. Key words: Shor s algorithm, quantum computation, factorization, quantum Fourier transform ix

Kazalo I Uvod 1 II Kvantni računalniki 1 Kvantni bit Sistemi kubitov 3 3 Prepletenost 5 4 Kvantni računalnik 5 III Fourierova transformacija 1 5 Vektorji in skalarni produkt 1 6 Fourierova transformacija 14 6.1 Kvantna Fourierova transformacija.................. 17 IV Shorov algoritem 7 Modularna aritmetika 8 Faktorizacija 4 8.1 Iskanje periode funkcije......................... 6 8. Algoritem................................ 9 V Zaključek 3

Del I Uvod Razcep števil ali faktorizacija je znan kot težek problem, za katerega (še) ne poznamo učinkovitega algoritma, ki bi tekel na običajnih računalnikih. To pomeni, da velikih števil (npr. števil s 1000 števkami) klasičen računalnik ne razstavi v nekem doglednem času. Temu ne bo več tako, ko bodo sestavili kvantni računalnik z dovolj velikim kvantnim registrom, ki mu bo to uspelo. Eden od možnih algoritmov za to je Shorov algoritem, ki je hkrati eden prvih algoritmov, namenjenih kvantnim računalnikom. Shorov algoritem je imenovan po matematiku Petru Shoru in je bil formuliran že leta 1994. Algoritem je sestavljen iz dveh delov. V prvem delu se problem razcepa na prafaktorje pretvori v problem iskanja periode funkcije, v drugem delu pa to periodo najdemo s pomočjo kvantne Fourierove transformacije. Kvantni računalniki hranijo podatke v kvantnih bitih ali kubitih. Zanimivo pri njih je, da se nekako ne odločijo, v katerem izmed možnih stanj so, vse dokler jih ne pogledamo oz. izmerimo. Pred tem lahko njihovo stanje zgolj opišemo s superpozicijo stanj. Kvantne računalnike sicer šele razvijamo, kljub temu pa lahko že razmišljamo in ustvarjamo algoritme, saj vemo, na kakšnem principu bodo temeljili. Tako smo poleg Shorovega algoritma razvili tudi mnoge druge algoritme za reševanje problemov, ki imajo na klasičnih računalnikih veliko časovno zahtevnost. 1

Del II Kvantni računalniki V tem poglavju je na kratko opisano, kaj je kvantni računalnik in kako deluje, opisani so osnovni pojmi in koncepti, ki nam bodo pomagali pri razumevanju nadaljevanja diplomskega dela. (Povzeto po [] in [4].) 1 Kvantni bit Bit (krajše za ang. binary digit ) je osnovna enota za merjenje količine podatkov, ki so shranjeni v klasičnem računalniku. Vlogo bita v kvantnem računalniku predstavlja kvantni bit ali krajše kubit. Fizično kubit predstavlja osnovni fizikalni delec, npr. elektron ali foton, običajno pa o kubitu razmišljamo kot o abstraktnem matematičnem objektu, ki ga največkrat obravnavamo kot enotski vektor v -dimenzionalnem vektorskem prostoru. Podobno, kot je klasičen bit v enem izmed stanj, ki ju običajno označimo z 0 in 1, je v nekem stanju tudi kvantni bit. Vendar pa kubit ni v točno določenem stanju, temveč v superpoziciji možnih stanj. Določene so le verjetnosti stanj, v katerih se bo nahajal ob meritvi. Zato trenutno stanje delca opišemo z linearno kombinacijo stanj, ki ji rečemo superpozicija. Bazna vektorja tega prostora stanj z Diracovo notacijo označimo z 0 in 1. Linearna kombinacija stanj kubita je torej α 0 0 + α 1 1, pri čemer sta α 0 in α 1 kompleksni števili. Ko kubit izmerimo, se bo ta nahajal v stanju 0 z verjetnostjo α 0 ali v stanju 1 z verjetnostjo α 1. Ker je dogodek, da se bo kubit nahajal v stanju 0 ali v stanju 1, gotov dogodek, velja α 0 + α 1 = 1. Geometrijsko to pomeni, da je stanje kubita normalizirano, torej ima dolžino 1. Sposobnost kubita, da se nahaja v superpoziciji stanj, je nenaravno v smislu našega dojemanja sveta okoli nas. Klasičen bit je kot kovanec - ali je grb ali pa

cifra. Nasprotno pa je lahko kubit kjerkoli v prostoru stanj med 0 in 1, vendar le dokler ga ne izmerimo. Ko ga izmerimo, bo rezultat vedno 0 ali 1. Tako je lahko kubit na primer v stanju 1 0 + 1 1 in bo v polovici meritev dal rezultat 0 in v drugi polovici rezultat 1. Zgornje stanje večkrat označimo s + in ga bomo v nalogi še videli. Fizično je kubit lahko npr. elektron. Osnovno stanje označimo z 0, prvo vzbujeno stanje pa 1. Če atomu dovajamo dovolj energije, se bo elektron iz stanja 0 premaknil v stanje 1. Ker se lahko kubit nahaja kjerkoli med stanjema 0 in 1, bi si lahko mislili, da lahko hrani neskončno podatkov. Vendar zaradi obnašanja kubita pri merjenju temu ni tako. Merjenje namreč spremeni stanje kubita iz superpozicije stanj 0 in 1 v konkretno stanje. Na primer, kubit, ki je v stanju +, izmerimo in ta s tem preide v stanje 0 ali 1. Z enim samim merjenjem torej dobimo zgolj en bit podatkov o stanju kubita. Vrednosti α 0 in α 1 iz enačbe α 0 0 + α 1 1 bi lahko pridobili le z neskončno meritvami identično pripravljenega kubita, kar pa zaradi zakonov kvantne fizike (kubitov ni mogoče klonirati) ni možno. Sistemi kubitov Denimo, da je naš sistem sestavljen iz dveh kubitov (delcev), ki imata po možni stanji. V klasičnem računalništvu bi to pomenilo, da imamo bita, ki imata vrednost 0 ali 1, skupaj pa tvorita štiri možna stanja in sicer 00, 01, 10 in 11. Oglejmo si sistem dveh kubitov na primeru dveh elektronov. Oba elektrona sta v superpoziciji stanj 0 in 1. Stanje prvega elektorna zapišemo kot α 0 0 + α 1 1, ki je vektor v dvodimenzionalnem kompleksnem vektorskem oz. Hilbertovem prostoru (označimo ga s H 1 ), stanje drugega pa β 0 0 + β 1 1, ki je prav tako vektor v dvodimenzionalnem Hilbertovem prostoru (tega označimo s H ). Če ta dva sistema združimo, je stanje novega sistema vektor v 4-dimenzionalnem 3

Hilbertovem prostoru, označimo ga s H. Hilbertova prostora H 1 in H smo združili s tenzorskim produktom, ki ga označimo z. Tenzorski produkt je operacija, ki vektorjema u H 1 in v H priredi vektor u v H. Tem produktnim vektorjem rečemo osnovni tenzorji. Tenzorski produkt ima dve pomembni lastnosti: je bilinearen; ( u 1 + u ) v = u 1 v + u v in analogno za u, v 1, v ; bazne vektorje preslika v bazne vektorje; bazne vektorje prostora H pridobimo iz baznih vektorjev prostorov H 1 in H : 0 0 = 0 0 = 00 0 1 = 0 1 = 01 1 0 = 1 0 = 10 1 1 = 1 1 = 11. Ker je H = H 1 H vektorski prostor, definirajmo skalarni produkt: u 1 v 1, u v = u 1, u v 1, v. Ko imamo definiran skalarni produkt za osnovne tenzorje, lahko definiramo skalarni produkt za vsak vektor v H. Tako lahko vsak vektor iz H izrazimo kot linearno kombinacijo osnovnih tenzorjev. Pomudimo se še pri merjenju sistema kubitov. Podobno kot pri enem kubitu je rezultat merjenja sistema dveh kubitov lahko 00, 01, 10 ali 11, pri čemer je verjetnost, da je rezultat X, enaka α X. Ob merjenju sistem preide iz superpozicije stanj v stanje X >. Tudi če izmerimo le enega izmed dveh kubitov sistema, se stanje celotnega sistema spremeni (saj se je prvi kubit iz superpozicije premaknil v eno od stanj). Vzemimo sistem v stanju α 00 00 + α 01 01 + α 10 10 + α 11 11. 4

Če smo izmerili, da se prvi kubit nahaja v stanju 0, za kar je bila verjetnost α 00 + α 01, je torej novo stanje sistema linearna kombinacija stanj 00 in 01. Torej je stanje sistema po merjenju ψ novo = α 00 00 + α 01 01 α00 + α 01. Stanje po merjenju enega kubita je normalizirano s faktorjem α 00 + α 01, da je vektor stanja še vedno normiran (ima dolžino 1). 3 Prepletenost S tenzorskim produktom smo ustvarili nov Hilbertov prostor, ki ima svoje bazne vektorje. Ta Hilbertov prostor je sestavljen iz dveh množic vektorjev; množice osnovnih tenzorjev in množice vektorjev, ki jih pridobimo kot linearno kombinacijo baznih vektorjev, a jih ne moremo zapisati kot produkt vektorjev iz H 1 in H. Tak je na primer vektor, ki opisuje t. i. Bellovo stanje ψ >= 1 ( 00 + 11 ). Če je sistem v takem stanju, rečemo da je v prepletenem ali vezanem stanju. Če izmerimo stanje enega kubita v zgornjem stanju sistema kubitov, bomo dobili stanje celega sistema. Torej, če je rezultat merjenja enega kubita 0 (z verjetnostjo 1), sistem preide v stanje 00, če pa je rezultat 1, sistem preide v stanje 11. Torej v tem primeru merjenje drugega kubita vedno da enak rezultat kot merjenje prvega kubita. 4 Kvantni računalnik Kvantni računalnik je računalnik, ki podatke shranjuje v kvantnih bitih. Sestavljen je iz kvantnih vezij, ki so skupek vodil in kvantnih vrat, ki prenašajo in delujejo na kvantne podatke, sicer pa so analogna logičnim vratom navadnega računalnika. 5

Pomembna razlika med klasičnimi in kvantnimi logičnimi vrati je ta, da kvantna logična vrata ne delujejo tako, da bi spreminjala stanje 0 oz. 1, saj nam to ne bi povedalo nič o superpoziciji stanja, v kateri se nahaja kubit, predno ga izmerimo. Kvantna vrata deluejo linearno, tako da spreminjajo amplitudi α 0 in α 1. Tako se torej spreminjata verjetnosti, v katerem stanju se bo nahajal kubit, ko ga izmerimo. Zaradi linearnosti lahko kvantna logična vrata predstavimo s kvadratnimi matrikami. Obratno, vsaka primerna kvadratna matrika predstavlja kvantna logična vrata. Ni pa vsaka matrika primerna. Ker za α 0 in α 1 velja enakost α 0 + α 1 = 1, mora to veljati za novo stanje kubita ψ = α 0 0 + α 1 1 po delovanju vrat. Izkaže se, da bo ta lastnost veljala natanko takrat, ko bo matrika unitarna, torej bo veljalo U U = UU = I, kjer je I enotska matrika in U = (U T ) ; a c b d = a b c d. Kvantna logična vrata lahko razdelimo na tista, ki delujejo na enem kubitu in tista, ki delujejo na več kubitih hkrati. Logična vrata, ki delujejo na enem kubitu V klasičnem računalništvu imamo zgolj ena netrivialna logična vrata, ki delujejo na enem bitu, to so vrata NE. V kvantnem računalništvu pa je teh vrat več. Vrata NE Logična vrata NE v klasičnem računalniku bitu z vrednostjo 0 nastavijo vrednost 1 in obratno. Kvantna logična vrata pa kot že omenjeno delujejo na superpozicijo stanj. Vrata NE tako superpozicijo α 0 0 + α 1 1 preslikajo v superpozicijo α 1 0 + α 0 1. V skicah vezij ta vrata označimo z X. Kvadratna matrika, ki ustreza 6

tem logičnim vratom, je X = 0 1. 1 0 Preverimo, da so taka vrata dobro definirana, torej da je pripadajoča matrika enotska oz. da velja X X = XX = I. Ker je X = X, moramo preveriti, ali je X = I: 0 1 0 1 = 0 0 + 1 1 0 1 + 1 0 = 1 0. 1 0 1 0 1 0 + 0 1 1 1 + 1 0 0 1 Vrata, ki zamenjajo predznak Ta vrata delujejo na superpozicijo α 0 0 + α 1 1 tako, da nastavi amplitudo α 1 na α 1. Nova superpozicija je torej α 0 0 α 1 1. Ustrezna matrika, ki jo označimo z Z, je Z = 1 0. 0 1 Če kubit, ki je na začetku v stanju + = 1 0 + 1 1, pošljemo skozi Z, ta preide v stanje = 1 0 1 1 in obratno. Tudi tokrat bi morali preveriti, ali je matrika unitarna, kar pa bi pokazali na enak način kot pri vratih NE, zatorej bomo tokrat dokaz izpustili. Hadamardova vrata oz. transformacija Hadamardova vrata se velikokrat pojavijo v kvantnih vezjih. Označimo 7

jih s H, pripadajoča matrika pa je H = 1 1 1 1. Stanje 0 Hadamardova transformacija slika v H 0 = 1 1 1 1 1 = 0 1 1 torej stanje 0 slika v stanje 1 0 + 1 1 = +, podobno pa stanje 1 slika v stanje 1 0 1 1, ki ga označimo tudi z., Zopet moramo preveriti, če je transformacija unitarna, torej ali velja enakost H H = I. H = H, saj so vsi elementi realni in s simetrijo ostane enaka. H = 1 1 1 1 1 1 1 1 = H = 1 0 = I. 0 1 ( 1 ) ( 1 ) ( 1 ( 1 ) ( 1 ) ( 1 ) ) Ker je H unitarna transformacija, pomeni, da ob ponovitvi dobimo nazaj začetno stanje. Hadamardova transformacija kot rečeno slika stanje 0 1 0 + 1 1 in stanje 1 1 0 1 1. Na prvi pogled izgleda, kot da smo izgubili vse informacije o začetnem stanju kubita, saj sta verjetnosti stanja 0 in 1 sedaj enaki. Vendar je ta podatek shranjen v predznaku (+ ali -). Če ponovno izvedemo transformacijo, bomo to informacijo povrnili v bitno informacijo in bomo tako, ko bomo izmerili stanje kubita, pravzaprav natanko vedeli, s katerim stanjem smo začeli. Kvantna vrata, ki delujejo na dveh kubitih Začetno stanje dveh kubitov je superpozicija vseh štirih možnih stanj α 00 00 + α 01 01 + α 10 10 + α 11 11. 8

Izhodna superpozicija je podobna kot vhodna, le z drugačnimi amplitudami: α 00 00 + α 01 01 + α 10 10 + α 11 11. Vsako stanje lahko opišemo kot vektor v 4-dimenzionalnem vektorskem prostoru, zato lahko transformacije zapišemo kot matrike velikosti 4 4 s kompleksnimi elementi. Vrata CNOT (iz ang. controlled NOT ) So zelo preprosta kvantna logična vrata, ki jih pogosto uporabljamo. Shema vezja je prikazana na spodnji sliki. Prvemu kubitu a rečemo kontrolni kubit, drugemu kubitu b pa ciljni kubit. Vrata stanja kontrolnega kubita ne spreminjajo, na ciljnem pa izvedejo operacijo NE natanko tedaj, ko je stanje kontrolnega kubita enako 1. Pripadajoča matrika je 1 0 0 0 0 1 0 0 CNOT =. 0 0 0 1 0 0 1 0 Transformacija slika stanja: 00 00 01 01 10 11 11 10. Vhodna superpozicija α 00 00 + α 01 01 + α 10 10 + α 11 11 9

se torej preslika v α 00 00 + α 01 01 + α 11 10 + α 10 11. Preverimo še, da je CN OT unitarna transformacija. To lahko preprosto vidimo že po tem, da če transformacijo izvedemo dvakrat, bomo iz začetne superpozicije dobili enako superpozicijo, kot je bila prva vhodna. Torej je transformacija res unitarna. Druga vrata, ki delujejo na dveh kubitih Vrata, ki delujejo na dveh kubitih, lahko dobimo tudi drugače. Na vsakem od vhodnih kubitov posebej lahko uporabimo kvantna logična vrata, ki delujejo na enem kubitu. Denimo, da na prvem kubitu uporabimo transformacijo U 1 in na drugem U. Naj bo U 1 = a c b d in U = e g. f h Tedaj je transformacija U podana z matriko a e g c e g f h f h U = b e g d e g. f h f h Označimo vrstice in stolpce po vrsti z 00, 01, 10 in 11. Če se osredotočimo zgolj na prvi bit, nam prvi dve vrstici predstavljata 0 in drugi dve 1 ter prva dva stolpca 0 in druga dva 1. To se vidi po koeficientih štirih podmatrik a, b, c in d. Ko izmerimo prvi kubit, nam za vsako možnost ostaneta dve možnosti za drugi kubit, zato je v vsakem kvadrantu podmatrika U. 10

Tak način sestavljanja vrat deluje. U 1 delujejo na stanje 0 tako: U 1 0 = a 0 + b 1, vrata U pa U 0 = e 0 + f 1. Na stanju 00 uporabimo U 1 in U in dobimo novo stanje U 1 U 00 = (a 0 +b 1 )(e 0 +f 1 ) = ae 00 +af 01 +be 10 +bf 11, kar je razvidno tudi iz prvega stolpca matrike U. Podobno velja za slike 01, 10 in 11. 11

Del III Fourierova transformacija Eden najučinkovitejših načinov reševanja problemov v matematiki ali računalništvu je preoblikovanje oz. transformacija problema v nek drug problem, katerega rešitev je znana ali lažje rešljiva. Nekatere transformacije so pogosto uporabne na različnih primerih, zato jih preučujemo že zaradi njih samih. Ena izmed takih je tudi Fourierova transformacija. V tem delu diplomskega dela bomo najprej ponovili osnove linearne algebre, nato spoznali Fourierovo transformacijo in nazadnje še kvantno obliko le te. Ta razdelek je povzet po [1], [3], [4] in [5]. 5 Vektorji in skalarni produkt Vektor je količina, ki ima poleg velikosti tudi smer. Velikosti vektorja lahko rečemo tudi dolžina, najbolj splošna beseda pa je norma. Označimo ga na različne načine, npr. s puščico a, v geometrijskem prostoru ga lahko označimo z začetno in končno točko, npr. AB, lahko zgolj z a, AB... Na kakšen način ga pišemo, je odvisen od situacije oz. konteksta, pomembno je le, da vedno vemo, kdaj oznaka predstavlja vektor. Običajno avtorji besedil na začetku omenijo, kateri zapis bodo uporabljali v besedilu. V tem poglavju bomo uporabili kar a. Dva vektorja sta linearno neodvisna, če ne moremo enega zapisati kot večkratnik drugega. Vektor 0 je linearno odvisen od vseh ostalih vektorjev. Nabor vektorjev je linearno neodvisen, če nobenega izmed njih ne moremo zapisati kot linearno kombinacijo ostalih. Vektorski prostor nad poljem F je množica vektorjev, zaprta za seštevanje in množenje s skalarjem iz F. Ogrodje vektorskega prostora je množica vseh vektorjev, s katerimi lahko z linearno kombinacijo opišemo vse druge vektorje vektorskega prostora. Baza vektorskega prostora je najmanjše ogrodje. Vsebuje same linearno 1

neodvisne vektorje. Naj bo V vektorski prostor nad poljem F. Skalarni produkt je funkcija dveh spremenljivk : V V F, ki ima naslednje lastnosti: x, x 0 in x, x = 0 x = 0 x + y, z = x, z + y, z λx, y = λ x, y x, y = y, x. S skalarnim produktom lahko vsakemu vektorju določimo normo. Normo vektorja x označimo z x in definiramo kot x = x, x. Vektor x je pravokoten ali ortogonalen na vektor y, če je njun skalarni produkt enak 0, torej x, y = 0. Ortogonalna množica U je množica paroma ortogonalnih vektorjev. Vektor x je normiran, če je njegova norma enaka 1. Množica vektorjev tvori ortonormiran sistem, če so vsi vektorji normirani in paroma ortogonalni. Če kakšen tak sistem tvori bazo kakšnega vektorskega prostora, mu rečemo tudi ortonormirana baza. Naj bo množica vektorjev B = {b 1, b,...b n } baza n-razsežnostnega vektorskega prostora V. Tedaj lahko poljuben vektor v V enolično zapišemo kot linearno kombinacijo baznih vektorjev b i : v = λ 1 b 1 + λ b +... + λ n b n. Če je baza ortonormirana, za koeficiente λ i velja λ i = v, b i. 13

To enostavno preverimo, saj je za v = λ 1 b 1 + λ b +... + λ n b n v, b i = λ 1 b 1, b i + λ b, b i +... + λ i b i, b i +... + λ n b n, b i = λ i. S preslikavo, ki je na tem mestu ne bomo podrobneje definirali, lahko vektor preslikamo v matrični stolpec, katerega koeficienti so skalarji λ i. Torej razvoj vektorja v po bazi B lahko zapišemo kot λ 1 λ v =.. λ n Razvoj vektorjev po bazi nam velikokrat pomaga pri nadaljnjem reševanju problemov. Največkrat uporabimo ortonormirano bazo s spretno izbranimi baznimi vektorji. 6 Fourierova transformacija Denimo, da imamo vektorski prostor gladkih kompleksnih funkcij, torej funkcij f : C C, ki so neskončnokrat odvedljive. Skalarni produkt funkcij tedaj definiramo kot določen integral produkta funkcij: f, g = π 0 f(x)g(x)dx. Na tem mestu bi bilo dobro preveriti, če je tako definiran skalarni produkt dobro definiran (ali veljajo vse lastnosti skalarnega produkta), vendar bomo v tem diplomskem delu to kar privzeli. 14

Seveda tudi za vektorski prostor funkcij lahko najdemo bazo, torej nabor takih funkcij, s katerimi bomo lahko opisali vse ostale funkcije. Ker ima prostor vseh gladkih kompleksnih funkcij neskončno dimenzijo, baza vsebuje neskončno mnogo baznih vektorjev. Fourierovo transformacijo si lahko predstavljamo kot funkcijo, katere vhodni podatek je sadni napitek, rezultat pa recept, koliko posameznega sadja vsebuje. Posamezne vrste sadja predstavljajo bazo vektorskega prostora, po kateri razvijemo posmezen napitek, s čimer bomo točno vedeli iz koliko enot posameznega sadja je bil napitek pripravljen. V matematičnih besedah, Fourierova transformacija kot vhodni podatek dobi neko funkcijo in jo nato razvije po neki bazi. Bazo sestavljajo linearno neodvisne funkcije, razvoj po bazi pa nam praktično pove, koliko posamezne bazne funkcije vsebuje originalna funkcija. Fourierova transformacija za bazne vektorje uporablja sinusne in kosinusne funkcije, saj so te med seboj paroma pravokotne. To lahko pokažemo s skalarnim produktom, a ker za nadaljevanje našega diplomskega dela dokaz ni pomemben, ga bomo izpustili. Vsako dano funkcijo torej s Fourierovo transformacijo zapišemo kot vsoto sinusnih in kosinusnih funkcij. Nad poljem realnih števil bi izgledala tako: f(x) = (λ t1 sin(tx) + λ t cos tx). t=0 V kompleksnem prostoru pa je pripravna funkcija e ik = cos k + i sin k. Tako je nad poljem kompleksnih števil Fourierova transformacija definirana kot: f(x) = f(t)e πitx dt. Zgornja enačba izhaja iz študije Fourierovih vrst, ki obravnava periodične funkcije in jih zapiše kot vsoto sinusnih in kosinusnih funkcij. Fourierova transformacija dopušča, da je perioda neskončno velika. 15

Ker v praksi seveda ne moremo izračunati funkcij v vseh neskončno mnogo točkah in zapisati funkcije kot vsote neskončno mnogo funkcij, uporabimo diskretno Fourierovo transformacijo, ki preslika vektor x 0, x 1,..., x N 1 dolžine N v vektor y 0, y 1,..., y N 1, kjer je Definirajmo ω = e πi N in dobimo ω je N-ti koren enote, saj zanjo velja y k = 1 N 1 kn πi x n e N. N n=0 y k = 1 N 1 x n ω kn. N n=0 ω N = (e πi N ) N = e πi = cos(π) + i sin(π) = 1, in ω k 1 za 0 < k < N. Norma vektorja ω je ω = (e πi N ) = e N πi = 1. Diskretno Fourierovo transformacijo na vektorjih dolžine N lahko zapišemo tudi kot matriko velikosti N N, katere elementi so ( ωjk N ) j,k=0,1,...,n 1 : DF T N = 1 N 1 1 1 1 1 1 ω ω ω 3 ω N 1 1 ω ω 4 ω 6 ω (N 1) 1 ω 3 ω 6 ω 9 ω 3(N 1)......... 1 ω N 1 ω (N 1) ω 3(N 1) ω (N 1) Oglejmo si primer diskretne Fourierove transformacije na vektorjih dolžine in na vektorjih dolžine 4. 16

N = ω = e πi = e πi = cos(πi) + i sin(πi) = 1 Predstavimo jo lahko s kvadratno matriko velikosti : DF T = 1 1 1 = 1 1 1. 1 ω 1 1 Vidimo torej, da je Hadamardova transformacija le poseben primer Fourierove. N = 4 ω = e πi 4 = e πi = cos(πi) + i sin(πi) = i Predstavimo jo lahko s kvadratno matriko velikosti 4 4 : 1 1 1 1 1 1 1 1 DF T 4 = 1 1 ω ω ω 3 1 ω ω 4 ω 6 = 1 1 i 1 i. 1 1 1 1 1 ω 3 ω 6 ω 9 1 i 1 i 6.1 Kvantna Fourierova transformacija Fourierova transformacija ima dve lepi lastnosti, ki si jih bomo ogledali kar na kvantni Fourierovi transformaciji. Prva lastnost je ta, da fazni zamik vhodnega podatka ne vpliva na končen rezultat. Imejmo vhodno superpozicijo N stanj α 0 0 + α 1 1 + α +... + α N 1 N 1 17

in ustrezno Fourierovo transformacijo dimenzije N, ki jo predstavimo z matriko: 1 1 1 1 1 1 ω ω QF T N = 1 ω 3 ω N 1 1 ω N ω 4 ω 6 ω (N 1)......... 1 ω N 1 ω (N 1) ω 3(N 1) ω (N 1) Na vhodnem podatku izvedemo Fourierovo transformacijo in dobimo: 1 1 1 1 1 α 0 1 ω ω QF T N = 1 ω 3 ω N 1 α 1 1 ω N ω 4 ω 6 ω (N 1) α =......... 1 ω N 1 ω (N 1) ω 3(N 1) ω (N 1) α N 1 β 0 β 1 β. β N 1. Torej je nova superpozicija β 0 0 + β 1 1 + β +... + β N 1 N 1. Ko stanje superpozicije izmerimo, bo stanje sistema j z verjetnostjo β j. Naredimo sedaj Fourierovo transformacijo na vhodnem podatku, ki se od prejšnjega razlikuje po tem, da je zamaknjen v desno: α N 1 0 + α 0 1 + α 1 +... + α N N 1. Izhodni podatek je sedaj: 1 1 1 1 1 1 ω ω QF T N = 1 ω 3 ω N 1 1 ω N ω 4 ω 6 ω (N 1)........ 1 ω N 1 ω (N 1) ω 3(N 1) ω (N 1) α N 1 α 0 α 1. α N β 0 ωβ 1 = ω β.. ω N 1 β N 1 Kaj smo torej dobili? Zamaknili smo vhodni podatek, dobili pa smo praktično enak rezultat, le da so amplitude pomnožene. Spomnimo se, ω k so koreni enote 18

in imajo normo 1, zato ob merjenju sistema kubitov dobimo stanje j z enako verjetnostjo kot prej, β j. Ko torej želimo izvesti Fourierovo transformacijo, ni pomembno kako zamaknemo vhodni podatek, saj to ne bo vplivalo na porazdelitev verjetnosti. Druga lepa lastnost Fourierove transformacije se nanaša na periodične funkcije. Denimo, da je naša vhodna superpozicija M stanj periodična s periodo r, torej je enaka, če jo zamaknemo za r amplitud v levo ali desno. Ko naredimo kvantno Fourierovo transformacijo na tej periodični funkciji, se izkaže, da je transformacija neničelna le na večkratnikih M r, torej na 0, M r, M r Zapišimo to bolj formalno: Na naši vhodni superpoziciji,..., M M r. α 0 0 + α 1 1 +... α r 1 r 1 + α 0 r + α 1 r + 1 +... α r M + α r 1 M 1 naredimo kvantno Fourierovo transformacijo in dobimo superpozicijo β 0 0 + β M M r r + β M M r r +... + β M M M M r r. Zaradi zapletenosti dokaza te lastnosti ne bomo dokazovali. Oglejmo pa si poseben primer in pokažimo, da zanj velja ta lastnost Fourierove transformacije, saj bomo ravno tak primer srečali pri Shorovem algoritmu. Naj bo naša vhodna superpozicija z amplitudami α j periodična s periodo r. Dodatno, α j naj bo neničelna le za j {r, r, 3r,..., M r}. Teh neničelnih amplitud je natančno M. Če želimo superpozicijo normalizirati in dobiti enotski vektor, mora biti amplituda vseh r neničelnih komponent enaka 1 M r = r M. Kvantna Fourierova transformacija dimenzije M to superpozicijo preslika v superpozicijo z amplitudami β j. Tudi nova superpozicija je periodična, vendar s 19

periodo M, saj so amplitude neničelne le za stanja k M. Neničelne amplitude so r r sedaj j {0, M, M, 3 M,...(r 1) M }. In ker jih je natanko r, mora biti β r r r r j za vsak 1 tak j natanko. r Preverimo, da je to res. Zapišimo obe superpoziciji z enačbami. Vhodna superpozicija je: izhodna pa r M M 1 j=0 M r 1 jr, j=0 = β j j. Zanimajo nas amplitude β j. Ko je j večkratnik M r, je β km r = M r 1 j=0 r M 1 M ω jr km r = M r 1 j=0 r M 1 M ω jkm. Enakost smo dobili iz produkta km r -te vrstice matrike kvantne Fourierove transformacije in matričnega stolpca vhodne superpozicije. Ker so elementi vrstic k r, r,..., M r v stolpcu vhodne superpozicije enaki 0, bo neničelen del vsote vsak produkt elementa ω km r jr (element v km r -ti vrstici in j r-tem stolpcu) z j r-tim elementom stolpca vhodne superpozicije, ki pa so vsi enaki r. Ker je M ω km = (e πi M ) km = e kπi = 1, je ω (jk)m = 1, in so zato vse amplitude β km r enake. Ker jih je natanko M r, dobimo: β km r = M r r M = r r = 1 r. Ker je za km faktor k med 0 in r 1, je amplitud β km natanko r. Teh r komponent r r skupaj že tvori enotski vektor (dolžina je 1), tako da morajo biti vse amplitude β j, za katere j ni večkratnik M, enak 0. Torej smo dobili celotno izhodno superpozicijo. r Kvantna Fourierova transformacija je pravzaprav diskretna Fourierova transformacija, ki jo izvajamo na kvantnih računalnikih. Uporabimo jo na stanju sistema 0

α 0 0 + α 1 1 +... + α k k in dobimo novo stanje β 0 0 + β 1 1 +... + β k k. Oglejmo si primer. Imejmo sistem dveh kubitov in njegovo stanje zapišimo kot α 0 0 + α 1 1 + α + α 3 3. Denimo, da je bil sistem pred uporabo Fourierove transformacije v stanju. 1 1 1 1 0 1 QF T 4 = 1 1 i 1 i 0 = 1 1 1 1 1 1 1. 1 1 i 1 i 0 1 Končno stanje sistema je torej 1 0 1 1 + 1 1 3. Ko klasično računamo rezultat diskretne Fourierove transformacije na vektorju dolžine N, naredimo N operacij za vsako komponento izhodnega vektorja. Ker je teh komponent N, skupaj naredimo N N = N operacij. Hitra Fourierova transformacija je algoritem, ki se izvaja na klasičnih računalnikih za predelavo digitalnih signalov, katerega časovna zahtevnost je O(N log N). V klasičnem računalniku je vhodni podatek torej kompleksni vektor dolžine N. V kvantnem računalniku pa je vstopni vektor superpozicija stanj sistema n kubitov, ki skupaj tvorijo n = N možnih stanj. Zanima nas, koliko kvantnih vrat potrebujemo za izračun Fourierove transformacije, kar nam pove tudi časovno zahtevnost. Izkaže se, da je časovna zahtevnost kvantne Fourierove transformacije O(n ). Časovna zahtevnost se je tako eksponentno zmanjšala. V kvantnih računalnikih je možno vezje diskretne Fourierove transformacije učinkovito sestaviti z zaporedjem Hadamardovih vrat. Vezje temelji na podobni ideji kot hitra Fourierova transformacija in je v osnovi rekurzivno, pri čemer je Hadamardova transformacija funkcija, ki jo izvedemo ob koncu rekurzije, ko računamo Fourierovo transformacijo za en sam bit. Zaradi preproste izvedbe in splošne uporabnosti je Fourierova transformacija eden od osnovnih gradnikov kvantnih računalnikov. 1

Del IV Shorov algoritem Shorov algoritem rešuje problem faktoriziranja števil. Denimo, da imamo število N, recimo 60, in ga želimo zapisati kot produkt praštevil. Za naše število je to N = 60 = 3 5, v splošnem pa zapišemo N = p e 1 1 p e...p e k k. Najzanimivejši primer faktorizacije je, ko je N produkt dveh zelo velikih praštevil P in Q, ki sta si po dolžini precej podobni. Tak primer se uporablja pri šifriranju RSA, ki je najbolj razširjeno šifriranje javnega ključa. RSA namreč izkorišča težavnost faktoriziranja (velikih) števil. Do sedaj najhitrejši algoritmi na klasičnem računalniku delujejo v eksponentnem času: če je n dolžina števila N v bitih, je časovna zahtevnost običajnih algoritmov O( n ). Časovna zahtevnost najboljših, močno izboljšanih algoritmov, ki upoštevajo ogromno ugotovitev teorije števil in različnih tehnik, je še vedno O( 3 n). S temi algoritmi je zato trenutno nemogoče v doglednem času razstaviti števila, ki so dolga npr. 1000 bitov in več. V zadnjem delu diplomskega dela bomo najprej ponovili modularno aritmetiko. Nato si bomo pogledali način faktorizacije števil, ki ga uporablja Shorov algoritem in nazadnje še podrobno opisali algoritem sam. Razdelek je povzet po [], [4] in [6]. 7 Modularna aritmetika Da bomo razumeli, kako kvantni računalniki rešujejo problem faktorizacije, si najprej poglejmo elementarno modularno aritmetiko, oz. računanje po modulu. Za lažje razumevanje si bomo v razdelku pomagali s primerom, denimo N = 1. Ko rečemo, da je a kongruentno številu b po modulu N, kar zapišemo a b(modn), pomeni, da je a ostanek pri deljenju števila b s številom N in lahko pišemo b = qn + a.

V primeru N = 1 je tako recimo 3 4(mod1). 1 po modulu 1 pa je 0, saj je 1 1 + ( 1) 0. V modularni aritmetiki lahko seštevamo dve števili: 4 + 35(mod1) 3 + 14 17(mod1), ali množimo: 4 30(mod1) 3 9 7 6(mod1). Te operacije na klasičnem računalniku lahko izvajamo zelo hitro, saj nas pravzaprav zanima ostanek pri deljenju z N. Operacije v modularni aritmetiki torej lahko izvajamo učinkovito. Številom lahko poiščemo največjega skupnega delitelja. Največji skupni delitelj dveh števil lahko dobimo tako, da vsakega zapišemo kot produkt samih praštevil in vzamemo tiste, ki so skupne, ter jih zmnožimo. Lahko pa to storimo tudi brez faktorizacije števil in sicer z Evklidovim algoritmom. Postopek na konkretnem primeru je sledeč. Želimo najti največji skupni delitelj števil 1 in 15. 1 delimo s 15 in dobimo: 1 = 1 15 + 6 Deljenje ponovimo s številoma 15 in 6: 15 = 6 + 3. Tokrat ponovimo s številoma 6 in 3: 6 = 3 + 0. 3 je zadnji neničelni ostanek pri deljenju, zatorej je to rezultat iskanja največjega skupnega delitelja. Kljub temu, da ne znamo učinkovito faktorizirati števil na klasičnem računalniku, lahko najdemo največjega skupnega delitelja. 3

8 Faktorizacija Vrnimo se na naš primer N = 1. Problem faktorizacije prevedemo na problem iskanja rešitve enačbe x = 1(mod1). Iščemo torej tako število po modulu 1, katerega kvadrat je enak 1 po modulu 1. Rešitev te enačbe je več, najpreprostejša je seveda x = 1. Druga rešitev je 1. Preverimo. 1(modN) N 1(modN) ( 1) (modn) (N 1) (modn) N N+1(modN) N(N )+1(modN) = 1 V našem konkretnem primeru je 1 0(mod1) in tako 0 0 = 400 1(mod1). Ti dve rešitvi sta trivialni, nista pa to edini rešitvi. Drugim rešitvam rečemo netrivialni koren enice po modulu N. V dotičnem primeru je taka rešitev npr. x = 8, saj x = 8 8 = 64(mod1) 1(mod1). Torej: 8 1(mod1), 8 1 0(mod1). Opazimo, da pri deljenju števila 8 1 s številom 1 dobimo ostanek 0. Torej 1 deli 8 1, kar pa je enako (8 1)(8 + 1). Vendar 1 ne deli niti 8 1 niti 8 + 1. Edini način, kako je torej možno, da 1 deli 8 1 je, če faktoriziramo 1 in dobimo 1 = 3 7. Pri tem eden od teh faktorjev deli 8 1, drugi pa 8 + 1. (Pra)faktorje lahko torej pridobimo tako, da izračunamo največji skupni delitelj števil 1 in 8-1 ter največji skupni delitelj števil 1 in 8+1. Največja skupna delitelja sta torej D(1, 7) = 7 in D(1, 9) = 3. Tako lahko faktoriziramo število že samo z izračunom netrivialnega korena 1 po modulu 1. V našem primeru pa 8 ni edina rešitev, druga je recimo -8, kar je enako 13 po modulu 1. 13 169 1(mod1). 4

Če torej najdemo tako število x ±1, katerega kvadrat je x = 1(modN), bomo prišli do rešitve, saj vemo, da N deli (x + 1)(x 1) in hkrati N ne deli x + 1 oz x 1 (saj x = ±1 0(mod1)). To je možno samo v primeru, ko del števila N deli x + 1 in drugi del deli x 1. Torej, če izračunamo največja skupna delitelja števil D = (N, x ± 1), dobimo netrivialna delitelja števila N (torej sta različna od 1 in N). Netrivialni koren števila N najdemo na sledeči način. Naj bo N še vedno 1 in izberimo poljubno število x, denimo x =. Zapišimo tabelo potenc števila po modulu 1. 0 1(mod1) 1 (mod1) 4(mod1) 3 8(mod1) 4 16(mod1) 5 11(mod1) 6 1(mod1) 6 lahko zapišemo tudi kot 3 3, torej velja ( 3 ) 1(mod1). Dobili smo, da je 3 = 8 netrivialni koren enote. V splošnem izberemo naključen x in izračunamo njegove potence vse do prvega takega r, da je x r 1(modN). Temu r rečemo red števila x po modulu N. Če imamo srečo, je r sod, zato lahko pišemo (x r/ ) 1(modN), in hkrati velja x r/ ±1(modN). Tako dobimo netrivialen koren 1 po modulu N. Obstaja lema, ki trdi, da če naključno izberemo x med 0 in N 1 in je to število tuje N (D(x, N) = 1), imamo natanko polovico možnosti, da bomo imeli srečo in bomo s postopkom dobili kvadratni koren enote (r bo sod in x r/ ±1). Če ugotovimo, da je D(x, N) 1, smo pravzaprav imeli še večjo srečo, saj smo tako že dobili enega od faktorjev števila N. 5

Naj bo spet N = 1 in x =. Definirajmo funkcijo f(a) = x a (modn) in razširimo prejšnjo tabelo: a 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 f(a) 1 4 8 16 11 1 4 8 16 11 1 4 8 16 f(a) je torej periodična funkcija. V našem primeru je perioda r enaka 6. Naš problem sedaj lahko zmanjšamo na iskanje periode dotične funkcije, saj bomo s periodo (naključno) izbranega števila x enostavno prišli do rešitve našega osnovnega problema. Ta naloga pa ni tako enostavna, kot se zdi na prvi pogled, saj je velikost periode lahko primerljiva z velikostjo števila N. Če je N sestavljeno iz 1000 števk, je lahko perioda eksponentno velika. Vendar za kvantne računalnike to ni težava, saj lahko to periodo najde v polinomskem času, ne da bi si prej eksplicitno izračunali zgornjo tabelo potenc. 8.1 Iskanje periode funkcije Imamo periodično funkcijo, ki slika števila {0, 1,..., M 1} v neko podmnožico S, s periodo r. Ker slikamo M števil in je perioda r, je število period ravno M r. Za iskanje periode funkcije zahtevamo dve lastnosti. Prva je, da je na vsakem intervalu to injektivna funkcija, torej da se vrednosti funkcije na vsaki od period ne ponavljajo. Druga lastnost, ki jo zahtevamo, pa je, da r deli M. Ta lastnost ni potrebna, če imamo funkcijo z veliko periodami, torej M r mnogo večji od r. r, ali drugače M je V kvantnem računalniku je funkcija podana na naslednji način. Imamo vrata C f, katere vhodni podatki so x in izhodni f(x). To je povsem klasično vezje. Denimo, da ima vhodni podatek velikost M, ki je število s 1000 števkami. Torej je M 10 1000. r naj bo približno M in zato število s 500 števkami, kar je še vedno ogromna številka. Če bi želeli najti periodo r na klasičen način, bi lahko recimo izbirali naključne vhodne podatke, dokler ne bi dobili nekega vzorca. Do- 6

kler ne dobimo dveh enakih rezultatov funkcije za dva različna vhodna podatka o sami periodi nimamo prav nobenega podatka, saj sami rezultati funkcije navadno nimajo drugega vzorca, kot da se v nekem trenutku ponovijo. Pri tem, koliko časa potrebujemo, da na tak način najdemo vzorec (dobimo isti vrednosti funkcije za različna vhodna podatka), nam pomaga rojstnodnevni paradoks. Lahko, da bomo potrebovali r vhodnih podatkov, da bomo našli vzorec, vendar se izkaže, da jih bo z verjetnostjo 1 dovolj že r. Vendar pa je to še vedno zelo veliko število, saj je v našem primeru sestavljeno iz 50 števk, kar bi pomenilo, da potrebujemo približno 10 50 naključno izbranih vhodnih podatkov. To je seveda preveč, kar nam onemogoča, da bi periodo funkcije lahko poiskali na klasičen način. Kvantni algoritem najprej pretvori klasično vezje v kvantnega. Kot vhodne podatke vzame x in ničle 0, izhodni podatki pa so x in f(x). To deluje tudi na superpoziciji. (Dokaza, da je možno vsako klasično vezje pretvoriti v kvantnega, v diplomi ne bomo pokazali, temelji pa na tem, da je možno vsa klasična vrata nadomestiti z enimi samimi (NAND), ta pa lahko na primeren način nadomestimo s kvantnimi vrati.) Priredimo enakomerno superpozicijo na x (amplitude so enake) in potem poženemo vezje. Tako za izhodni podatek dobimo normirano vsoto M 1 1 x f(x). M x=0 V naslednjem koraku izmerimo izhodne podatke f(x) v drugem registru. izmerimo, dobimo naključno vrednost f(a) = c za nek a, oz. superpozicijo Ko M 1 1 α x f(x), M x=0 kjer je α x neničeln le za tiste x, za katere je f(x) = c in je za vse te x enak. 7

Namreč, ker sta registra x in f(x) prepletena, tudi x preide v superpozicijo tistih stanj x, za katera je f(a) = c. Spomnimo se, da zamik vhodne superpozicije ne vpliva na izhodni podatek. Zato lahko to periodično superpozicijo v nadaljnjem razmišljanju brez izgube splošnosti zamaknemo v levo ali desno, tako da bo naša prva neničelna amplituda α 0. Seveda se perioda pri tem ohranja. Ta zamik storimo zato, da bodo naše neničelne amlitude ravno večkratniki periode. Superpozicija je sedaj r M M r 1 jr. j=0 Sedaj lahko naredimo Fourierovo vzorčenje, to je izvedemo Fourierovo transformacijo in izmerimo stanje. Rezultat Fourierovega merjenja je naključen večkratnik M. Ko večkrat poženemo eksperiment, dobimo različne večkratnike. Z uporabo r Evklidovega algoritma za računanje največjega skupnega delitelja teh rezultatov dobimo M r. Sedaj preprosto dobimo r, tako da M delimo z M r. Poglejmo, kako izgleda kvantno vezje, ki ustreza zgornjemu algoritmu za iskanje periode funkcije. Začnemo s samimi 0 in izvedemo kvantno Fourierovo transformacijo, ki nam vrne enakomerno superpozicijo 1 M M 1 x=0 x. Nato na vratih U f uporabimo funkcijo f, ki nam preslika trenutno superpozicijo v prvem registru v superpozicijo 1 M 1 M x=0 x f(x). Sedaj lahko izmerimo rezultat, ki je shranjen v drugem registru, ni pa to pomembno, saj bo končni rezultat v vsakem primeru enak. Gre za princip odloženega merjenja, ki pove, da dokler ni nobene komunikacije med kubiti v prvem in drugem registru, ni pomembno ali izmerimo kubite v drugem registru ali ne. V prvem registru bomo vselej dobili enak rezultat. Denimo, da vseeno iz- 8

merimo rezultat funkcije in dobimo f(a). Sedaj naredimo Fourierovo vzorčenje na prvem registru, kjer imamo periodično superpozicijo. Ker fazni zamik vhodnega podatka ne vpliva na končni rezultat, lahko privzamemo, da smo ga zamaknili in kot rezultat merjenja dobili f(0). Ko izvedemo Fourierovo vzorčenje, dobimo naključni večkratnik M. Celoten postopek večkrat ponovimo in izračunamo največji r skupni delitelj rezultatov in tako dobimo M. Iz tega preprosto dobimo periodo r, r tako da M delimo z M. r Pomislimo še na primer, ko r ne deli M. Predpostavljamo, da je M dovolj velik, denimo večji od r. Drugače, M r > r, kar pomeni, da je število period večji od same periode. V tem primeru vezje ostane popolnoma enako. Za končen rezultat L velja, da je L M t r, za neko celo število t. L je rezultat algoritma, M poznamo, r bi radi poznali, t pa je neka neznana spremenljivka. Na tem mestu uporabimo, da je t r približek za L M najboljši s tako majhnim imenovalcem, kot je r. Torej uporabimo dejstvo, da je r zelo majhen, manjši od M. Tako lahko pokažemo, da je t r najboljši tak približek, ki ga lahko dobimo za L M, kjer je imenovalec manjši od M. Glede na to, lahko razstavimo t r z uporabo verižnih ulomkov, to pa lahko zelo hitro naredimo tudi na klasičnih računalnikih. Torej lahko najdemo periodo funkcije tudi takrat, ko r ne deli M. 8. Algoritem Sedaj, ko imamo vso potrebno znanje, poglejmo, kako Shorov algoritem v celoti deluje. V pomoč nam bo primer N = 1 in x = skupaj s tabelo a 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 f(a) 1 4 8 16 11 1 4 8 16 11 1 4 8 16. 9

Algoritem začnemo z vhodnim podatkom, ki je število, ki ga želimo faktorizirati. Izberemo naključno število 1 < x < N, denimo x =. V prvi register naložimo same ničle. Na tem mestu moramo izbrati tak M, da bomo imeli večjo verjetnost, da bo naš algoritem uspešen. M moramo torej izbrati tako, da bo dovolj velik oz. M r > r, kjer je M r da zadosti pogojem iskanja periode, torej M > r oz. število ponovitev periode. Vendar o r vemo le to, da je manjši od N. Zato lahko vzamemo tak M, da bo zadostoval pogoju M > N. Za naš primer moramo torej vzeti M > 1 = 88, vzemimo M = 100. Na vhodnem podatku izvedemo kvantno Fourierovo transformacijo, ki nam kot rezultat vrne enakomerno superpozicijo stanj 0, 1,... M 1, v našem primeru je to 1 100 k. 100 Na tej superpoziciji izvedemo funkcijo f(a) = x a (modn) = a (mod1). Ustvarimo novo superpozicijo vezanih stanj k=0 1 M a f(a). M a=0 Sedaj iščemo periodo. Izmerimo stanje drugega registra, v katerem je shranjen rezultat funkcije f kot superpozicija stanj f(a), in dobimo neko vrednost, v našem primeru denimo f(a) = 4. Superpozicija vezanih stanj 1 M M a=0 a f(a se sedaj spremeni in postane superpozicija tistih stanj, katerih vrednosti funkcije f je 4. Takih stanj je natanko M, zato je amplituda vsakega možnega stanja enaka r r : M 6 6 6 100 4 + 100 7 4 +... + 100 997 4. 30

Torej je superpozicija prvega registra enaka 1001 a=0 α a a, kjer je α a neničeln za a =, 8, 14,..., 998. V naslednjem koraku naredimo Fourierovo vzorčenje na prvem registru. Uporabimo lastnost Fourierove transformacije, ki pravi, da zamik vhodnega podatka ne vpliva na končni rezultat in zamaknimo superpozicijo tako, da bo prva neničelna amplituda amplituda prvega stanja: 1001 a=0 α a a, kjer je α a neničeln za a = 0, 6, 1,..., 996. Na prvem registru izvedemo Fourierovo vzorčenje torej Fourierovo transformacijo in meritev. Kot smo videli pri poglavju o Fourierovi transformaciji, nam ta superpozicijo s periodo r preslika v superpozicijo s periodo M. V našem primeru tako dobimo novo superpozicijo r 1001 β a a, a=0 kjer je β a neničeln za a = 0, 167, 334, 501, 668, 835, kar so ravno večkratniki 100 6 = 167. Ko izmerimo register, dobimo torej nek večkratnik M, na primer 501. Ko ta r korak večkrat ponovimo, z Evklidovim algoritmom za iskanje največjega skupnega delitelja dobimo ravno M r računom: = 167. Sedaj lahko periodo r izračunamo s preprostim M : M r = 100 : 167 = 6. Ko imamo periodo r funkcije f, preverimo, če je r sodo število in x r/ ±1(mod(N). Če to velja, se algoritem ustavi, razstavimo N in smo končali. V nasprotnem primeru poskusimo ponovno. Ker vemo, da bomo uspeli z verjetnostjo 1, nam algoritma ne bo potrebno velikokrat ponoviti. V našem primeru se bomo ustavili, saj je 6 sodo število in 3 = 8 ±1(mod1). Razstavimo število 1 z iskanjem največjega skupnega delitelja: D(1, 8 1) = 7, D(1, 8 + 1) = 3. 31

Del V Zaključek V diplomskem delu smo korak za korakom gradili osnovno znanje, ki smo ga potrebovali, da smo lahko dokaj natančno opisali Shorov algoritem za faktorizacijo števil. Čeprav lahko trdimo, da natančno vemo, kako deluje algoritem, pa nimamo računalnika, na katerem bi ga poganjali. Shorov algoritem pa ni edini algoritem za kvantne računalnike, obstaja jih še mnogo več. Čeprav tudi o sestavi in delovanju kvantnega računalnika vemo že veliko, je težava v tem, da še nismo odkrili materiala, v katerem bi se osnovni delec, ki bi predstavljal kubit, obdržal. Vendar s tem, da teorija prehiti praktično rabo, matematika nikoli ni imela problemov. 3

Literatura [1] Malnič, A. (013). Zapiski pri predmetu algebrske strukture. Ljubljana: Pedagoška fakulteta. [] Nielsen, M. in Chuang, I. (010). Quantum Computation and Quantum Information. New York: Cambridge University Press. [3] Slapar, M. (01). Osnove kompleksne analize. Ljubljana: Pedagoška fakulteta. [4] Vazirani, U. (013). Quantum Mechanics and Quantum Computation. Pridobljeno 7. 7. 016, s https://courses.edx.org/. [5] Discrete Fourier transform.(017). Pridobljeno 8. 8. 017, s https://en.wikipedia.org/wiki/discrete Fourier transform. [6] To factorize n, find a non-trivial square root of 1 mod n.(009). Tricki. Pridobljeno 1. 8. 016, s http://www.tricki.org/. 33