Kwantumcomputing

Nature isn’t classical, dammit, and if you want to make a simulation of nature, you’d better make it quantum mechanical, and by golly it’s a wonderful problem, because it doesn’t look so easy.

R.P. Feynman

Mijn masterthesis gaat over het construeren en simuleren van een fout-corrigerende code voor topologische kwantumcomputing met niet-Abelse anyonen in het Fibonacci string-net model. Een zin vol dure woorden waarvan er één zelfs af en toe in het nieuws opduikt tegenwoordig. Zoals elk gespecialiseerd onderwerp is ook mijn thesisonderwerp eigenlijk veel minder indrukwekkend dan het klinkt, en in dit korte artikel probeer ik de taalbarrière wat te doorbreken door de belangrijkste concepten in mensentaal te illustreren. We gaan woord per woord, en we beginnen bij `kwantum’.               

Kwantummechanica               

Een dynamica vraagstuk uit de les fysica in het middelbaar gaat doorgaans ongeveer als volgt: gegeven de positie en snelheid van een voorwerp op een bepaald tijdstip, bereken de positie en snelheid op een zeker later tijdstip. Het wapen dat we gebruiken om zo’n probleem op te lossen is de tweede wet van Newton, \vec{F} = m \vec{a}, die zegt hoe de snelheid van een voorwerp verandert wanneer er een kracht op dat voorwerp uitgeoefend wordt. Dergelijke problemen worden al snel heel moeilijk wanneer er meer dan twee voorwerpen bij betrokken zijn, maar het concept blijft hetzelfde. De toestand van een systeem met bestaande uit een aantal voorwerpen op een gegeven tijdstip is bepaald door de posities en snelheden van die deeltjes. De wetten van de fysica, meestal in de vorm van enkele wiskundige vergelijkingen, vertellen ons hoe die posities en snelheden veranderen in de tijd.

Aangevuld met de theorie van het elektromagnetisme, die licht als een golf beschrijft, slaagde dit beeld van de klassieke fysica erin om allerlei fenomenen in de natuur te verklaren. In het begin van de 20e eeuw kwamen echter enkele problemen bovendrijven die de klassieke fysica niet langer de baas kon. Het Stern-Gerlach experiment en het twee-spletenexperiment toonden aan dat het beeld van een deeltje met een welbepaalde positie en snelheid op elk moment niet langer volstaat. Langs de andere kant bleek uit Planck’s beschrijving van de zwarte straler en Einstein’s verklaring voor het  foto-elektrisch effect dat het niet volstond om licht zuiver als een golf te beschouwen. Het bleek dat elk deeltje zich ook kan gedragen als een golf, en dat licht in sommige omstandigheden de eigenschappen van een deeltje vertoont. Deze dualiteit tussen deeltje en golf inspireerde een totaal nieuwe beschrijving van de werkelijkheid, genaamd kwantummechanica. Deze nieuwe theorie slaagde er niet alleen in om veel van de gekende problemen van de klassieke fysica op te lossen, maar opende een volledig nieuw venster op het gedrag van het Universum op zeer kleine schaal. Dit gedrag is vaak zeer bizar en komt absoluut niet overeen met het deterministische beeld van vroeger. Maar hoe bizar de kwantummechanica ook leek op het eerste gezicht, de resultaten die ze gaf kwamen perfect overeen met experimentele waarnemingen. Dit succes werd verdergezet en culmineerde uiteindelijk in he Standaardmodel van de elementaire deeltjesfysica, een theorie die consistent is met (bijna) elk experiment dat tot op heden is uitgevoerd.

Een kat in een doos. Of die nu leeft of niet ontdek je binnenkort in een andere post.

 

Voor we doorgaan naar kwantumcomputing staan we even stil bij hoe de toestand van een systeem dan beschreven wordt in deze nieuwe theorie. Het volstaat niet langer om voor een deeltje een positie en snelheid te specifiëren. Sterker nog, een deeltje kan niet tegelijkertijd een welbepaalde positie en een welbepaalde snelheid hebben.[1] Hoe moet de toestand van een kwantumsysteem dan wel beschreven worden? Het superpositiebeginsel van de kwantummechanica zegt dat elke combinatie van twee geldige kwantumtoestanden opnieuw een geldige kwantumtoestand oplevert. Het is dus natuurlijk om toestanden te beschrijven als vectoren, waarbij het optellen van twee vectoren opnieuw een vector geeft. Er wordt daarom vaak gezegd dat een kwantumsysteem zich in meerdere toestanden tegelijkertijd kan bevinden. Dit is een nogal verwarrende uitspraak die al snel leidt tot discussies over katten in dozen die al dan niet dood en/of levend zijn. Voorlopig is het zinvoller om te zeggen dat een kwantumsysteem zich steeds in een welbepaalde toestand bevindt, maar dat deze toestand een combinatie kan zijn van verschillende andere toestanden. Beter gezegd, een willekeurige kwantumtoestand kan bepaalde eigenschappen vertonen van verschillende toestanden tegelijk. En dit feit kan uitgebuit worden om dingen te doen die klassiek gezien onmogelijk zijn.               

Kwantumcomputing        

De beschrijving van fysische systemen aan de hand van kwantumtheorie is één van de grote triomfen van de fysica in de 20e eeuw. In de jaren ’70 begonnen sommigen echter verder te kijken dan de pure beschrijving van kwantumsystemen. Ze vroegen zich af wat kwantumsystemen voor ons konden doen. Richard Feynman was een van de eersten die deze vraag opwierp toen hij suggereerde dat kwantumsystemen zelf konden gebruikt worden om kwantumsystemen te simuleren, iets dat vreselijk moeilijk blijkt op een gewone computer. Dit gaf het startschot voor het onderzoek naar kwantumcomputing. Het was David Deutsch die enkele jaren later aantoonde dat een universele kwantumcomputer niet alleen mogelijk was, maar dat die dan ook nog tot dingen in staat zou zijn die onmogelijk zijn met een klassieke computer. Het onderzoek naar kwantumcomputing sloeg verder aan, en leverde wat later het bekendste voorbeeld van de mogelijkheden van een kwantumcomputer: het factorisatie-algoritme van Peter Shor. Dit algoritme laat toe om een gegeven getal te ontbinden in zijn priemfactoren in een tijd die exponentieel korter is dan wanneer dezelfde opdracht uitgevoerd zou worden met een klassieke computer. Kwantumcomputing zou dan niet alleen het einde van cryptografie zoals we ze kennen betekenen, maar zou terzelfdertijd een volledig nieuw tijdperk van kwantumcryptografie inluiden.


Een kwantum computer gebaseerd op supergeleidende qubits, ontwikkeld door IBM Research in Zürich, Zwitserland (bron: Wikipedia).


Een qubit, als een veralgemening van een klassieke bit die alle waarden in een continuüm tussen \ket{0} en \ket{1} kan aannemen.

 

De vraag is natuurlijk: wat ligt er aan de oorsprong van deze uitzonderlijke kracht van een kwantumcomputer? Het antwoord ligt bij het superpositiebeginsel. De beschrijving van een kwantumcomputer is gebaseerd op het simpelste kwantumsysteem dat er bestaat. De ondeelbare eenheid van klassieke informatie is de bit: een object dat twee waarden kan aannemen, 0 of 1. Elke berekening op een gewone computer komt in essentie neer op een slimme manipulatie van een hele hoop dergelijke bits. Kwantuminformatie heeft een soortgelijke bouwsteen die een qubit (`quantum bit’) genoemd wordt. Een qubit is een kwantumsysteem met twee niveaus, die we aanduiden met \ket{0} en \ket{1}. We kunnen ons bijvoorbeeld inbeelden dat \ket{0} en \ket{1} respectievelijk overeenkomen met de grondtoestand en de eerste geëxciteerde toestand van een waterstofatoom. De meest algemene toestand \ket{\psi} van een qubit is dan, wegens het superpositiebeginsel, een combinatie van \ket{0} en \ket{1}:
               

