Kvantmekanisk simulering av enelektron- atomen på en emulerad kvantdator Kandidatarbete på civilingenjörsprogrammet i Teknisk Fysik ADEL HASIC GUSTAF SJÖSTEN CARL ANDERSSON SIMON STEFANUS JACOBSSON Institutionen för fysik CHALMERS TEKNISKA HÖGSKOLA Göteborg, Sverige 2019 Kvantmekanisk simulering av enelektronatomen på en emulerad kvantdator ADEL HASIC GUSTAF SJÖSTEN CARL ANDERSSON SIMON STEFANUS JACOBSSON © ADEL HASIC, GUSTAF SJÖSTEN, CARL ANDERSSON & SIMON STEFANUS JACOBSSON, 2019. Handledare: Christian Forssén & Andreas Ekström, Institutionen för fysik Examinator: Jan Swenson, Institutionen för fysik Kandidatarbete 2019: TIFX04-19-80 Institutionen för fysik Avdelningen för subatomär fysik och plasmafysik Teoretisk subatomär fysik Chalmers Tekniska Högskola 412 96 Göteborg Telefon +46 31 772 1000 Omslag: Vågfunktion för enelektronatomens grundtillstånd utvecklad i en harmonisk oscillator-bas. De streckade linjerna är de enskilda termerna som adderas ihop till den heldragna linjen. Typsatt i LATEX Göteborg, Sverige 2019 ii Sammandrag I den här rapporten undersöker vi ett enkelt kvantmekaniskt system som simu- leras på en emulerad kvantdator. Vi uttrycker ett enelektronsystem i en harmonisk oscillator-bas och söker efter dess grundtillståndsenergi. Metoderna för att hitta energin består av parametersvep samt algoritmen Variational Quantum Eigensolver (VQE) med COBYLA som optimeringsalgoritm. Simuleringarna körs på Rigettis emulerade kvantdator. Vi analyserar en ansats av typen Unitary Coupled Cluster (UCC) för systemets vågfunktion och jämför denna med en enklare ansats. Slut- ligen jämförs den uppskattade grundtillståndsenergin med en referenslösning. Ut- över detta applicerar vi även en brusmodell för att undersöka resultatens känslighet för kvantmekaniskt brus. Vi finner att optimering är en bättre metod än parameter- svep när Hamiltonianen utvecklas i ett större antal basvektorer, men optimerings- problemet i sig blir för komplext för ett stort antal basvektorer. Vidare antyder våra simuleringar att känsligheten för brus ökar med antalet grindar hos en specifik vågfunktionsansats. Abstract In this report, we investigate a simple quantum mechanical system simulated on an emulated quantum computer. We express a single electron system in a harmo- nic oscillator basis and search for its ground state energy. The method for finding the energy consists of parameter sweeps and the algorithm Variational Quantum Eigensolver (VQE) using COBYLA as the optimization algorithm. The simulations are run on an emulated quantum machine created by Rigetti. We analyze a Unitary Coupled Cluster (UCC) ansatz for the system’s wave function and compare it with a simpler ansatz. Finally, the estimated ground state energy is compared with a refe- rence solution. In addition, we also apply a noise model to investigate the sensitivity of our results subject to quantum mechanical noise. We find that optimization is a better method than parameter sweep when the Hamiltonian is expanded in a larger number of basis vectors, but the optimization problem in itself becomes too difficult to solve as the number of basis vector increases. Furthermore, the simulations imply that the sensitivity to noise increases with the number of gates in a particular wave function ansatz. Sökord: kvantdator, kvantbit, enelektronatom, VQE, COBYLA, UCC, brus. Keywords: quantum computer, qubit, one electron atom, VQE, COBYLA, UCC, gate noise, measurement noise. iii Förord Vi vill rikta ett stort tack till våra handledare, Christian och Andreas, som gav oss möjligheten att skriva detta oerhört intressanta och engagerande kandidatarbete. Göteborg, maj 2019 iv Innehåll 1 Inledning 1 2 Teori 2 2.1 Enelektronsystemets Hamiltonian . . . . . . . . . . . . . . . . . . . . 2 2.1.1 Hamiltonianens matriselement . . . . . . . . . . . . . . . . . . 3 2.1.2 Jordan-Wignertransformation och spinnformalism . . . . . . . 4 2.2 Kvantmekaniska och klassiska datorer . . . . . . . . . . . . . . . . . . 5 2.2.1 Informationshantering i datorer . . . . . . . . . . . . . . . . . 5 2.2.2 Brus i klassiska respektive kvantmekaniska datorer . . . . . . 6 3 Metod 8 3.1 Referenslösning för enelektronsystemet . . . . . . . . . . . . . . . . . 8 3.2 VQE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.1 Vågfunktionsansatser . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.2 Klassiska optimeringsalgoritmer . . . . . . . . . . . . . . . . . 12 3.2.3 Parametersvep . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Simulering på kvantdatorn . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.1 Pythonbibliotek . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.2 Programmering på kvantdatorn . . . . . . . . . . . . . . . . . 13 4 Resultat och Diskussion 19 4.1 Jämförelse mellan ansatser för parametersvep . . . . . . . . . . . . . 19 4.2 Jämförelse mellan parametersvep och optimering för UCC . . . . . . 23 4.3 Undersökningar av mät- och grindbrus . . . . . . . . . . . . . . . . . 26 5 Slutsatser och vidare undersökningar 29 A Test av fermioniska kanoniska kommutationsrelationer I B Analytiskt beräknad Hamiltonian med två basvektorer IV C Reella symmetriska matriser VI D Visualisering av grundtillståndet VII E Första exciterade tillståndet VIII v 1 Inledning Simuleringar av kvantmekaniska system på klassiska datorer har varit en känd utma- ning sedan 1980-talet. Som en lösning på detta föreslog Richard Feynman en modell av en ny typ av dator [1], en dator som skulle baseras på kvantmekaniska fenomen som till exempel sammanflätning och superposition. Denna dator förväntades kunna utföra kvantmekaniska simuleringar betydligt mer effektivt än klassiska datorer. Under mitten av 1990-talet byggde David Deutsch vidare på denna idé genom att bevisa att vissa problem som saknar effektiva lösningar på klassiska datorer kan lösas effektivt med kvantdatorer [2]. Detta var startskottet för upptäckten av en mängd problem lämpade för kvantdatorer — inte bara problem som är bundna till kvantfysik — utan även olösta sådana inom matematik och datavetenskap. Utöver simulering av starkt växelverkande kvantsystem finns exempelvis problem som Shors primtalsproblem, Grovers sökalgoritm, och diverse krypteringsproblem. Dagens kvantdatorer är dock långt ifrån tillräckligt effektiva för att vara allmänt tillgängliga och användbara [3]. En av utmaningarna är den stora kostnaden för att utveckla en fungerande kvantdator. Det är i nuläget främst forskningsgrupper på vissa universitet och stora tekniksatsande företag som har tillgång till egna kvant- datorer. Fler och fler av dessa organisationer öppnar dock upp för andra att använda sig av deras kvantdatorer, antingen via emulering eller till och med genom tillgång till maskinerna själva via olika molntjänster. Således finns det stor potential i en framtida, väl fungerade kvantdator även om det finns mycket kvar att undersöka. Exempelvis krävs fortsatta studier om vilka växelverkande kvantsystem som är lämpade att simulera på en kvantdator. Syftet med det här arbetet är att undersöka möjligheten att simulera ett sådant system. Speciellt simuleras ett enelektronsystem på en emulerad kvantdator. Meto- derna testas genom att 1) mäta systemets grundtillståndsenergi på den emulerade kvantdatorn, för att 2) jämföra denna med det värde på energin som beräknas nume- riskt på en klassisk dator. Utöver detta appliceras en brusmodell på simuleringarna för att undersöka känsligheten hos resultaten. Denna rapport är strukturerad enligt följande: I kapitel 2 presenterar vi ett ut- tryck för Hamiltonianen till det kvantsystem vi undersöker på en kvantbitkompatibel form. Vi presenterar även en modell för att undersöka brusets inverkan på simu- leringen. I kapitel 3 härleder vi en referenslösning till grundtillståndsenergin hos kvantsystemet som vi sedan kommer att jämföra våra resultat mot. Vi går även i mer detalj igenom algoritmen för simuleringen och sist presenterar vi de Pythonbibli- otek som vi har använt för att emulera kvantdatorn samt programmeringsaspekter. I kapitel 4 beskriver och diskuterar vi våra resultat för att till slut i kapitel 5 summera vad vi har kommit fram till och förslag på vidare studier. 1 2 Teori Följande kapitel inleds med en kvantmekanisk behandling av enelektronsystemet. Detta avsnitt innehåller även den teori som är nödvändig för att beskriva ett kvant- mekaniskt system på ett sätt som är kompatibelt med beräkningar på kvantbitar (kvantbitkompatibel representation). Avsnittet inleds med en allmän introduktion till andrakvantiseringsformalismen för att beskriva kvantmekaniska system. Det förs- ta delavsnittet beskriver val av bastillstånd samt beräkning av matriselementen för Hamiltonianen. Detta utgör det naturliga första steget mot en Hamiltonian kom- patibel med kvantbitberäkningar. Därefter beskrivs Jordan-Wignertransformationen som slutligen gör Hamiltonianen kvantbitkompatibel. Teorikapitlet avslutas med avsnitt 2.2 vars primära syfte är att introducera skillnaden mellan en klassisk respektive kvantmekanisk dator. Mer specifikt beskrivs hur information lagras och bearbetas i de två datortyperna; utöver detta introduceras både klassiskt och kvantmekaniskt brus. 2.1 Enelektronsystemets Hamiltonian Andrakvantiseringsformalismen förenklar studiet av flerkropparsproblem baserat på det faktum att partiklar är icke-urskiljbara. Den irrelevanta informationen om pre- cis vilken partikel som befinner sig i vilket tillstånd, som nödvändigtvis behandlas i förstakvantiseringsformalismen, tas ej hänsyn till med andrakvantisering, och istäl- let betraktas antalet partiklar i respektive tillstånd (jmf. Fermi-Dirac- respektive Einstein-Bosestatistik). Enpartikeltillstånd beskrivs generellt som element i ett Hilbertrum. För sy- stem beståendes av flera identiska partiklar utgörs tillståndsrummet av ett så kallat Fockrum. Fockrummet är en konstruktion av de ingående partiklarnas tillståndsrum. Tillstånden i Fockrummet skrivs som |n1, n2, n3, ...〉 , (2.1) och där varje ni är heltal som beskriver hur många partiklar som ockuperar just det tillståndet [4]. I vårt fall är alltså de olika basvektorerna i (2.1) de olika energiegen- tillstånden för den harmoniska oscillatorn, och för enpartikelsystem fås villkoret∑ i ni = 1. Vidare används operatorerna a†i (kreationsoperator) och ai (annihilationsoperator) som definieras utifrån deras inverkan på tillstånd i ett Fockrum a†i |..., ni, ...〉 = √ ni + 1 |..., ni + 1, ...〉 , (2.2) 2 2. Teori ai |..., ni, ...〉 = √ni |..., ni − 1, ...〉 . (2.3) Vid en närmare anblick av (2.2) och (2.3) framgår orsaken till namnen på operato- rerna; medan a†i skapar en partikel i ett givet tillstånd i Fockrummet så förintar ai en partikel i tillståndet. Vidare uppfyller dessa operatorer de fermioniska kommu- tationsrelationerna1 {ai, aj} = 0, {a†i , a † j} = 0, {ai, a†j} = δij. (2.4) Med andrakvantiseringsformalismen kan Hamiltonianen för ett enpartikelsy- stem uttryckas med hjälp av dessa operatorer enligt H = ∑ i,j 〈i|H |j〉 a†iaj, (2.5) där 〈i| och |j〉 är basvektorer i en godtycklig bas. För ett explicit uttryck av Ha- miltonianen i (2.5) krävs val av bastillstånd och beräkning av matriselementen Hij = 〈i|H |j〉 i denna bas, vilket är syftet med följande avsnitt. 2.1.1 Hamiltonianens matriselement Hamiltonianen i förstakvantiseringsform för ett enelektronsystem med kärnladdning Z (utan hänsyn till relativistiska effekter) ges av H = p2 2me − Ze2 r , (2.6) där p = −i~∇ är rörelsemängdsoperatorn,me är elektronens massa och e är elementar- laddningen. Schrödingerekvationen hörande till denna Hamiltonian är en av de få som är analytiskt lösbara, och en av anledningarna till att vi valt att simulera just enelektronatomen är att vi då kan jämföra resultatet med den faktiska grundtill- ståndsenergin. Uttrycket i (2.5) är ett helt exakt och allmänt uttryck för en Hamiltonian. Dock krävs för enelektronsystemet ett oändligdimensionellt Hilbertrum, och i praktiken behöver detta approximeras med ett ändligdimensionellt rum för att möjliggöra effektiv simulering. En möjlig bas är en ändlig uppsättning egenvektorer till den tredimensionella harmoniska oscillatorn2, |nlm〉 — se exempelvis Griffiths [5] för explicita uttryck. Vi kan införa den dimensionslösa parametern ε = √ ~ω/EB = √√√√~ω/ ( mee4 2~2 ) , (2.7) där ω är vinkelfrekvensen för den harmoniska oscillatorn och EB = 13.6 eV är enelektronatomens analytiskt framtagna grundtillståndsenergi i fallet Z = 1. Då fås en parameterberoende Hamiltonian för enelektronatomen på formen 1Operationen {·, ·} definieras av {A, B} = AB + BA och kallas antikommutatorn av A och B. 2Hamiltonianen för en harmonisk oscillator är p2 2me + 1 2 meω2r2. Potentialen är alltså proportionell mot r2. 3 2. Teori H(ε) = 1 2ε 2p2 − √ 2ε1 r . (2.8) För en elektron i grundtillståndet väljs specifikt de bastillstånd vars kvanttal uppfyller l = m = 0, eftersom vi letar efter grundtillståndsenergin. Tillstånd med nollskilt banrörelsemängdsmoment l 6= 0 är således inte intressanta. Matriselementen kan då beräknas för |n00〉 till [6] Hij(ε) = 〈i00|H(ε) |j00〉 =1 2ε 2  √ j(j + 1 2)δi,j−1 + (2j + 3 2)δij + √ (j + 1)(j + 3 2)δi,j+1  − √ 2ε i+j∑ k=0 B(i0, j0, k) k! Γ(k + 3 2) , (2.9) där B(n′l′, nl, p) = 1 2Γ(p+ 3 2) ∑ k cnlkcn′l′p−k− 1 2 (l+l′) är Brody-Moshinsky-koefficienterna som definieras i termer av koefficienterna cnlk = (−1)k k!  2(n!) Γ(n+ l + 3 2)  1 2 Γ(n+ l + 3 2) (n− k)!Γ(k + l + 3 2) . Sammantaget blir Hamiltonianen uttryckt i andrakvantisering H(ε) = ∑ i,j 〈i00|H(ε)|j00〉 a†iaj := ∑ i,j Hij(ε)a†iaj. (2.10) För att Hamiltonianen i (2.10), som beskriver ett fermionsystem, ska bli kvantbit- kompatibel behöver operatorerna a†i och aj uttryckas i termer av operatorer som opererar på kvantbitar. Kvantbitar kan representeras med spinn, varför a†i och ai behöver uttryckas i termer av spinnoperatorer. Ett sätt att åstadkomma detta är med en Jordan-Wignertransformation som beskrivs i detalj nästa avsnitt. 2.1.2 Jordan-Wignertransformation och spinnformalism Paulis exklusionsprincip medför att ett fermiontillstånd alltid är antingen ockuperat av precis en fermion, eller icke-ockuperat, vilket möjliggör beskrivningen av tillstån- det i termer av spinn. Med Jordan-Wignertransformationen åstadkoms detta för ett enpartikelsystem genom att representera icke-ockuperade tillstånd med spinn- nedtillstånd |0〉 7−→ |↓〉; ockuperade tillstånd representeras analogt enligt |1〉 7−→ |↑〉. Kreations- och annihilationsoperatorerna som införs i andrakvantiseringsforma- lismen representeras med spinn-stegoperatorer. Där ges avbildningarna av a† 7−→ S+ och a 7−→ S− vilket möjliggör användandet av matris-spinnformalismen för studiet av ett fermiontillstånd. Transformationen generaliseras enkelt till att representera flerkropparssystem med n partiklar genom att representera kreations- och annihila- tionsoperatorer för respektive tillstånd med en kedja (upprepad tensorprodukt) av spinnoperatorer. 4 2. Teori Konventionen för matris-spinnformalism är att behandla tillstånden med två- dimensionella vektorer och operatorer med matriser i basen för spinn längs z-riktningen. I denna bas gäller att |↑〉 7−→ [1 0]T samt |↓〉 7−→ [0 1]T [5]. För att behålla de fer- mioniska kommutationsrelationerna krävs utöver stegoperatorerna införandet av en fasoperator, och de slutgiltiga uttrycken för stegoperatorerna för spinntillstånd j ges av3 [7] a†j 7−→ S†j := 1 2 ∏ j>n Zn  (Xj − iYj ) , (2.11) aj 7−→ Sj := 1 2 ∏ j>n Zn  (Xj + iYj ) , (2.12) där Xq, Yq, Zq är Paulimatriserna verkandes på plats q i spinnkedjan och de ges av Xq = [ 0 1 1 0 ] , Yq = [ 0 −i i 0 ] , Zq = [ 1 0 0 −1 ] . I appendix A bevisas att dessa definitioner av skapelse- och föreintelseopera- torerna uppfyller den fermioniska algebran (2.4). Med denna transformationen kan Hamiltonianen från (2.5) uttryckas i termer av Paulimatriser [8]. Det slutgiltiga uttrycket för Hamiltonianen ges då av H(ε) = ∑ i,j 〈i00|H(ε)|j00〉S†iSj = ∑ i,j Hij(ε)S†iSj, (2.13) och denna form av Hamiltonianen är kvantbitkompatibel. Kvantbiten är alltså ett centralt begrepp och är ett av huvudämnena i nästa avsnitt. 2.2 Kvantmekaniska och klassiska datorer Både kvantmekaniska och klassiska datorer utför logiska eller algebraiska opera- tioner via instruktioner från ett program, och för att detta skall vara möjligt be- höver datorer kunna hantera information. En fundamental skillnad mellan de två datortyperna är just hur information hanteras. Det är denna skillnad som, för vissa typer av operationer, resulterar i kvantdatorns överlägsna effektivitet jämfört med en klassisk dator. Detta behandlas i delavsnitt 2.2.1. Det finns dock svagheter hos kvantdatorer som behöver beaktas. En av dessa är känsligheten för störningar från omgivningen. Medan en klassisk dator är relativt robust i denna bemärkelse kan brus utgöra ett stort problem för kvantdatorer. Hur dessa störningar kan modelleras och tas hänsyn till vid simuleringar beskrivs i delavsnitt 2.2.2. 2.2.1 Informationshantering i datorer En klassisk dator lagrar information i enheter av en bit, där varje bit kan anta värdet 0 eller 1. Utöver att lagra information behöver denna även kunna manipuleras för att 3Uttrycken i (2.11) respektive (2.12) definierar JW-transformen. 5 2. Teori utföra beräkningar, och detta görs möjligt genom så kallade logiska grindar. Klas- siska bitar och grindar går att manifestera genom exempelvis spänningsskillnader i elektriska kretsar eller med magneter och magnetfält. Både bitar och grindar har sina motsvarigheter i den kvantmekaniska datorn. En kvantdator lagrar information i kvantbitar (qubits, eller quantum bits, på engelska). Tillståndsrummet för en kvantbit spänns upp av två basvektorer, |0〉 och |1〉, och ett givet tillstånd kan befinna sig i en superposition av dessa. Operationer på kvant- bitar utförs med kvantmekaniska logiska grindar. Kvantmekaniska grindar är dock betydligt mer omfattande än klassiska grindar på grund av superpositionsprincipen. Utöver att, likt klassiska grindar, specificera hur en kvantmekanisk grind verkar på två ortogonala tillstånd |0〉 och |1〉 behöver också hänsyn tas till verkan på super- positioner av dessa, vilket helt saknar analogi till det klassiska fallet. Matematiskt betecknas tillstånden för kvantbitar som vektorer och grindar som unitära matriser som verkar på tillståndsvektorerna. Experimentella manifestationer av kvantbitar och kvantmekaniska grindar ligger utanför ramen av denna studie, men beskrivs bland annat i [9]. Däremot är det viktigt att nämna att kretsar som opererar i den kvantmekaniska regimen är känsliga för störningar [10, 11]. Vidare så kan ett klassiskt tillstånd klonas, eller kopieras, utan inverkan på tillståndet. Detsamma gäller dock inte för kvantmekaniska system, vilket samman- fattas i en sats som på engelska kallas ”No-cloning-theorem”. För att kopiera ett givet tillstånd behöver tillståndet i fråga avläsas, och detta bryter superpositionen och leder till en så kallad vågfunktionskollaps. Detta innebär en fundamental skill- nad mellan lagring av information i klassiska och kvantmekaniska datorer, nämligen att information som representeras av kvantmekaniska tillstånd inte kan klonas, eller med andra ord, säkerhetskopieras [5]. Kombinationen av detta resultat med känslig- heten för störningar hos kvantmekaniska kretsar, leder till att brus kan utgöra ett påtagligt problem hos kvantdatorer och bör således tas hänsyn till. 2.2.2 Brus i klassiska respektive kvantmekaniska datorer För att förklara brus i kvantdatorer inleds detta avsnitt med en kort beskrivning av motsvarande klassiska problem. Ett sätt att manifestera klassiska bitar är med stavmagneter, där orienteringen av syd- respektive nordpol representerar de två möjliga tillstånden. Operationer på bitarna kan åstadkommas genom applicering av magnetfält, vilket resulterar i att biten orienterar sig längs fältets riktning. I ett fullständigt isolerat system kommer biten alltid att kontrolleras helt av systemets magnetfält, men sådana slutna system tenderar att vara idealiserade specialfall. Bitens fysikaliska natur som ett magnetiskt objekt orsakar en potentiell växelverkan med alla yttre magnetfält som kan tänkas existera i dess omgivning. Även om vissa yttre fält kan undvikas återstår exempelvis jordens magnetfält. Precis som datorns fält kunde orientera stavmagneten finns det även en risk för att ett yttre fält orsakar en orientering av biten, varpå avläsningar av bitens information kommer att ge ett felaktigt utfall. Rent kvalitativt kan brus betraktas som ett mått på interaktioner mellan systemet och omvärlden. Det är inte alltid möjligt att skapa en fullständig fysikalisk beskrivning av de yttre magnetfälten, men med kunskap om hur frekvent felaktiga bitar uppstår kan 6 2. Teori bruset förenklat modelleras med en sannolikhet för att en given bit vid följande mätning ger ett inkorrekt utfall. Om störningarna är oberoende av varandra, vilket är ett rimligt antagande i de fall då bitarna är placerade med tillräckligt stort av- stånd, kan bruset modelleras som en Markovkedja. Detta kan i sin tur tolkas som applikationen av en grind på ett tillstånd som resulterar i en vändning av tillstån- det vilket kan representeras med en matris och en vektor. Med denna tolkning kan bruset simuleras genom att inkludera en viss sannolikhet för att brusgrinden skall verka på tillståndsbiten. I analogi med det klassiska fallet går det, i de fall då en exakt förklaring av bruset är alltför komplex, att konstruera en stokastisk modell för brus i kvant- datorer. Matematiskt kan detta åstadkommas genom att definiera unitära matriser, vilket alltså motsvarar kvantgrindar, som verkar på tillstånd. Dessa utgörs typiskt av rotationsmatriser med avseende på de definierade koordinataxlarna. Förhållandet mellan operationer, grindar och bitar finns beskrivet i avsnitt 2.2.1, och baserat på detta kan en icke-ideal kvantdator emuleras genom att inkludera sannolikheter för att olika typer av brus påverkar kvantbitarna. På så vis kvantifieras mängden brus med en sannolikhetsparameter som går att variera vid simulering [10, 12]. Programbiblioteken som används för simuleringarna (avsnitt 3.3.1) möjliggör implementation av flera olika typer av brus. De mest grundläggande brusen be- nämns grindbrus (engelska: gate noise) och mätbrus (engelska: measurement noise). Algoritmerna beskrivs i avsnitt 3.3.2. Här noteras enbart att modellen för båda brustyperna är baserad på sannolikheter för applikation av grindar (matriser) på kvantbitarna (vektorerna), i enlighet med vad som beskrivits i detta avsnitt. Bruset kan simuleras genom att dessa sannolikheter implementeras i programmet på den emulerade kvantdatorn. 7 3 Metod Här introduceras de metoder som används i studien. Kapitlet inleds genom att en referenslösning bestäms med numeriska metoder på en klassisk dator. Denna refe- renslösning kommer sedan användas som ett kriterium för att jämföra med resul- taten som vi erhåller på den emulerade kvantdatorn. Därefter presenteras VQE- algoritmen och hur den används för simuleringen på den emulerade kvantdatorn — en semiklassisk algoritm som verkar på en vågfunktionsansats för att bestämma grundtillståndsenergier i kvantsystem. I VQE-algoritmen använder vi antingen ett parametersvep eller en klassisk optimeringsalgoritm för att hitta de variationspara- metrar som optimerar i vågfunktionsansatsen. Val av ansats och optimeringsalgoritm diskuteras i avsnitt 3.2. Sist beskrivs programvaran till kvantdatorn samt hur denna implementeras. 3.1 Referenslösning för enelektronsystemet Ett sätt att kvantifiera funktionaliteten hos den emulerade kvantdatorn är genom jämförelse med en referenslösning som bestäms numeriskt på en klassisk dator. Ett rimligt första steg är således att bestämma denna referenslösning genom att nume- riskt beräkna grundtillståndsenergin hos enelektronsystemet som beskrivs av Hamil- tonianen i ekvation (2.13). Genom att fixera antalet basvektorer N och diagonalisera matrisen vars element ges av Hij(ε) kan väntevärdet av energin 〈HN(ε)〉 beräknas. I allmänhet garanterar variationsprincipen att Egs ≤ 〈ψ|HN |ψ〉 := 〈HN〉 , (3.1) där Egs är grundtillståndsenergin, för alla normerade tillstånd |ψ〉. Speciellt innebär detta att Egs ≤ min ε,ψ 〈HN(ε)〉 = min ψ 〈HN(εN)〉 := 〈HN〉ref , (3.2) där εN optimerar Hamiltonianen för ett givet antal basvektorer N . Den bästa upp- skattningen för ett givet antal basvektorer N ges av således av 〈HN〉ref. Det minsta väntevärdet av Hamiltonianen som funktion av ε för olika antal basvektorer N visas i figur 3.1. 8 3. Metod 1.00 1.25 1.50 1.75 2.00 ε −1.0 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.3 −0.2 E [1 3. 6 eV ] N = 1 N = 2 N = 3 N = 4 N = 5 N = 6 Figur 3.1: Visualisering av E = minψ 〈HN(ε)〉 för olika antal basvektorer N som funktion av den dimensionslösa parametern ε [6]. I tabell 3.1 presenteras de värden på ε som minimerar energin 〈HN(ε)〉 för ett givet antal basvektorer N = 1, 2, . . . , 6. Här presenteras också de energier 〈HN〉ref som svarar mot ett givet εN som utgör uppskattningar av grundtillståndsenergin Egs. Dessa energier utgör referenslösningen och jämförs med energierna som räknas ut på kvantdatorn och presenteras i kapitel 4. Tabell 3.1: Här presenteras den minsta energin 〈HN〉ref för ett givet N samt till- hörande εN . Antal basvektorer N 1 2 3 4 5 6 Optimerande εN 1.06 1.06 1.26 1.26 1.39 1.39 Energi 〈HN〉ref -0.8488 -0.8488 -0.9453 -0.9453 -0.9732 -0.9732 3.2 VQE Variational Quantum Eigensolver (VQE) är en kvant-/klassisk hybridalgoritm som kan användas för att bestämma grundtillståndsenergier hos kvantmekaniska system. Den består av en klassisk del och en kvantalgoritm. I den klassiska delen bestäms nya parametrar som returneras till kvantalgoritmen. En kvantalgoritm är en algo- ritm som utförs på en kvantdator och använder rent kvantmekaniska fenomen som sammanflätning och superposition. VQE-algoritmen består av fyra steg som beskrivs i figur 3.2. De två första stegen utgör kvantrutinen medan steg 3 och 4 utgör den klassiska optimeringsdelen. 9 3. Metod 1. Preparation av en normerad vågfunktionsansats |ψ(~θ)〉 (ansatz i engelsk text) där ~θ är en vektor med ett antal variationsparametrar. 2. Evaluering av väntevärdet 〈H〉 som i vårt fall är en medelvärdesbildning av ett antal mätningar. 3. (a) Vid parametersvep väljs nästa parameter ~θ ur en lista. (b) Vid optimering matas 〈H〉 in till en klassisk optimeringsalgoritm för bestämning av nya parametrar ~θ. 4. Åter till steg 2. Processen upprepas tills dess att den klassiska optime- ringsalgoritmen konvergerar. Figur 3.2: Punktlista över de steg som utgör VQE-algoritmen. I steg 1 använder vi specifikt två typer av vågfunktionsansatser av olika kom- plexitet — dessa beskrivs i detalj i nästa delavsnitt. I nästa steg används Hamil- tonianen från ekvation (2.13)1. Val av optimeringsalgoritm till steg 3b diskuteras i delavsnitt 3.2.2. 3.2.1 Vågfunktionsansatser För att representera enelektronatomen på kvantdatorn behövs en vågfunktionsansats som går att konstruera med kvantbitar. Specifikt prepareras ett tillstånd där varje ockupationstillstånd i Fockrummet (se avsnitt 2.1) avbildas på en enskild kvantbit. En kvantbit på plats q som befinner sig i tillståndet |1〉 svarar då mot att partikeln befinner sig på energinivå q i enelektronatomen. Ansatsen definieras som en operator som verkar på ett initialtillstånd |Ψinit〉. Initialtillståndet kan exempelvis vara en Hartree-Fock lösning som på en kvantdator kan realiseras genom en kedja med kvantbitar [13]. I vårt fall är initialtillståndet en kedja med N stycken kvantbitar på formen |1, 0, 0, . . .〉; det vill säga grundtillståndet för den harmoniska oscillatorn, |100〉. Small ansatz En första primitiv ansats är att rotera den nollte kvantbiten kring x-axeln på Bloch- sfären. I enlighet med Groves dokumentation kallar vi denna vågfunktionsansats Small ansatz [12]. Vår implementation av denna ansats använder endast en varia- tionsparameter θ och ges på formen |Ψ(θ)〉 = RX(θ, q0) |Ψinit〉 (3.3) där RX-grinden alltså roterar den nollte kvantbiten q0 i vårt initialtillstånd kring x-axeln med vinkeln θ. Applikationen av denna grind ändrar sannolikheterna att 1Notera att Hamiltonianen här är beroende av antal basvektorer N och parametern ε. I det allmänna fallet är ε och N oberoende storheter, men i enlighet med avsnitt 3.1 studeras specifikt det värde på ε som minimerar energin för ett givet antal basvektorer N . Sambandet mellan dimensionen av tillståndsrummet N och värdet på parametern ε presenteras i tabell 3.1. 10 3. Metod kvantbiten observeras i något av tillstånden |1〉 eller |0〉 då dess projektion på z- axeln förändras. Detta i sin tur förändrar sannolikheten för att energinivån är oc- kuperad, och således även energin 〈H〉 = 〈Ψ(θ)|H|Ψ(θ)〉. Denna vågfunktionsansats är dessutom unitär, vilket gör att den trots sin enkelhet går att använda som ansats i VQE-algoritmen för att hitta det θ som ger det minsta energiegenvärdet. Vidare går det att göra mer sofistikerade ansatser som använder fler kvant- grindar. En sådan vågfunktionsansats, som i simuleringen jämförs med Small ansatz, är en UCC-ansats som beskrivs i detalj i nästa avsnitt. UCC-ansats Vågfunktionsansatsen som baseras på metoden Unitary Coupled-Cluster (UCC) är en unitär utveckling av Coupled Cluster-ansatsen (CC).2 UCC-ansatsen är en nume- risk teknik för att beskriva flerkroppssystem som kan representeras med kvantbitar där enelektronatomen utgör ett specialfall [14]. Generellt ges ansatsen av uttryc- ket [15] |Ψ〉 = eT−T † |Ψinit〉 , (3.4) där T är en excitationsoperator, T † är en deexcitationsoperator och |Ψinit〉 är vårt initialtillstånd. Operatorn T kan uttryckas genom andrakvantisering (se avsnitt 2.1) som T = ∑ i,α tiαa † αai, (3.5) där i är alla ockuperade tillstånd (vilket i vårt fall alltid kommer vara endast ett tillstånd), α är icke-ockuperade tillstånd, tiα utgör variationsparametrar, medan a† och a är kreations- respektive annihilationsoperatorer som beskrivs i avsnitt 2.1 [15]. Med exempelvis N = 3 basvektorer i ansatsen blir T − T † = t01(a†1a0 − a†0a1) + t02(a†2a0 − a†0a2), (3.6) där t01 och t02 är två variationsparametrar. På grund av de icke-kommuterande operatorerna i (3.6) används ofta Trotter- approximationen, eT−T † ≈ ∏ i,α e tiα ρ (a† αai−a† iaα) ρ , (3.7) för att förenkla UCC-ansatsen [13, 10]. Generellt gäller att e ∑ i Ti 6= ∏ i eTi för ope- ratorer. I (3.7) är ρ Trottertalet som är relaterat till noggrannheten hos approxi- mationen — i detta arbete begränsar vi oss till ρ = 1. Slutligen appliceras JW- transformationen enligt 2.1.2 på UCC-ansatsen. Implementationen av denna våg- funktionsansats i Python beskrivs i detalj i avsnitt 3.3. 2Ansatsen CC används frekvent inom kvantkemi [14]. 11 3. Metod 3.2.2 Klassiska optimeringsalgoritmer I det här avsnittet presenteras de optimeringsalgoritmer vi använder i VQE-algoritmen. Låt oss först göra en observation som förenklar våra beräkningar, nämligen att vår representation av Hamiltonianen är helt reell. Detta är en konsekvens av att ut- trycket för matriselementen i H (se (2.9)) är reella. Matrisen H är alltså inte bara Hermitesk, utan även symmetrisk. Därför räcker det med att vi endast letar efter det reella egentillstånd som minimerar energin 〈H〉. Påståendet att reella symmet- riska matriser har reella egenvektorer formuleras som en sats och bevisas i appendix C. Fördelen med observationen är att antalet parametrar att minimera 〈H〉 med avseende på halveras eftersom vi endast behöver leta efter det optimala tillståndet i RN istället för CN ∼ R2N . Gällande optimeringsalgoritmer undersökte vi två olika sådana — Nelder-Mead [16] samt COBYLA [17], vilka båda är simplex-baserade metoder som används för att optimera icke-konvexa icke-C1-funktioner. För de resultat som presenteras i kapitel 4.2 användes COBYLA samt parametersvep. Vi valde COBYLA över den liknande metoden Nelder-Mead av flera anledningar. Dels så hade Nelder-Mead stora problem med att hantera en stokastisk objektsfunktion, och dels så fanns en större möjlighet till att finjustera inställningarna för metoden i paketet scipy.optimize.minimize. Valet av COBYLA över Nelder-Mead baseras även på det faktum att en tidigare studie [13] fann att COBYLA presterade avsevärt bättre än Nelder-Mead när meto- derna jämfördes i kontexten att minimera en molekylär Hamiltonian med avseende på en UCC-ansats. Vid optimeringen behövdes en första gissning till grundtillståndet. Här använ- de vi vårt initialtillstånd |Ψinit〉, den harmoniska oscillatorns grundtillstånd. Detta tillstånd svarar mot ~θ = ~0. Motivationen bakom gissningen kommer från att po- tentialerna både för enelektronatomen och den harmoniska oscillatorn är radiellt symmetriska samt ökar med r. 3.2.3 Parametersvep I figur 3.2 beskrivs utöver optimeringsmetoderna även ett parametersvep. Här väljs alltså ~θ från en lista istället för att parametrarna optimeras med en algoritm. På så sätt kan 〈HN〉 bestämmas för ett diskret antal värden på ~θ, varefter ett minimum kan extraheras och jämföras med 〈HN〉ref i tabell 3.1. För att kvantitativt jämföra parametersvep med optimering i avsnitt 4.2 väljer vi dessutom att applicera ett Gaussiskt filter på de uppmätta värdena 〈HN〉. Det är sedan minimum i den filtrerade datan som jämförs med 〈HN〉ref. 3.3 Simulering på kvantdatorn I detta avsnitt beskrivs hela processen för att utföra simuleringen på den emulera- de kvantdatorn. Initialt beskrivs de program som användes och därefter förklaras programmeringsprocessen; denna inleds med implementationen av Small ansatz och UCC-ansatsen, samt testkörningar på dessa. Dessutom beskrivs implementationen 12 3. Metod av Hamiltonianen för enelektronatomen och slutligen beskrivs hur dess väntevärden beräknas på kvantdatorn för olika antal basvektorer N . 3.3.1 Pythonbibliotek Den emulerade kvantdatorn konstruerades med hjälp av Rigettis Forest-paket [18]. Detta paket innehåller Rigettis QVM (Quantum Virtual Machine) vilket är en pro- grammerbar simulator av en QAM (Quantum Abstract Machine), vilket i sin tur kan beskrivas som en teoretisk kvantdator som kan köra både klassik och kvantmekanisk programvara. QVM kan även använda modeller för att emulerade nutidens brusiga kvantdatorer. I Forest-paketet ingår även programmeringsspråket Quil (Quantum Instruction Language) som Rigetti utvecklat för att köras på allmänna QAM, en kompilator för Quil som kallas för QuilC samt biblioteket pyQuil som översätter Pythonkod till Quil [18, 19]. Paketet Grove är också utvecklat av Rigetti och innehåller en mängd kvant- algoritmer skrivna för att användas tillsammans med Rigettis Forest-paket med hjälp av pyQuil. Detta paket innehåller VQE-algoritmen som simuleringarna baseras på. Vidare använde vi paketet OpenFermion [20] som har utvecklats för att för- enkla implementeringen av kvantsimuleringar skrivna i Python. Paketet innehåller stöd för att skriva vanligt förekommande operatorer och funktioner, exempelvis fer- mionska kreations- och annihilationsoperatorer. Paketet är tänkt att kunna använ- das oberoende av vilken typ av kvantdator som används och lämnar kompileringen till andra program. Istället finns det plug-ins för olika utvecklare att använda för att generera av kvantdatorkompatibel kod, till exempel pyQuil [18]. Vi använde främst OpenFermion för att implementera UCC-ansatsen och Hamiltonianen för enelektronsystemet. Utöver de ovan nämnda paketen och biblioteken användes även en mängd and- ra verktygspaket såsom exempelvis NumPy och Matplotlib för att kunna utföra beräkningar och plotta grafer. 3.3.2 Programmering på kvantdatorn Den första programmeringen vi gjorde på Rigettis emulerade kvantdator var att implementera Small ansatz för att använda i VQE enligt Groves dokumentation. I figur 3.3 presenteras koden för detta [12]. Typen ’Program’ i figur 3.3 innehåller de kvantgrindar vi opererar med på vårt initialtillstånd. Innan Hamiltonianen im- plementerades på kvantdatorn utförde vi testmätningar på vågfunktionsansatserna med observabeln Z(0) — det vill säga Paulimatrisen som mäter den nollte kvant- bitens spinn vars väntevärde kan bli 1 eller -1. För att mäta väntevärdet av denna observabel använde vi funktionen vqe_inst.expectation() med koden som visas i figur 3.4. Notera i figur 3.4 att parametern nbrSamples i vqe_inst.expectation() står för antalet mätningar som VQE-algoritmen använder för att mäta väntevärdet. Om parametern sätts till ett fixt antal n skattas väntevärdet med ett medelvärde av n mätningar och om parametern nbrSamples sätts till None erhålls det sanna väntevärdet. Detta svarar mot att man gör oändligt många mätningar, alltså fallet 13 3. Metod from pyquil.quil import Program import pyquil.api as api from pyquil.gates import * qvm = api.QVMConnection() def small_ansatz(theta): program = Program(X(0)) # Initiate qubit 0 to state |1> program += Program(RX(theta, 0)) # Rotate zeroth qubit return program Figur 3.3: Pythonkod för att implementera Small ansatz som ett program i pyQuil. from pyquil.paulis import sZ from grove.pyvqe.vqe import VQE from scipy.optimize import minimize import numpy as np observable = sZ(0) vqe_inst = VQE() expected_value = vqe_inst.expectation(small_ansatz(theta),observable, nbrSamples = None, qvm) Figur 3.4: Pythonkod för att mäta Paulimatrisen Z på den nollte kvantbiten för ett godtyckligt värde på rotationsparametern θ i Small ansatz. Resultatet sparas i variabeln expected_value . 14 3. Metod −π −π/2 0 π/2 π θ −1.0 −0.5 0.0 0.5 1.0 〈Z (0 )〉 nbrSamples = None nbrSamples = 2 Figur 3.5: Mätningar av Z(0) på Small ansatz, dvs mätning på endast en kvantbit. Det sanna väntevärdet (med nbrSamples=None ) visas som en heldragen linje och medelvärdet av två mätningar av Z(0) på samma intervall visas med punkter. n → ∞. För att illustrera detta initierade vi en enda kvantbit i superposition och plottade det sanna väntevärdet samt det uppmätta väntevärdet för nbrSamples=2 , se figur 3.5. Eftersom två mätningar utfördes kunde medelvärdet vara antingen 1, 0, eller -1, då resultatet av mätningen kan resultera i antingen |↑〉 eller |↓〉, vilket också är vad figuren visar. Implementation av UCC för N=2 och N=3 Enligt (3.5) i teoriavsnittet om UCC-ansatsen får vi för N = 2 vågfunktionen |Ψ(θ)〉 = eT |Ψinit〉 = eθ(a† 1a0−a† 0a1) |Ψinit〉 = ei(θ/2)(X0Y1−X1Y0) |Ψinit〉 , (3.8) där θ är vår variationsparameter som svarar mot t01 i ekvation (3.6) och |Ψinit〉 = |1, 0, 0, . . .〉. För N = 3 blir vågfunktionen (som nu beror på en extra parameter, t02 := η i ekvation (3.6)) |Ψ(θ, η)〉 = eT−T † |Ψinit〉 = eθ(a† 1a0−a† 0a1)+η(a† 2a0−a† 0a2) |Ψinit〉 ≈ ei(θ/2)(X0Y1−X1Y0)ei(η/2)(X0Z1Y2−X2Z1Y0) |Ψinit〉 , (3.9) där vi i det sista steget har använt Trotterapproximationen av ordning ρ = 1. På kvantdatorn representerades Fockrummet genom att initiera N antal kvantbitar motsvarande antal energinivåer tillgängliga i systemet. För att skapa initialståndet |1, 0, 0, . . .〉 placerades kvantbit 0 i tillståndet |1〉 enligt program = Program(X[0]) . Vågfunktionsansatsen som applicerar de exponentierade excitationsoperatorer- na i (3.8) implementerades med biblioteken OpenFermion och pyQuil. Först defini- erades excitationsparametrarna med FermionOperator() enligt koden i figur 3.6. Därefter användes OpenFermions funktion T = jordan_wigner(T_tot) och till sist skrevs operatorerna om till Paulimatriser i pyQuil-format med funktionen T_pauli = qubitop_topyquilpauli(T) . Sedan kunde vi utföra Trotterapproxi- mationen för N = 2 på Fockrummet med funktionen trotterize enligt program += trotterize(T_pauli[0], T_pauli[1]) . För N = 3 utökade vi pro- grammet med ytterligare en trotterize för Paulitermerna X0Z1Y2 och −X2Z1Y0. 15 3. Metod from openfermion.ops import FermionOperator T = FermionOperator('0^ 1') T_dag = FermionOperator('1^ 0') T_tot = T - T_dag Figur 3.6: Excitationsoperatorerna T och T † från (3.8) i Pythonkod. X 0 H 0 RX(pi/2) 1 CNOT 0 1 RZ(theta) 1 CNOT 0 1 H 0 RX(-pi/2) 1 RX(pi/2) 0 H 1 CNOT 0 1 RZ(-theta) 1 CNOT 0 1 RX(-pi/2) 0 H 1 Figur 3.7: De grindar som utgör UCC för N = 2 basvektorer samt vilka kvantbitar de verkar på. Grindarna appliceras på initialtillståndet |Ψinit〉 uppifrån och ned. Pauli-X grinden växlar tillståndet för kvantbiten från |0〉 till |1〉, och vice versa, genom att rotera en kvantbit med π radianer kring x-axeln på Blochsfären, CNOT- grinden sammanflätar två kvantbitar, RX- och RZ-grindarna roterar kvantbitens tillstånd med en angiven vinkel kring Blochsfären, och H beskriver Hadamardgrinden (för mer info se exempelvis [10]). För N = 2 visas programutskriften för UCC-ansatsen i figur 3.7 och vi noterar i denna att det behövs betydligt fler kvantgrindar i denna ansats än för Small ansatz. På samma sätt som i figur 3.5 mätte vi Z(0) för UCC-ansatsen för att jämföra med Small ansatz. Uppmätta värden för respektive vågfunktion med nbrSamples=20 visas i figur 3.9 och vi ser att väntevärdet 〈Ψ(θ)|Z|Ψ(θ)〉 är periodiskt för båda an- satserna. Detta kan relateras till att θ motsvarar en rotationsvinkel för respektive vågfunktion. Implementation av Hamiltonian uttryckt i Paulitermer Här beskrivs implementationen av Hamiltonianen från kapitel 3.1 i termer av Pau- limatriser enligt ekvationerna (2.5), (2.11) och (2.12). Koden för att implementera Hamiltonianen utfördes på samma sätt som för transformationen av excitationsoperatorerna i avsnitt (3.3.2) enligt 16 3. Metod H 0 RX(pi/2) 2 CNOT 0 1 CNOT 1 2 RZ(eta) 2 CNOT 1 2 CNOT 0 1 H 0 RX(-pi/2) 2 RX(pi/2) 0 H 2 CNOT 0 1 CNOT 1 2 RZ(-eta) 2 CNOT 1 2 CNOT 0 1 RX(-pi/2) 0 H 2 Figur 3.8: De extra grindar (utöver alla kvantgrindar i figur 3.7) som utgör UCC för N = 3 jämfört med UCC för N = 2. Grindarna appliceras på initialtillståndet |Ψinit〉. Kvantgrindarnas beskrivning ges i figur 3.7. −1 0 1 Sanna väntevärdet(Small) nbrSamples = 20 −π −π/2 0 π/2 π θ −1 0 1〈Z (0 )〉 Sanna väntevärdet(UCC) nbrSamples = 20 Figur 3.9: Uppmätta värden för Paulimatrisen Z på den nollte kvantbiten för två olika vågfunktionsansatser (Small ansatz överst och UCC underst) med variansen i mätvärdet utmärkt kring varje punkt. Väntevärdet för respektive mätning visas som en heldragen kurva i bakgrunden. 17 3. Metod H_JW = jordan_wigner(H) , där H är en matrisrepresentation av Hamiltonianen uttryckt i fermioniska operatorer med funktionen FermionOperator() som visats tidigare. Till sist utförs transformationen till pyQuil-språk med H_Pauli = qubitop_topyquilpauli(H_JW) . Resultatet för mätningarna av vänte- värdet på Hamiltonianen presenteras i kapitel 4. Simulering av system med brus Rigettis QVM har stöd för att inkludera flera typer av brus, se avsnitt 2.2.2. I QVM införs ett parametriskt grindbrus i termer av tre parametrar (PX,PY,PZ), där dessa är sannolikheterna för att en X-, Y- respektive Z-grind (se figurtext till figur 3.7 — Y- och Z-grinden fungerar analogt med X-grinden) appliceras på varje kvantbit efter varje grindapplicering. För mätbrus införs på samma sätt de tre parametrarna (P′X,P′Y,P′Z). Dessa motsvarar sannolikheter för applikation av motsvarande grind på en kvantbit innan bitens värde mäts upp. I Rigettis emulator initieras kvantdatorer med brus genom att mata in ar- gument i kommandot api.QVMConnection() . För att inkludera (PX,PY,PZ) = (0.1, 0.1, 0.1) och (P′X,P′Y,P′Z) = (0.2, 0.2, 0.2) modifieras tidigare koder (exempelvis de i avsnitt 3.3) till att initieras enligt koden 3.10. import pyquil.api as api from pyquil.gates import * qvm=api.QVMConnection() gate_probs = [0.1, 0.1, 0.1] meas_probs = [0.2, 0.2, 0.2] noisy_qvm = qvm(gate_noise=gate_probs, measurement_noise=meas_probs) Figur 3.10: Pythonkod för att starta upp en QVM med 10 % grindbrus och 20 % mätbrus för vardera av X-, Y- och Z-grindarna. Med modifikationer av denna typ kan optimering utföras som i fallet utan brus. Vi utnyttjade bland annat detta för att beräkna egenvärden som funktion av de två brusnivåerna. 18 4 Resultat och Diskussion I detta kapitel presenteras mätningarna av energin för enelektronatomen på den emulerade kvantdatorn. I första avsnittet jämförs Small ansatz med UCC-ansatsen utifrån den grundtillståndsenergi som respektive ansats genererar vid användning av VQE med parametersvep. Vidare visar vi här att Small ansatz saknar vissa egenskaper vi förväntar oss av en variationsansats. I nästa avsnitt jämförs ett filtrerat parametersvep med optimeringsalgoritmen COBYLA specifikt på UCC-ansatsen. Vi finner att optimeringsalgoritmen presterar bättre än parametersvepet, trots att vårt bästa optimeringsresultat är en faktor 10 från kemisk precision. I det sista avsnittet visar vi hur olika typer av brus påverkar den uppmätta grundtillståndsenergin för de båda ansatserna. 4.1 Jämförelse mellan ansatser för parametersvep Det här avsnittet består av tre delar där vi jämför olika aspekter av UCC med Small ansatz. Avsnittet inleds med en grundläggande analys med parametersvep på UCC och Small ansatz i fallen N = 2 och N = 3 basvektorer. I de två resterande avsnitten görs en mer djupgående analys av beteendet hos de två ansatserna. Grundläggande jämförelse av ansatserna I figur 4.1 visas resultatet från ett parametersvep i två dimensioner och jämförs med referensvärdet 〈H2〉ref från tabell 3.1. I figuren är de utritade punkterna medelvärdet av 20 mätningar för respektive värde på variationsparametern θ, och den heldragna kurvan representerar det sanna väntevärdet, alltså då n → ∞. Här noterar vi att båda ansatserna är periodiska på intervallet θ ∈ [−π, π], vilket var förväntat enligt metodavsnittet. Speciellt noterar vi också att för N = 2 basvektorer hittar båda ansatserna det minsta egenvärdet. Vi kan också svepa över parametern θ för Small ansatz med N = 3 basvektorer, vilket visas i figur 4.3. Här noterar vi att det sanna väntevärdet 〈HN〉 inte hittar referensvärdet 〈H3〉ref vilket visar att Small ansatz lämpar sig sämre för N = 3 basvektorer. Det faktum att vår version av Small ansatz endast verkar på första kvantbiten antyder att den även förblir ett sämre alternativ till UCC för N > 3. Specifikt för parametersvep med N = 3 basvektorer uppmäts däremot med UCC- ansatsen energin 〈H3〉 ≈ 〈H3〉ref (med en avvikelse på ca 0.1 %) — detta på grund av möjligheten att svepa över två parametrar. Sammantaget indikerar vår inledande analys att UCC-ansatsen är att föredra för mätningar av 〈HN〉 då N > 2. Vidare 19 4. Resultat och Diskussion −0.75 −0.50 −0.25 0.00 Sanna väntevärdet(Small) 〈H2〉ref nbrSamples = 20 −π −π/2 0 π/2 π θ −0.5 0.0 0.5 〈H 2 〉[ 13 .6 eV ] Sanna väntevärdet(UCC) 〈H2〉ref nbrSamples = 20 Figur 4.1: Uppmätta värden för 〈H2〉 med 20 mätningar per punkt för två olika vågfunktionsansatser med variansen i medelvärdet av mätningarna utmarkerat kring varje punkt. Det sanna väntevärdet visas som en heldragen kurva i bakgrunden. Det minsta egenvärdet för N = 2 från tabell 3.1 visas med en streckad linje. −π −π/2 0 π/2 π θ −0.4 −0.2 0.0 0.2 0.4 〈h i〉 [1 3. 6 eV ] I Z0 Y0 Y1 X0 X1 Z1 Figur 4.2: Uppmätta värden för de fem viktade termerna 〈hN=2 i 〉 i Hamiltonianen för N = 2 basvektorer i UCC-ansatsen med 20 mätningar per värde. Variansen av medelvärdet är utmärkt kring varje punkt. De faktiska väntevärdena för varje term visas som heldragna linjer. 20 4. Resultat och Diskussion −π −π/2 0 π/2 π θ −1.00 −0.75 −0.50 −0.25 0.00 0.25 〈H 3 〉[ 13 .6 eV ] Sanna väntevärdet(Small) 〈H3〉ref nbrSamples = 50 Figur 4.3: Uppmätta värden för 〈H3〉 med 20 mätningar per punkt för Small ansatz med variansen i mätvärdet utmärkt kring varje punkt. Det sanna väntevärdet visas som en heldragen kurva i bakgrunden. Det minsta egenvärdet för N = 3 från tabell 3.1 visas med en streckad linje. antyder resultaten att en parameter är otillräcklig för godtyckligt antal basvektorer N ; detta gör att Small ansatz med en parameter är naiv i förhållande till UCC. Analys av variansen för N = 2 Vi noterar även i figur 4.1 att variansen går mot noll vid kurvornas extreman för N = 2. Detta är en effekt av att H2:s termer är simultant diagonaliserbara och således har en gemensam egenvektorbas. Detta beror på en fundamental skillnad mellan det fysiska kvantsystemet och simuleringen på kvantdatorn. I den senare utförs mätningarna termvis — om tillståndet |ψ〉 är ett egentillstånd till H är det då även ett egentillstånd till varje term hi var för sig. En mätning av H svarar då mot att mäta termerna hi var för sig och summera resultaten. När vi plottar väntevärdet av de enskilda termerna i Hamiltonianen för t.ex. UCC-ansatsen, se figur 4.2, observerar vi att extrempunkterna för termerna samman- faller. Detta är en effekt av att termerna är simultant diagonaliserbara. Däremot är termerna för N = 3, i figur 4.4, fasförskjutna och därför ej simultant diagona- liserbara. Eftersom vi endast kan beräkna variansen termvis kan då summan av varianserna vara nollskild även om |ψ〉 är ett egentillstånd till H. Således är det inte garanterat att entydigt mäta upp motsvarande egenvärde till |ψ〉 trots att |ψ〉 är ett egentillstånd till H. Diskussion om Small ansatz I detta stycke diskuterar vi varför Small ansatz inte nödvändigtvis är fysikaliskt motiverad. Detta baseras på att Small ansatz, i figur 4.1, hittar ett egenvärde 0 som inte UCC hittar. Vår matrisrepresentation HN gäller specifikt för en elektron. Andrakvantise- ring av Hamiltonianen förflyttar oss dock till ett större tillståndsrum som även tillåter flerpartikeltillstånd. Vi kan fylla på systemet med elektroner med hjälp av 21 4. Resultat och Diskussion −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 I Z0 Y0 Y1 X0 X1 Y0 Z1 Y2 −π −π/2 0 π/2 π θ −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 〈h i〉 [1 3. 6 eV ] X0 Z1 X2 Z1 Y1 Y2 X1 X2 Z2 Figur 4.4: Uppmätta värden för de tio viktade termerna 〈hN=3 i 〉 för Hamiltonianen med N = 3 basvektorer i UCC-ansatsen med 20 mätningar per värde för η = 0.15. Variansen i mätvärdet är utmärkt kring varje punkt. De faktiska väntevärdena för varje term visas som heldragna linjer. Observera att termerna har placerats i två paneler för synbarhets skull. 22 4. Resultat och Diskussion skapelseoperatorerna, genom exempelvis a†1 |1, 0〉 = |1, 1〉 . Detta nya tillstånd är ett egentillstånd till den andrakvantiserade Hamiltonianen, och om |1, 0〉 har egenvärde λ0, samt |0, 1〉 egenvärde λ1, har |1, 1〉 egenvärde λ0 + λ1. Både UCC och Small ansatz definieras i termer av operatorer som verkar på ett initialtillstånd |Ψinit〉 — eT−T † för UCC och RX(θ) för Small ansatz. För att hitta energiminima till enpartikeltillstånden behöver operatorn som definierar vår ansats bevara antalet partiklar. UCC-ansatsens operator har denna egenskap då den är definierad i termer av kreations- och förintelseoperatorer som förekommer parvis: T = θa†1a0 + ηa†2a0 + . . . . Small ansatz är definierad i termer av kvantgrindar och har inte nödvändigtvis denna egenskap. Till exempel, som vi såg i figur 4.1 är 0 ett egenvärde, vilket inte observeras med UCC. Detta egenvärde svarar mot tillståndet |0, 0〉, som enelektronatomen inte kan befinna sig i. Sammantaget konstaterar vi att Small ansatz inte lämpar sig väl för vårt fy- sikaliska problem, varför vi hädanefter begränsar oss till de följande studierna av parametersvep jämfört med en optimeringsalgoritm i VQE. Däremot återkommer Small ansatz i brusundersökningen, dock enbart som jämförelse med UCC, för att studera hur antalet grindar i en vågfunktionsansats påverkar dess känslighet för grind- och mätbrus. 4.2 Jämförelse mellan parametersvep och optime- ring för UCC I detta avsnitt jämför vi parametersvep med de optimeringsalgoritmer som beskrivs i avsnitt 3.2.2. Metoderna applicerades på en representation av Hamiltonianen HN med N = 2, . . . , 5. Med syftet att undersöka hur robusta de två metoderna är utför vi fem identiska körningar av de båda metoderna. Våra resultat pekar på att optimeringsmetoden presterar bättre än parametersvep, men fler parametrar gör optimeringsmetoden betydligt mindre robust. Det är alltså inte nödvändigtvis gynnsamt att öka antalet basvektorer N eftersom optimeringsproblemet blir för komplext. Tabellerna i detta avsnitt visar resultaten från ett antal körningar med UCC som ansats. Gemensamt för dessa tabeller är att antal mätningar avser totala antalet mätningar av HN och θ, η, α, β avser variationsparametrarna i ansatsen |Ψ〉 = eθ(a† 0a1−θa† 1a0)+η(a† 0a2−θa† 2a0)+... |Ψinit〉 . Tid avser beräkningstiden (beräkningstiderna är jämförbara då alla beräkningar utförts på samma processor). Resultaten från parametersvepen är avlästa från en Gaussisk filtrering av den uppmätta datan. På grund av mätningarnas stokastiska natur kan denna avsläsning returnera ett värde som ligger under 〈HN〉ref. Resultatet från optimeringen är ett medelvärde av ett mycket stort antal mätningar i en punkt och kommer därför inte returnera ett värde som ligger under. Tabell 4.1-4.4 visar resultaten från N = 2, 3. 23 4. Resultat och Diskussion Tabell 4.1: Resultat av svepning av H2 (1 parameter). Jämför med det faktiska minimat, -0.8488. Intervallet [−π, π] delades in i 10 punkter. I varje punkt utfördes 100 mätningar. 〈H2〉 [13.6 eV] Antal mätningar θ Tid -0.8489 1 000 -0.1745 0.626 s -0.8486 1 000 0.1745 0.525 s -0.8403 1 000 -0.1745 0.547 s -0.8487 1 000 -0.1745 0.515 s -0.8403 1 000 -0.1745 0.530 s Tabell 4.2: Resultat av optimering av H2 (1 parameter) där gissningen till grund- tillståndet är |Ψinit〉. Jämför med det faktiska minimat, -0.8488. 〈H2〉 [13.6 eV] Antal mätningar θ Tid -0.8481 11 000 -0.0568 6.03 s -0.8487 10 000 -0.0212 5.54 s -0.8474 11 000 0.0825 5.86 s -0.8477 11 000 0.0725 6.07 s -0.8488 10 000 -0.0100 5.69 s Tabell 4.3: Resultat av svepning av H3 (2 parametrar). Jämför med det faktiska minimat, -0.9453. Intervallet [−π, π]2 delades in i 100 punkter. I varje punkt utfördes 100 mätningar. 〈H3〉 [13.6 eV] antal mätningar θ η Tid -0.9687 10 000 0.1745 -0.1745 26.6 s -0.9704 10 000 0.1745 -0.1745 27.0 s -1.0822 10 000 0.1745 -0.1745 27.0 s -0.8818 10 000 0.1745 -0.1745 26.4 s -0.9207 10 000 0.1745 -0.1745 27.3 s Tabell 4.4: Resultat av optimering av H3 (2 parametrar) där gissningen till grund- tillståndet är |Ψinit〉. Jämför med det faktiska minimat, -0.9453. 〈H3〉 [13.6 eV] Antal mätningar θ η Tid -0.9258 23 000 0.2135 -0.1362 51.7 s -0.9347 26 000 0.2157 -0.2285 64.0 s -0.9318 26 000 0.2088 -0.2416 57.6 s -0.9451 27 000 0.1605 -0.1884 60.3 s -0.9270 22 000 0.2272 -0.1503 48.7 s En omedelbar observation är att både 〈H2〉 och 〈H3〉 i tabell 4.1-4.4 ligger nära 〈HN〉ref. För N = 2, i tabell 4.1 och 4.2, är exaktheten av ordning ∼ 0.01 för svepningen, och ordning ∼ 0.001 för optimeringen. Utöver att optimeringen är en 24 4. Resultat och Diskussion faktor 10 exaktare än svepningen ser vi att svepningen är en faktor 10 snabbare än optimeringen. Vidare, för N = 3, i tabell 4.3 och 4.4, är exaktheten av ordning ∼ 0.1 för svepningen, och ordning ∼ 0.01 för optimeringen. Dock är svepningen här endast en faktor 2 snabbare än optimeringen. Detta motiverar en jämförelse av svep och optimering för större antal basvektorer. Resultatet från denna undersökning visas i tabell 4.5-4.8. Tabell 4.5: Resultat av svepning av H4 (3 parametrar). Jämför med det faktis- ka minimat, -0.9453. Intervallet [−π, π]3 delades in i 1 000 punkter. I varje punkt utfördes 100 mätningar. 〈H4〉 [13.6 eV] Antal mätningar θ η α Tid -0.9461 100 000 0.5236 -0.5236 0.1745 N/A -1.0301 100 000 0.1745 -0.1745 0.1745 N/A -1.1041 100 000 -0.1745 0.1745 -0.1745 878 s -0.9132 100 000 0.1745 -0.1745 -0.1745 842 s -0.9062 100 000 0.1745 -0.1745 -0.1745 825 s Tabell 4.6: Resultat av optimering av H4 (3 parametrar) där gissningen till grund- tillståndet är |Ψinit〉. Jämför med det faktiska minimat, -0.9453. 〈H4〉 [13.6 eV] Antal mätningar θ η α Tid -0.9446 155 000 0.1511 -0.1763 0.0074 785 s -0.9303 140 000 0.1577 -0.1782 -0.0549 702 s -0.9257 165 000 0.1196 -0.2275 -0.0239 846 s -0.9420 155 000 0.1576 -0.1922 -0.0206 785 s -0.9291 170 000 0.05766 -0.1459 -0.0302 868 s Tabell 4.7: Resultat av svepning av H5 (4 parametrar). Jämför med det faktiska minimat, -0.9732. Intervallet [−π, π]4 delades in i 10 000 punkter. I varje punkt utfördes 100 mätningar. 〈H5〉 [13.6 eV] Antal mätningar θ η α β Tid -0.6737 1 000 000 0.5236 -0.5236 0.1745 -0.1745 26500 s -0.6876 1 000 000 0.5236 -0.5236 0.1745 -0.1745 24400 s 0.0115 1 000 000 0.5236 -0.5236 0.1745 -0.1745 23900 s -0.0243 1 000 000 0.5236 -0.5236 0.1745 -0.1745 23600 s 25 4. Resultat och Diskussion Tabell 4.8: Resultat av optimering av H5 (4 parametrar) där gissningen till grund- tillståndet är |Ψinit〉. Jämför med det faktiska minimat -0.9732. 〈H5〉 [13.6 eV] Antal mätningar θ η α β Tid -0.9651 215 000 0.2211 -0.1886 0.0276 -0.0527 2940 s -0.9471 175 000 0.1240 -0.168 -0.0001 -0.0538 2330 s -0.8863 195 000 0.1026 -0.1507 -0.0421 -0.0975 2640 s -0.8670 175 000 0.1121 -0.0510 -0.0469 0.0170 2350 s -0.9383 185 000 0.1211 -0.1398 0.0145 -0.0290 2500 s Den generella trend vi ser i tabell 4.5-4.8 är att optimering är mindre krävande än parametersvep för stora N — beräkningstiden är mindre och 〈HN〉 är närmre 〈HN〉ref. Noterbart är att beräkningstiden troligtvis är en bättre representation av beräkningstyngden än antalet mätningar på grund av att även grinddjupet växer med N . En annan trend vi ser är att optimeringen blir mindre robust för fler para- metrar. Fler parametrar innebär en potentiellt bättre approximation av grundtill- ståndsenergin, men även att optimeringen blir svårare. I tabell 4.8 (N = 5) ser vi att uppskattningen är bättre än 〈H4〉ref, men endast i en av fem körningar. Den minsta energi vi hittar med optimering är −0.9651EB. Vår bästa approx- imation av grundtillståndsenergin är alltså ungefär 3.5 % större än det faktiska minimat och skulle antagligen inte förbättras genom att lägga till fler basvektorer. Detta kan relateras till kemisk precision (”chemical accuracy” på engelska), vilket definieras som ±1 kcal/mol. Inom kvantkemin är detta ett mått på om en approx- imation är tillräckligt exakt för att var användbar [13], och i vårt fall är den kemiska precisionen mot 0.3 %. För små N hade svepningen troligtvis tjänat på att minska antalet mätningar per punkt och öka antalet punkter. Detta gör vi inte på grund av att mängden data som behöver sparas blir ohanterligt stor för stora N . Detta eftersom antalet punkter skalar som kN där k är antalet punkter som intervallet [−π, π] delas in i. I appendix D illustreras vågfunktionen som tillhör vårt bästa optimerings- resultat — denna har extraherats ifrån tabell 4.8. 4.3 Undersökningar av mät- och grindbrus Här presenteras inledande resultat med de brusmodeller som introduceras i kapitel 2.2.2; mät- och grindbrus. Det huvudsakliga syftet är att jämföra vilken av våg- funktionsansatserna som är mest bruskänslig och vilken typ av brus som påverkar mätningarna mest. Brusundersökningarna görs främst kvalitativt med målet att ge förslag på vidare undersökningar. De resultat som redovisas i detta avsnitt begrän- sas till att ta hänsyn enbart X-brus. Detta eftersom det visade sig att X- och Y-brus påverkade mätningarna på samma sätt, samt att Z-brus inte påverkade mätningarna alls. Detta beror på att en Z-grind endast roterar en kvantbit ett halvt varv runt z-axeln på Blochsfären vilket inte ändrar kvantbitens sannolikhetsamplituder. I figur 4.5 visas skattningen av 〈H2〉 vid variationsminimum θ = 0; detta görs för N = 2 basvektorer för de båda ansatserna med varierande brusnivåer. Här note- 26 4. Resultat och Diskussion 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Sannolikhet för grindbrus (endast X-grind) −0.8 −0.6 −0.4 −0.2 0.0 0.2 〈H 2 〉[ 13 .6 eV ] 〈H2〉ref Small ansatz UCC 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Sannolikhet för mätbrus (endast X-grind) 〈H2〉ref Small ansatz UCC Figur 4.5: Medelvärdet av 〈H2〉 vid variationsminimum θ = 0 för Small ansatz och UCC med 500 mätningar och två olika typer av brus. För jämförelse finns den streckade linjen som markerar 〈H2〉ref. 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 Sannolikhet för grindbrus (endast X-grind) −1.0 −0.5 0.0 0.5 1.0 1.5 〈H 3 〉[ 13 .6 eV ] 〈H3〉ref Small ansatz UCC 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 Sannolikhet för mätbrus (endast X-grind) 〈H3〉ref Small ansatz UCC Figur 4.6: Medelvärdet av 〈H3〉 vid de värden på θ och η som minimerar energin för UCC, och för det θ som minimerar Small ansatz, för 500 mätningar för två olika typer av brus. Notera att skalan på x-axeln skiljer sig ifrån figur 4.5. rar vi att avvikelserna från det ideala fallet (utan mätbrus) ökar snabbt med ökande nivåer av mätbrus. Detta är intressant med tanke på att mätbrus anger sannolik- heten för att en X-grind verkar på biten innan mätningen; detta till skillnad från grindbrus, som anger sannolikheten för att en X-grind verkar på kvantbiten för var- je grind som verkar på kvantbiten. Från en jämförelse av antalet grindar hos UCC (N = 2) och Small ansatz kan UCC förväntas vara mer känslig för grindbrus då Small ansatz endast har två grindar (jmf. 3.7 för UCC). Dock visar simuleringarna att detta är fel — Small ansatz är den känsligare ansatsen för ett stort sannolikhets- intervall. Vidare visar vår simulering att mätbrus har lika stor påverkan på båda vågfunktionsansaterna för N = 2. Det finns således en kvalitativ skillnad i hur de olika brustyperna påverkar ansatserna. Resultaten från motsvarande simulering för N = 3 redovisas i figur 4.6. Notera dock att skalan på x-axeln skiljer sig åt mellan figurerna. Här noteras återigen att mätbruset påverkar båda ansatserna lika mycket. Däremot påverkar här grindbruset påverkar UCC betydligt mer än Small ansatz till skillnad från i fallet N = 2. För 27 4. Resultat och Diskussion små brusnivåer (PX < 0.01) syns en tydlig inverkan på båda ansatserna; det blir även tydligt att UCC-ansatsen inte är robust i denna mening jämfört med Small ansatz för brusnivåer större än 1 %. Vår simulering stärker alltså det förväntade resultatet — att grindbrus påverkar UCC-ansatsen mer för N = 3 basvektorer — då dess program innehåller många fler grindar, se figur 3.7 och 3.8. 28 5 Slutsatser och vidare undersökningar Slutsatser Utifrån våra resultat och den diskussion vi presenterat i kapitel 4 kan vi obser- vera ett antal fenomen. Från teorin fås att ju fler basvektorer i approximationen av tillståndsrummet (se exempelvis figur 3.1), desto bättre blir uppskattningen av grundtillståndsenergin. Anmärkningsvärt är dock att det inte alltid är fördelaktigt att lägga till fler basvektorer. Som vi noterade i avsnitt 4.2 offras då optimeringens robusthet. Vidare blir väntevärdena mer avvikande vid fler basvektorer vilket är ett problem som helt uppkommer från den ökade komplexiteten hos optimeringsproble- met. Vi finner således att optimeringsalgoritmen är en begränsande faktor för ett noggrant resultat, snarare än att antalet basvektorer är för få. Att enbart svepa över olika värden på vågfunktionsansatsens parametrar jäm- fört med att köra en optimeringsalgoritm gav i vårt fall likvärdiga resultat för N = 2 basvektorer, som vi såg i avsnitt 4.2. Däremot presterade optimeringsalgoritmen av- sevärt bättre för N > 2, samtidigt som det är viktigt att notera att optimering kräver en rimlig initial gissning. Därför är det viktigt att ha en tillräcklig fysikalisk förståelse för det system man vill simulera. Vi anser att i de fall då en sådan giss- ning finns är optimeringsalgoritmen det rekommenderade alternativet jämfört med parametersvep. Gällande val av ansats observerade vi att ett litet antal grindar i en vågfunk- tionsansats kan ge bra resultat för N = 2 basvektorer. I fallet med fler basvektorer är det viktigt att vågfunktionen bevarar partikelantal; om så inte är fallet så finns ingen garanti för att grundtillståndsenergin svarar mot ett enpartikeltillstånd. Vi märkte däremot i brusundersökningen att det är värt att fundera igenom antalet grindar i den ansats man väljer. För N = 3 basvektorer påverkades våra två ansats- er som förväntat på grindbrus — UCC presterade sämre då denna innehåller fler grindar. För N = 2 basvektorer upptäckte vi dock att det fanns ett intervall då UCC presterade bättre än Small ansatz, trots att den förstnämnda innehåller fler grindar. Vi har således bekräftat att olika ansatser är olika känsliga mot brus; detta är något som bör tas hänsyn till vid kvantmekanisk simulering. 29 5. Slutsatser och vidare undersökningar Vidare studier Den här studien fokuserade på enbart två vågfunktionsansatser, UCC samt den så kallade Small ansatz. Våra resultat visar att det kan vara intressant att studera en ansats som bevarar partikelantal på liknande sätt som UCC men som innehåller färre grindar. Att minska grindantalet är viktigt dels för att minska beräknings- tyngden och dels för att minska bruskänsligheten. Dessutom tror vi att det går att förenkla samma UCC-ansats som vi använde till att bestå av färre grindar genom en noggrannare analys av dess grindsammansättning [10]. På grund av tidsbrist undersökte vi inte på vilket sätt den implementerade brusmodellen skulle påverka optimeringsmetodernas förmåga att hitta grundtill- ståndsenergin. Istället använde vi parametersvep för alla brusundersökningar. En vidare studie av hur en brusmodell påverkar den valda optimeringsalgoritmen är av intresse då optimering överlag presterade bättre än parametersvep. I denna kon- text hade man även kunnat applicera felkorrigeringsmetoder som att till exempel sammanfläta de kvantbitar man vill mäta med en större omgivning [10]. Andra faktorer som hade kunnat påverka en verklig kvantdator är till exem- pel att alla kvantbitar inte är sammankopplade. I den här rapporten har vi dock förbisett denna begränsning genom att inte exkludera några av de fördefinierade grindarna från pyQuil. Att applicera till exempel en CNOT-grind som samman- flätar två kvantbitar kräver att kvantbitarna är sammankopplade. En vidare studie hade kunnat vara att ta hänsyn till denna begränsning. Slutligen, eftersom optimeringen är starkt beroende av en bra gissning till grundtillståndet är det av stort intresse att finna sådana gissningar. En idé ha- de kunnat vara att använda resultatet från en tidigare optimering utfört med fär- re basvektorer. Denna idé bygger på att om vi utvecklar det tillstånd |ψmin〉 som minimerar energin i HO-basen |n00〉 måste 〈ψmin|N00〉 N→∞−→ 0 eftersom |ψmin|2 =∑∞ n=1 〈ψmin|n00〉2 samtidigt som |ψmin|2 = 1. För stora N förväntar vi oss alltså att vågfunktionen ändras väldigt lite när vi går från N till N + 1. 30 Litteratur [1] Richard P Feynman. Simulating Physics with Computers. Tekn. rapport 6. 1982. doi: 10 . 1007 / BF02650179. url: https : / / doi . org / 10 . 1007 / BF02650179. [2] David Deutsch. “Quantum Theory, the Church-Turing Principle and the Uni- versal Quantum Computer”. I: Proceedings of the Royal Society A: Mathe- matical, Physical and Engineering Sciences 400 (1985). doi: 10.1098/rspa. 1985.0070. [3] Benjamin Skuse. The trouble with quantum computing | E&T Magazine. url: https://eandt.theiet.org/content/articles/2016/11/the-trouble- with-quantum-computing/?fbclid=IwAR1BKS2PtOFZd7jIIs3py5CIfbehzEFl- etthQvYfwVQ4Zz0jKjs76T2aBY (hämtad 2019-05-06). [4] Franz Schwabl. Advanced Quantum Mechanics. 2nd. Springer-Verlag, 2004, s. 405. isbn: 9783662054208. [5] David J. Griffiths. Introduction to Quantum Mechanics. Third. Cambridge University Press, 2018. isbn: 978-1-107-18963-8. doi: 10.1017/9781316995433. [6] Marcos Moshinsky och Yuri F. Smirnov. The Harmonic Oscillator in Modern Physics. Harwood Academic Publishers, 1996, s. 414. isbn: 978-3718606214. [7] E. F. Dumitrescu m. fl. “Cloud Quantum Computing of an Atomic Nucleus”. I: Physical Review Letters 120.21 (maj 2018). issn: 10797114. doi: 10.1103/ PhysRevLett.120.210501. [8] Kanav Setia och James D Whitfield. “Bravyi-Kitaev Superfast simulation of electronic structure on a quantum computer”. I: 03755 (2018), s. 1–13. arXiv: arXiv:1712.00446v3. [9] David. P. Divincenzo et al. “The physical implementation of quantum compu- tation”. I: Fortschritte der Physik 48 (2000), s. 771–783. issn: 00158208. url: https://arxiv.org/abs/quant-ph/0002077. [10] Michael A. Nielsen & Isaac L. Chuang. Quantum Computation and Quantum Information, by M.A. Nielsen and I.L. Chuang. Vol. 52. 6. 2011, s. 604–605. isbn: 0521635039. doi: 10.1080/00107514.2011.587535. arXiv: arXiv: 1011.1669v3. url: http://www.tandfonline.com/doi/abs/10.1080/ 00107514.2011.587535. [11] Mark M. Wilde. From Classical to Quantum Shannon Theory. Cambridge Uni- versity Press, juni 2011. doi: 10.1017/9781316809976.001. arXiv: 1106. 1445. url: http://arxiv.org/abs/1106.1445%20http://dx.doi.org/10. 1017/9781316809976.001. [12] Rigetti.Grove 1.7.0 documentation. url: https://grove-docs.readthedocs. io/en/latest/index.html (hämtad 2019-03-29). 31 https://doi.org/10.1007/BF02650179 https://doi.org/10.1007/BF02650179 https://doi.org/10.1007/BF02650179 https://doi.org/10.1098/rspa.1985.0070 https://doi.org/10.1098/rspa.1985.0070 https://eandt.theiet.org/content/articles/2016/11/the-trouble-with-quantum-computing/?fbclid=IwAR1BKS2PtOFZd7jIIs3py5CIfbehzEFl-etthQvYfwVQ4Zz0jKjs76T2aBY https://eandt.theiet.org/content/articles/2016/11/the-trouble-with-quantum-computing/?fbclid=IwAR1BKS2PtOFZd7jIIs3py5CIfbehzEFl-etthQvYfwVQ4Zz0jKjs76T2aBY https://eandt.theiet.org/content/articles/2016/11/the-trouble-with-quantum-computing/?fbclid=IwAR1BKS2PtOFZd7jIIs3py5CIfbehzEFl-etthQvYfwVQ4Zz0jKjs76T2aBY https://doi.org/10.1017/9781316995433 https://doi.org/10.1103/PhysRevLett.120.210501 https://doi.org/10.1103/PhysRevLett.120.210501 http://arxiv.org/abs/arXiv:1712.00446v3 https://arxiv.org/abs/quant-ph/0002077 https://doi.org/10.1080/00107514.2011.587535 http://arxiv.org/abs/arXiv:1011.1669v3 http://arxiv.org/abs/arXiv:1011.1669v3 http://www.tandfonline.com/doi/abs/10.1080/00107514.2011.587535 http://www.tandfonline.com/doi/abs/10.1080/00107514.2011.587535 https://doi.org/10.1017/9781316809976.001 http://arxiv.org/abs/1106.1445 http://arxiv.org/abs/1106.1445 http://arxiv.org/abs/1106.1445%20http://dx.doi.org/10.1017/9781316809976.001 http://arxiv.org/abs/1106.1445%20http://dx.doi.org/10.1017/9781316809976.001 https://grove-docs.readthedocs.io/en/latest/index.html https://grove-docs.readthedocs.io/en/latest/index.html Litteratur [13] Jonathan Romero m. fl. “Strategies for quantum computing molecular energies using the unitary coupled cluster ansatz”. I: Quantum Science and Technology 4.1 (2019), s. 1–18. issn: 20589565. doi: 10.1088/2058-9565/aad3e4. arXiv: arXiv:1701.02691v2. [14] Isaiah Shavitt och Rodney J. Bartlett. “Foundations of coupled-cluster the- ory”. I: Many – Body Methods in Chemistry and Physics. Cambridge: Cam- bridge University Press, 2009, s. 251–291. doi: 10.1017/CBO9780511596834. 010. url: https://www.cambridge.org/core/books/manybody-methods- in-chemistry-and-physics/D12027E4DAF75CE8214671D842C6B80C. [15] Rodney J Bartlett och Monika Musiał. “Coupled-cluster theory in quantum chemistry”. I: REVIEWS OF MODERN PHYSICS 79.March (2007), s. 293. doi: 10.1103/RevModPhys.79.291. [16] M.J Powell. “On search directions for minimization algorithms”. I: Mathe- matical Programming 4.1 (1973), s. 193–201. issn: 00255610. url: https: //link.springer.com/chapter/10.1007/978-94-015-8330-5_4. [17] M.J Powell. “Advances in Optimization and Numerical Analysis”. I: Advan- ces in Optimization and Numerical Analysis. Springer, 1994, s. 51–67. isbn: 9789048143580. url: https://www.springer.com/la/book/9780792326731. [18] Rigetti. pyQuil 2.5.2 documentation. url: http://docs.rigetti.com/en/ stable/ (hämtad 2019-03-29). [19] Robert S Smith m. fl. “A Practical Quantum Instruction Set Architecture”. I: (2016). arXiv: arXiv:1608.03355v2. [20] Jarrod R. McClean m. fl. “OpenFermion: The Electronic Structure Package for Quantum Computers”. I: (2017), s. 1–22. issn: 0001-4575. arXiv: 1710.07629. url: http://arxiv.org/abs/1710.07629. 32 https://doi.org/10.1088/2058-9565/aad3e4 http://arxiv.org/abs/arXiv:1701.02691v2 https://doi.org/10.1017/CBO9780511596834.010 https://doi.org/10.1017/CBO9780511596834.010 https://www.cambridge.org/core/books/manybody-methods-in-chemistry-and-physics/D12027E4DAF75CE8214671D842C6B80C https://www.cambridge.org/core/books/manybody-methods-in-chemistry-and-physics/D12027E4DAF75CE8214671D842C6B80C https://doi.org/10.1103/RevModPhys.79.291 https://link.springer.com/chapter/10.1007/978-94-015-8330-5_4 https://link.springer.com/chapter/10.1007/978-94-015-8330-5_4 https://www.springer.com/la/book/9780792326731 http://docs.rigetti.com/en/stable/ http://docs.rigetti.com/en/stable/ http://arxiv.org/abs/arXiv:1608.03355v2 http://arxiv.org/abs/1710.07629 http://arxiv.org/abs/1710.07629 A Test av fermioniska kanoniska kommutationsrelationer Tensorprodukter har följande egenskaper: A⊗ C +B ⊗ C = (A+B)⊗ C (A.1) c(A⊗B) = (cA)⊗B = A⊗ (cB). (A.2) En observation är att om en kedja operatorer verkar på en rad sites (ockupations- tillstånd) enligt O = O0 ⊗O1 ⊗ . . .On−1 ⊗On. Om en av dessa operatorer är en nolloperator Oi = 0 är hela kedjan en nolloperator O = 0 enligt (A.2). De fermioniska kanoniska kommutationsrelationerna är {ai, aj} = 0, (A.3) {ai, a†j} = δij. (A.4) Vi kan definiera kreations- och annihilationsoperatorer med hjälp av Paulimatriserna X, Y , och Z enligt a†n = 1 2 ∏ j q nu trivialt. Så antag nu p = q. 4{ap, ap} = Z0Z0 Z1Z1 . . . Zp−1Zp−1 (Xp + iYp)(Xp + iYp) + Z0Z0 Z1Z1 . . . Zp−1Zp−1 (Xp + iYp)(Xp + iYp). Men enligt (A.9) är (Xp + iYp)(Xp + iYp) = 0 så vi måste ha att {ap, ap} = 0. Vi har nu visat att våra definitioner uppfyller kommutationsrelationen (A.3). För att visa den andra kommutationsrelationen (A.4) ställer vi upp (för p < q) 4{ap, aq} = Z0Z0 Z1Z1 . . . Zp−1Zp−1 (Xp + iYp)Zp IZp+1 . . . IZq−1 I(Xq − iYq) + Z0Z0 Z1Z1 . . . Zp−1Zp−1 Zp(Xp + iYp) Zp+1I . . . Zq−1I (Xq − iYq)I. II A. Test av fermioniska kanoniska kommutationsrelationer Precis som tidigare noterar vi att vi kan addera de två tensorprodukterna enligt (A.1) och att vi då, på site p, erhåller (Xp + iYp)Zp + Zp(Xp + iYp) = 0 =⇒ 4{ap, a†q} = 0 Som innan är fallet p > q nu trivialt. Vi betraktar slutligen fallet p = q: 4{ap, aq} = Z0Z0 Z1Z1 . . . Zp−1Zp−1 (Xp + iYp)(Xp − iYp) + Z0Z0 Z1Z1 . . . Zp−1Zp−1 (Xp − iYp)(Xp + iYp). Igen, adderar vi tensorprodukterna enligt (A.1) och använder identiteterna (A.9) och (A.7) för Paulimatriserna. Vi kan nu se att 4{ap, a†p} = I ⊗ I ⊗ · · · ⊗ I ⊗ 4I ⊗ I ⊗ . . . Om vi delar höger- och vänsterled med 4 enligt (A.2) erhåller vi {ap, a†p} = I. Vi har nu visat att definitionerna (A.5) och (A.6) uppfyller (A.4) och därmed att våra kreations- och annihilationsoperatorer uppfyller de fermioniska kanoniska kom- mutationsrelationerna. � Kommentarer: Av den här härledningen ser vi även att en helt ekvivalent definition hade varit om man ersatt Zj med −Zj i (A.5) eftersom resultatet hade blivit att {ai, aj} ersatts med −{ai, aj} i (A.3) när antingen i eller j varit udda. Men eftersom {ai, aj} = 0 är {ai, aj} = −{ai, aj}. På samma sätt är {ai, a†j} i (A.4) endast nollskiljd när i = j, så minustecknen kancellerar varandra. Båda definitionerna förekommer i litteraturen. Av (A.3) följer även direkt att {a†i , a † j} = {aj, ai}† = 0† = 0. III B Analytiskt beräknad Hamiltonian med två basvektorer Enligt andrakvantiseringen gäller det att Hamiltonianen utvecklad i N = 2 basvek- torer ges av H2 = H00a † 0a0 +H01a † 0a1 +H10a † 1a0 +H11a † 1a1. Med Jordan-Wigner-transformation hamnar en faktor 1/4 på varje term i högerledet, så vi skriver om det enligt 4H2 = H00(X0 − iY0)(X0 + iY0) +H01(X0 − iY0)(−Z0)(X1 + iY1) +H10(−Z0)(X1 − iY1)(X0 + iY0) +H11(−Z0)(X1 − iY1)(−Z0)(X1 + iY1). Vidare noterar vi att XiYj = YjXi, vilket ger att 4H2 = H00(X0X0 + Y0Y0 + iX0Y0 − iY0X0) (B.1) −H01(X0Z0 − iY0Z0)(X1 + iY1) (B.2) −H10(Z0X0 + iZ0Y0)(X1 − iY1) (B.3) +H11Z0Z0(X1 − iY1)(X1 + iY1). (B.4) Vidare gäller det att XiXi = YiYi = ZiZi = I. (B.5) Därför kan vi skriva (B.1) = H00(2I + i[X0, Y0]) = H00(2I − 2Z0). Dessutom gäller H01 = H10. Således kan vi också skriva (B.2) + (B.3) = −H10({X0, Z0}X1 + i[X0, Z0]Y1 + {Y0, Z0}Y1 + i[Z0, Y0]X1) = −H10(−2i · iY0Y1 − 2i · iX0X1) = −2H10(X0X1 + Y0Y1). Den sista termen i H2 blir (B.4) = H11I(X1X1 + Y1Y1 + i[X1, Y1]) = H11(2I − 2Z1). IV B. Analytiskt beräknad Hamiltonian med två basvektorer Totalt sett ges H2 alltså av 4H2 = H00(2I − 2Z0)− 2H10(X0X1 + Y0Y1) +H11(2I − 2Z1). ⇐⇒ H2 = H00 2 (I − Z0)− H10 2 (X0X1 + Y0Y1) + H11 2 (I − Z1). = H00 +H11 2 I − H00 2 Z0 − H11 2 Z1 − H10 2 (X0X1 + Y0Y1). V C Reella symmetriska matriser Sats. Om λ är ett egenvärde till en reell symmetrisk matris A, så finns en reell egenvektor v som löser egenvärdesproblemet (A− λI)v = 0. (C.1) Bevis. Vi observerar först att λ ∈ R följer av spektralsatsen. Låt x = u + iw, där u och w är reella, vara en egenvektor som hör till λ. Existensen av x följer av definitionen av egenvärde. Vi kan då skriva om (C.1) som (A− λI)(u+ iw) = 0 (A− λI)u+ i(A− λI)w = 0 (C.2) där (A − λI)u och (A − λI)w båda är reella eftersom (A − λI) är en reell matris. För att real- och imaginärdel av VL i (C.2) var för sig ska vara 0 måste(A− λI)u = 0 (A− λI)w = 0 gälla. Alltså är de reella vektorerna u och w båda lösningar till egenvärdesproble- met (C.1). u och w kan inte båda vara nollvektorer då x per definition inte är en nollvektor, alltså är minst en av u och w en reell egenvektor som löser (C.1). � VI D Visualisering av grundtillståndet Varje kvantbit representerar en vågfunktion som är en egenvektor till den harmoniska oscillatorns Hamiltonian. I avsnitt 2 antog vi att l- ochm-kvanttalen var 0, alltså att dessa vågfunktioner endast har ett radiellt beroende, Rn0(r). Dessa vågfunktioner är helt reella. Vi har även argumenterat för att koefficienterna till vårt grundtillstånd är helt reella. Detta innebär att ett grundtillstånd ψ är helt reellt och endast har radiellt beroende. Vi skulle därför kunna plotta ψ i en graf med två axlar. Pyquil innehåller en klass, WavefunctionSimulator , som vi kan använda till att extrahera vågfunktionen till ett preparerat tillstånd. Om vi extraherar vågfunk- tionen från det bästa optimeringsresultatet i tabell 4.8 (N = 5) har vi en approxima- tion till enelektronens grundtillstånd som vi kan plotta bredvid en analytisk exakt lösning av enelektronatomens grundtillstånd. Se figur D.1. 0 a r 0 ψ Exakt v̊agfunktion n=1-term n=2-term n=3-term n=4-term n=5-term Approximativ v̊agfunktion Figur D.1: ψ(r) = ∑ n cnRn0(r) där Rn0 är egenvektorer till den harmoniska oscil- latorns Hamiltonian. Här a är Bohrradien. Vi ser att vår approximativa vågfunktion väl överensstämmer med den exakta. VII E Första exciterade tillståndet Med VQE-algoritmen kan vi ta fram det lägsta egenvärdet till en Hamiltonian, H, i ett ändligdimensionellt underrum, U , av tillståndsrummet, U . Ett antagande som görs är att om 〈H〉 är en bra approximation till grundtillståndsenergin så är tillhö- rande tillstånd |ψ〉 en bra approximation till grundtillståndet. Vi vill nu beskriva hur man med hjälp av detta antagande kan approximera exciterade tillstånds energier. Betrakta en en explicit matrisrepresentation av H H =  H11 H12 . . . H1n H21 H22 . . . H2n ... ... . . . ... Hn1 Hn2 . . . Hnn  i någon ON-bas, {|e1〉 , |e2〉 , . . . , |eN〉}. Eftersom H är en observabel, och därför Her- mitesk, har H en ortogonal uppsättning egenvektorer. Numrera dessa egenvektorer efter deras egenvärden λ1 ≤ λ2 ≤ λ3 ≤ · · · . Låt nu 〈ψ1|H|ψ1〉 = λ1. Då är, under vårt antagande, |ψ1〉 ortogonal mot |λ2〉 , |λ3〉 , · · · . Vi kan då konstruera en ortogonal transformation, S1, som för |e1〉 till |ψ1〉. |e1〉 är då en egenvektor med egenvärde λ1 till SHS−1. Men eftersom S är ortogonal är även SHS−1:s egenvektorer ortogonal, SHS−1 måste därför ha formen SHS−1 =  λ1 0 . . . 0 0 (SHS−1)22 . . . (SHS−1)2n ... ... . . . ... 0 (SHS−1)n2 . . . (SHS−1)nn  . Vi kan nu nu definera matrisen H ′ enligt SHS−1 =  λ1 0 . . . 0 0 ... H ′ 0  . H ′ är nu en matrisrepresentation av H i ett underrum, U span(ψ1), där alla tillstånd är ortogonala mot grundtillståndet |λ1〉. Enligt variationsprincipen är nu 〈H ′〉 ≥ λ2 och vi kan igen använda VQE för att hitta en approximation |ψ2〉 till |λ2〉. Denna metod kan itereras för att hitta det andra, tredje, etc exciterade tillståndet. VIII E. Första exciterade tillståndet Man hade även kunnat tänka sig ett naivare tillvägagångssätt där det minsta egenvärdet tas bort genom att ersätta H med H ′ = H − λ1 |λ1〉 〈λ1|. H ′:s spektrum skulle då vara samma som H, förutom att |λ1〉 skulle ha egenvärde 0. I vår rapport har vi gjort antaganden specifika för grundtillståndet, som till exempel att kvanttalen l = m = 0. Dessa antaganden hade hindrat oss från att hitta en bra approximation till exciterade energier om vi naivt bara projicerat ut grundtillståndet. IX Inledning Teori Enelektronsystemets Hamiltonian Hamiltonianens matriselement Jordan-Wignertransformation och spinnformalism Kvantmekaniska och klassiska datorer Informationshantering i datorer Brus i klassiska respektive kvantmekaniska datorer Metod Referenslösning för enelektronsystemet VQE Vågfunktionsansatser Klassiska optimeringsalgoritmer Parametersvep Simulering på kvantdatorn Pythonbibliotek Programmering på kvantdatorn Resultat och Diskussion Jämförelse mellan ansatser för parametersvep Jämförelse mellan parametersvep och optimering för UCC Undersökningar av mät- och grindbrus Slutsatser och vidare undersökningar Test av fermioniska kanoniska kommutationsrelationer Analytiskt beräknad Hamiltonian med två basvektorer Reella symmetriska matriser Visualisering av grundtillståndet Första exciterade tillståndet