(1)   \begin{equation*}                 \ket{\psi} = \alpha \ket{0} + \beta \ket{1}\,.                 \end{equation*}

Hier zijn \alpha en \beta gewoon bepaalde getallen die de toestand van de qubit volledig bepalen. Een kwantumcomputer bestaat uit een register van N dergelijke qubits. Een algemene toestand van de qubits in een kwantumcomputer kan dan geschreven worden als
               

(2)   \begin{equation*}                 \ket{01110010\cdots 1001}\,,                 \end{equation*}

waarbij de reeks van N bits in deze uitdrukking de toestand van elke qubit afzonderlijk voorstellen. Met een reeks van N bits komt een getal tussen 0 en 2^{N-1} overeen zodat we, opnieuw naar het superpositiebeginsel, de algemene toestand van een kwantumcomputer kunnen schrijven als
               

(3)   \begin{equation*}                 \sum_{x=0}^{2^{N-1}} \alpha_x \ket{x}\,,                 \end{equation*}

waarbij de \alpha_x opnieuw bepaalde getallen zijn. Nu is al duidelijk wat het fundamentele verschil tussen een klassieke computer en een kwantumcomputer is. De toestand van N klassieke bits is een reeks van 0-en en 1-tjes die overeenkomen met één enkel getal tussen 0 en 2^{N-1}. De toestand van N qubits daarentegen is een combinatie van 2^N verschillende toestanden tegelijk, die elk overeenkomen met een getal tussen 0 en 2^{N-1}. Wanneer we een berekening uitvoeren op een kwantumcomputer, dan voeren we dus in zekere zin een berekening uit op 2^N verschillende getallen tegelijkertijd, iets wat klassiek gezien onmogelijk is. Dit fenomeen van kwantumparallellisme is precies wat uitgebuit wordt in kwantumalgoritmen die bepaalde taken schijnbaar exponentieel sneller kunnen uitvoeren dan gelijk welke klassieke computer. We kunnen helemaal niet letterlijk elke berekening op verschillende getallen tegelijk uitvoeren en het resultaat uitlezen, maar door gebruik te maken van een slim gekozen superpositie van toestanden kunnen we een kwantumcomputer verschillende trajecten tegelijkertijd laten doorlopen om zo globale informatie over alle toestanden in de superpositie te achterhalen.

Als we de superposities die nuttig blijken voor kwantumalgoritmen in wat meer detail bekijken, dan zien we dat deze allemaal een bizarre eigenschap vertonen genaamd kwantumverstrengeling. Dit is een soort van correlaties tussen verschillende delen van een fysisch systeem die geen klassiek analogon hebben. Normaal wordt verstrengeling gezien als een of ander raar fenomeen dat we niet in de hand hebben en waar we weinig tot geen intuïtie over hebben. Kwantumcomputing toont echter dat het expliciet gebruik maken van kwantumverstrengeling toelaat om wonderlijke dingen te doen. We kunnen stellen dat de kracht van kwantumcomputing in essentie komt van het gebruik van kwantumverstrengeling als een grondstof.

Fouten als spelbreker

De toestand van een systeem beschrijven als een superpositie van verschillende toestanden klinkt heel exotisch, maar hoe komt het dan dat we nog nooit een voorwerp op twee plekken tegelijk hebben gezien? Als we de positie van een voorwerp meten dan krijgen we één resultaat (met een bepaalde precisie), en geen lijst van verschillende mogelijke posities. Dit fenomeen wordt beschreven als de collapse van de kwantumtoestand: als we een meting van de positie uitvoeren dan vinden we een welbepaald resultaat, en dan is de toestand na de meting enkel een combinatie van toestanden met een bepaalde positie die overeenkomt met het meetresultaat, alsof de rest van de toestand plots ineenstort. Hetzelfde gebeurt met een qubit: als we een qubit meten dan vinden we ofwel \ket{0} ofwel \ket{1} als resultaat.[2]

Na de meting is de toestand gegeven door ofwel \ket{0} ofwel \ket{1} (afhankelijk van het meetresultaat), en is alle informatie over de oorspronkelijke superpositie verdwenen. Om het simpel te zeggen: de meting vernielt de toestand.

Als we een kwantumsysteem in een bepaalde omgeving plaatsen, dan zullen onvermijdelijk interacties plaatsvinden tussen het systeem en zijn omgeving. Hoe goed je een systeem ook probeert te isoleren, er zullen altijd kleine lokale interacties met deeltjes van buitenaf plaatsvinden. Als wij de toestand van een qubit kunnen bepalen met een lokale meting, dan kan een rondvliegend foton dat botst met een qubit dat ook. De interacties met de omgeving gedragen zich dus als continue kleine metingen, en maken zo de zorgvuldig gebouwde superpositie van toestanden waarin we onze computer voorbereid hebben kapot. Dit fenomeen wordt decoherentie genoemd en zorgt ervoor dat alle toestanden in de superpositie zich onafhankelijk van elkaar gaan gedragen, alsof de toestand ineengestort is. Dit is de fundamentele reden waarom we de wereld niet door een kwantum-bril zien: superposities van macroscopische toestanden vervallen bijna onmiddellijk door decoherentie, waardoor het voor ons lijkt alsof alles zich steeds in één welbepaalde toestand bevindt. Decoherentie is het grootste obstakel voor het bouwen van een functionerende kwantumcomputer. Een tweede probleem wordt veroorzaakt door het feit dat de operaties die uitgevoerd worden tijdens een berekening niet perfect nauwkeurig zijn, maar zelf ook fouten kunnen veroorzaken. Terwijl fouten op klassieke bits discreet zijn (een bit kan enkel de waarden 0 of 1 hebben), kan een fout op een kwantumcomputer wegens het superpositiebeginsel een continuüm aan fouten veroorzaken.[3]

Fouten gebeuren natuurlijk ook in klassieke computers. Daar kunnen ze echter vrij eenvoudig bestreden worden door dezelfde informatie in meerdere kopieën te bewaren, zodat ze toch beschermd blijft als er fouten in enkele kopieën voorkomen. Om de toestand van een kwantumsysteem te kopiëren moeten we eerst weten wat die toestand is. Maar als we meten wat de toestand is, dan maken we hem net kapot.[4] Om deze reden werd lang gedacht dat kwantumcomputing in de praktijk altijd onmogelijk zou blijven. Het was opnieuw Peter Shor die aantoonde dat het niet alleen mogelijk is om een kwantumcomputer te beschermen tegen decoherentie door interacties met de omgeving, maar dat ook fouten door imperfecte operaties tijdens de berekening zelf effectief bestreden kunnen worden. Het blijkt dat het steeds mogelijk is om een berekening met een realistische kwantumcomputer succesvol uit te voeren zolang het tempo waarmee fouten voorkomen onder een bepaalde waarde blijft. Het blijkt echter dat dat maximale tempo waarmee fouten mogen voorkomen zeer laag is, wat voorlopig een groot probleem is voor de experimentele realisatie van een functionerende kwantumcomputer. Het is op dit moment nog steeds onduidelijk of we in staat zullen zijn om een implementatie te bouwen die nauwkeurig genoeg is om op deze manier fouten te bestrijden.

Een (eenvoudig, geloof het of niet) circuit dat 1 qubit aan informatie beschermt. We hebben hiervoor dus 9 fysieke qubits nodig, en al die moeite levert ons maar 1 qubit waar we effectief mee kunnen rekenen. Geen wonder dat het bouwen van een kwantumcomputer zo moeilijk is!

 

In plaats van het gebruiken van ingewikkelde schema’s (zoals bijvoorbeeld in bovenstaande figuur) om mogelijke fouten tegen te gaan op het software niveau, kunnen we ons afvragen of er geen manier is om een kwantumcomputer te bouwen die inherent bestand is tegen fouten op het hardware niveau. Deze vraag werd met glans beantwoord door Alexei Kitaev in 1997.

 

Anyonen en topologische kwantumcomputing               

We weten al dat metingen kwantumtoestanden kapotmaken, en dat interacties met de omgeving zorgen voor een soort van continue lokale metingen. Het idee achter foutcorrectie voor een kwantumcomputer is dan om informatie op zo een manier op te slaan dat je ze niet kan meten door lokaal naar de toestand van het systeem te kijken. Om het ingewikkelder te verwoorden: in plaats van informatie op te slaan in een deel van het systeem, sla je in de plaats daarvan de informatie op in de correlaties tussen verschillende delen van het systeem. Als je dan naar één deel kijkt, kan je onmogelijk de verborgen informatie te weten komen. Een nietsvermoedend foton dat door het systeem vliegt op een bepaalde plaats kan dan niets te weten komen over de informatie die we in het systeem gestopt hebben, en kan ze dus ook niet kapot maken.

Toegegeven, het is moeilijk om je onmiddellijk iets voor te stellen bij de woorden `informatie opslaan in correlaties tussen verschillende delen van een systeem’. Stel echter dat je twee deeltjes hebt met een bepaalde lading, die je kan zien als een soort van elektrische lading. Beeld je nu in dat als je die twee deeltjes samensmelt, of fuseert, dat het resulterende deeltje twee verschillende waarden van de lading kan hebben. Deze totale lading is een eigenschap van de twee deeltjes samen, en je kan dus enkel te weten komen wat de totale lading is door de deeltjes samen te brengen en te fuseren. Als je nu de ene waarde van de totale lading \ket{0} noemt en de andere \ket{1}, dan geven die twee deeltjes je precies een qubit aan informatie. Als we dan de deeltjes ver uit elkaar brengen, dan is deze qubit aan informatie automatisch beschermd tegen interacties met de omgeving. We kunnen nooit de totale lading te weten komen door naar elk van de deeltjes afzonderlijk te kijken, dus een rondvliegend foton dat met een van de deeltjes botst kan onmogelijk de informatie vernietigen. Een lokale interactie met de omgeving kan de qubit niet meten, dus het kan hem ook niet kapotmaken!

 

Een bereking op een topologische kwantumcomputer kan voorgesteld worden als het vlechten van anyonen (jawel, ook vlechten is een beetje theoretische fysica). Een kleine vervorming van de paden heeft geen invloed op het resultaat van de berekening, aangezien de uiteindelijke vlecht steeds dezelfde is.

 

Deeltjes die twee verschillende ladingen kunnen geven als je ze fuseert, dat klinkt vrij exotisch. Maar dit soort deeltjes komt weldegelijk voor: ze zijn al experimenteel waargenomen in systemen die in een zogenaamde topologische fase verkeren. Dit is een speciale fase van materie die allerlei interessante eigenschappen vertoont, waaronder het voorkomen van (quasi-) deeltjes met de exotische eigenschappen die we hierboven beschreven hebben. Dit soort deeltjes worden anyonen genoemd. Het blijkt nu dat we deze anyonen niet enkel kunnen gebruiken om informatie op te slaan in hun totale lading, maar we er ook nog mee kunnen rekenen. Je kan de totale lading van een paar anyonen namelijk veranderen door er andere anyonen rond te bewegen. Men heeft aangetoond dat je gelijk welke berekening kan uitvoeren door anyonen op een geschikte manier rond elkaar te bewegen. Als je de paden waarop je de anyonen laat bewegen tijdens een berekening ziet als draden, dan kan je een berekening op een kwantumcomputer beschrijven als een bepaalde vlecht van draden. Zolang de paden ongeveer juist zijn is de uiteindelijke vlecht altijd dezelfde. Als een bepaald pad een beetje vervormd wordt door een fout dan heeft dat dus geen invloed op de uitkomst van de berekening. Anyonen laten dus niet alleen toe om informatie op te slaan op een manier die automatisch bestand is tegen fouten, maar zorgen er tegelijkertijd voor dat de berekeningen zelf bestand zijn tegen fouten. Een kwantumcomputer gebouwd uit anyonen wordt een topologische kwantumcomputer genoemd, en zou het probleem van fouten vanzelf oplossen zonder speciale en ingewikkelde schema’s te moeten gebruiken.

Mijn thesis

Hoe kan ik dan een thesis maken over het corrigeren van fouten in een topologische kwantumcomputer? Het probleem is dat zolang de temperatuur van een systeem boven het absolute nulpunt ligt, er altijd anyonen zullen ontstaan door thermische fluctuaties. Deze thermische anyonen kunnen daarna door het systeem bewegen en zo toevallig rond andere anyonen draaien. Aangezien we kunnen rekenen door anyonen rond elkaar te draaien, kan de beweging van deze thermische anyonen dan ook de informatie die we zo zorgvuldig in het systeem gestopt hebben veranderen, zonder dat we dat weten. Om de informatie te beschermen moeten we dus meten waar deze thermische anyonen zich bevinden, en ze wegwerken zonder dat ze rond andere deeltjes draaien. Mijn thesis gaat over hoe we dat meten en wegwerken van anyonen precies kunnen formuleren in een theoretisch model. Het simuleren van zo een model zou dan aantonen dat het effect van de temperatuur op een kwantumcomputer kan tegengegaan worden, en dat een werkende topologische kwantumcomputer dus effectief kan bestaan in de werkelijkheid, en niet enkel op papier.

Lander Burgelman

Student Master of Science in de Fysica & Sterrenkunde

Promotor: Prof. Dr. Frank Verstraete

Begeleider: Alexis Schotte

Non-Abelian topological quantum error correction with Fibonacci string-nets

 

Bronnen:         

  • Richard P. Feynman. Simulating physics with computers. International Journal of Theoretical Physics, 21(6):467–488, June 1982
  • David Deutsch and Roger Penrose. Quantum theory, the Church-Turing principle and the universal quantumcomputer. Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences, 400(1818):97–117, July 1985. Publisher: Royal Society.
  • David Elieser Deutsch and Roger Penrose. Quantum computational networks. Proceedings of the Royal Societyof London. A. Mathematical and Physical Sciences, 425(1868):73–90, September 1989. Publisher: Royal Society.
  • W. Shor. Algorithms for quantum computation: discrete logarithms and factoring. InProceedings 35th AnnualSymposium on Foundations of Computer Science, pages 124–134, November 1994.
  • Peter W. Shor. Scheme for reducing decoherence in quantum computer memory. Physical Review A, 52(4):R2493–R2496, October 1995
  • Peter W. Shor. Fault-tolerant quantum computation. arXiv:quant-ph/9605011, March 1997. 
  • Yu Kitaev. Fault-tolerant quantum computation by anyons. Annals of Physics, 303(1):2–30, January 2003.arXiv: quant-ph/9707021

 

[1] Dit feit wordt doorgaans het onbepaaldheidsprincipe van Heisenberg genoemd, hierover volgt meer in een volgende post.

[2] met een waarschijnlijkheid gegeven door |\alpha|^2 en |\beta|^2 respectievelijk.

[3] Zo’n continue fout kunnen we bijvoorbeeld zien als het roteren van een toestand over een hoek van 90.1° in plaats van een perfecte 90°.

[4] Het feit dat het onmogelijk is om een willekeurige kwantumtoestand te kopiëren wordt ook wel het no-cloning theorema genoemd.