# Kwantumcomputer

Een kwantumcomputer (ook quantumcomputer) is een computer waarbij de processor gebruikmaakt van de principes van de kwantummechanica. Zo'n processor kan in één keer (parallel) dezelfde berekeningen uitvoeren over een zeer grote hoeveelheid data. Die is daardoor tot 10$^{14}$ (of 100 biljoen / 100.000 miljard) malen sneller dan een conventionele computer maar is wel slechts inzetbaar op zeer specifieke taken.

## Geschiedenis

Het concept van de kwantumcomputer werd reeds begin jaren tachtig beschreven door Paul Benioff, Yuri Manin en Richard Feynman. In de jaren daarna ontwikkelden David Deutsch en Peter Shor het concept verder. Door de grote (theoretische) mogelijkheden wordt er tegenwoordig, na aanvankelijke scepsis, wereldwijd veel geld in onderzoek gestoken. In 2017 kwam IBM met een prototype kwantumcomputer in de vorm van een online service. In 2016 bedroeg de markt 89 miljoen dollar.
In december 2023 rapporteerden natuurkundigen voor het eerst de verstrengeling van individuele moleculen, die belangrijke toepassingen kunnen hebben in kwantumcomputers. Eveneens in december 2023 creëerden wetenschappers met succes "kwantumcircuits" die fouten efficiënter corrigeren dan alternatieve methoden, wat mogelijk een groot obstakel voor praktische kwantumcomputers zou kunnen wegnemen.
In oktober 2023 kondigde Atom Computing aan dat het een atomaire array met 1.225 locaties gemaakt heeft, die op dat moment 1.180 qubits bevatte, gebaseerd op Rydberg-atomen.

## Werking
### Bouwstenen

Een kwantumcomputer maakt gebruik van de kwantumeffecten verstrengeling, superpositie en interferentie, die kwantumdeeltjes zoals een elektron of foton onder bepaalde omstandigheden kunnen vertonen.
* Superpositie van een deeltje betekent dat bijvoorbeeld de spin hiervan (normaal maar één mogelijke waarde) alle mogelijke waarden tegelijkertijd kan aannemen. Pas als men iets doet om de spin te meten, pas dán zal het deeltje weer terugvallen naar één waarde. De superpositie is dan verstoord geraakt.
* Kwantumverstrengeling van twee gepaarde elementaire deeltjes betekent dat er een verbinding bestaat tussen deze twee deeltjes, die onafhankelijk is van de onderlinge afstand. Als de toestand van een deeltje gemeten wordt, weet men ook onmiddellijk wat de toestand van het andere deeltje is, hoever zij ook van elkaar verwijderd zijn.
* Interferentie waarbij het golfkarakter van een kwantumdeeltje versterkt of uitgedoofd wordt door een ander kwantumdeeltje.
Wanneer deze drie eigenschappen op de juiste manier benut worden, kan een kwantumdeeltje vanaf meerdere posities (binnen een chip) gemanipuleerd worden zonder dat het zijn superpositie verliest.

### Qubits

Het geheugen van de kwantumcomputer is opgebouwd uit qubits. Dit zijn deeltjes in superpositie die via een ingenieus patroon met elkaar verstrengeld zijn. In superpositie heeft een qubit tegelijkertijd de binaire waarden 0 én 1 in plaats van 0 óf 1. Wiskundig beschrijft men een qubit dan ook als superpositie (of lineaire combinatie) van een "0"-toestand en een "1"-toestand.
$\quad |\psi \rangle =\alpha |0\rangle +\beta |1\rangle$
Waarbij $|\alpha |^{2}$ en $|\beta |^{2}$ de waarschijnlijkheden zijn om (respectievelijk) de "0"-toestand $|0\rangle$ of de "1"-toestand $|1\rangle$ te meten tijdens een meting. Fysiek worden qubits in een twee-niveausysteem geïmplementeerd, bijvoorbeeld als de eigentoestanden van een elektron (spin) in een extern magnetisch veld. Eén qubit kan dus eigenlijk de waarde van twee bits tegelijkertijd hebben.
De kwantumprocessor voert manipulaties uit op de qubits in het geheugen en gebruikt hiervoor input uit ditzelfde geheugen. Echter, wanneer deze processor een waarde ophaalt, haalt hij de waarde 0 én 1 op en wanneer hij een qubit manipuleert, dan wordt deze bewerking op zowel de waarde 0 als 1 uitgevoerd. Wanneer het aantal qubits toeneemt, stijgt de rekenkracht exponentieel met het aantal qubits. Als dit aantal n is, bijvoorbeeld 8, dan zal de processor in één keer voor alle mogelijke inputs (2$^n$ = 256) dezelfde berekening uitvoeren. Een klassieke computer zou hier juist 256 keer dezelfde handeling voor moeten verrichten. Uiteraard zullen niet alle 256 inputs en outputs zinvol zijn maar een aantal wel. Een kwantumcomputer is dus in staat om enorm snel parallelle berekeningen uit te voeren op een dataset die zelfs met de snelste conventionele computers niet te verwerken is.

### De berekening

Een probleem bij het uitlezen van een qubit is dat de superpositie onmiddellijk vervalt tot 0 of 1, waarmee de hele berekening voor niets geweest is. Om dit te omzeilen bestaat de volgende oplossing. Eerst worden de qubits in het geheugen in superpositie gebracht. Vervolgens wordt hier een berekening op uitgevoerd en wordt het antwoord in het geheugen weggeschreven. De qubits die het antwoord bevatten zijn in superpositie, maar worden dusdanig gemanipuleerd dat ze het gewenste antwoord weer gaan geven. Door kwantumverstrengeling heeft dit effect op de qubits die de initiële vraag bevatten. Deze vervallen nu alsnog in een staat waarin ze de initiële input gaan weergeven. Vraag en antwoord worden dus eigenlijk omgedraaid.
Bijvoorbeeld: Iemand wil weten welke twee priemgetallen met elkaar vermenigvuldigd moeten worden om tot het getal 1829 te komen. Er wordt een programma geschreven dat twee getallen met elkaar vermenigvuldigt. De input bestaat uit qubits die in superpositie zijn en die de twee priemgetallen representeren, de berekening wordt uitgevoerd en de output wordt weggeschreven in het geheugen. Zowel vraag als antwoord is nu nog in superpositie. De output wordt vervolgens dusdanig gemanipuleerd dat de qubits met het antwoord het getal 1829 weergeven. Door kwantumverstrengeling vervallen de qubits die de input bevatten, alsnog, tot de getallen 31 en 59. Deze input kan nu uitgelezen worden.

### Algoritmen

Omdat een kwantumcomputer fundamenteel anders werkt dan een conventionele computer, zijn aparte programmeertalen ontwikkeld, zoals QCL. Een programma op een kwantumcomputer zal deterministisch moeten zijn, toeval mag dus geen rol spelen. Een aantal belangrijke kwantumalgoritmen zijn hieronder opgesomd:
* De kwantum-fouriertransformatie is het kwantum-analogon tot de klassieke fouriertransformatie, en is exponentieel sneller dan het beste bekende klassieke algoritme.
* De kwantum-hadamardtransformatie is een veralgemeende fouriertransformatie
* Het kwantumfase-schattingsalgoritme (Engels: phase estimation algorithm) is een algoritme waarmee de eigenwaardes van een unitaire transformatie geschat kunnen worden. Deze berust op de kwantum-fouriertransformatie en vormt een belangrijke bouwsteen in veel complexere algoritmen.
* Het algoritme van Shor is bedoeld om priemfactoren te vinden. Omdat veel klassieke encryptie methoden zoals RSA erop berusten dat het vinden van priemfactoren van grote getallen erg lastig is, vormt dit algoritme een gevaar voor moderne encryptiemethoden. Er bestaan echter ook klassieke encryptiemethoden die niet op het vinden van priemfactoren berusten en daarom ook voor zover bekend veilig zijn in een post-kwantumcomputer-tijdperk.
* Het algoritme van Grover is bedoeld om ongesorteerde data te doorzoeken.
* Het BHT-algoritme

### DiVincienzo-criteria

De Amerikaanse natuurkundige David DiVincienzo formuleerde in 2000 een aantal criteria waaraan fysieke systeem ten minste moeten voldoen om een kwantumcomputer te bouwen. Men noemt deze dan ook de DiVincienzo-criteria. Deze luiden:
* Een schaalbaar fysiek systeem met goed gekarakteriseerde qubits.
* De mogelijkheid om de staat van alle qubits te initialiseren tot een simpele vast gedefinieerde staat.
* Lange, relevante decoherentietijden.
* Een "universele" set aan kwantumpoorten.
* De mogelijkheid qubits (qubit-specifiek) uit te lezen.
Voor kwantumcommunicatie zijn er nog twee extra criteria:
* De mogelijkheid om stationaire en vliegende qubits te verbinden.
* De mogelijkheid om vliegende qubits te verbinden tussen specifieke locaties.

## Stabiliteit

Een nadeel van processors die met qubits werken, is dat kwantumeffecten als verstrengeling en superpositie zeer gemakkelijk verstoord raken (decoherentie). De kunst is daarom om deze speciale kwantumtoestand lang genoeg stabiel te houden om gegevens te kunnen invoeren, verwerken en uitlezen om zinvolle uitkomsten te krijgen. Dit vormt een barrière voor de ontwikkeling van kwantumcomputers. Een kwantumprocessor kan immers maar een bepaald aantal berekeningen uitvoeren voordat de superpositie van een van de qubits uit zichzelf vervalt. Hoe groter het werkgeheugen hoe sneller een van de qubits zal vervallen. Dit vormt zowel een barrière voor de grootte van het geheugen als voor de lengte van een algoritme.
Misschien zullen kwantumprocessoren altijd instabiel blijven en een zekere mate van onbetrouwbaarheid houden. Als dat zo is zullen berekeningen meerdere malen herhaald moeten worden om te zien of er steeds dezelfde uitkomst uit volgt en misschien zal een extra controle, met een simpeler algoritme, op een conventionele computer nodig zijn. Bijvoorbeeld door met één berekening te controleren of twee priemgetallen met elkaar vermenigvuldigd inderdaad tot een bepaald getal leiden.
Het onderzoek betreffende kwantumprocessors richt zich tot nu het meest op het beheersbaar maken en aanhouden van deze kwantumtoestand. Een belangrijke vraag hierbij is wat precies de ideale bouwsteen voor een qubit zou zijn. Enkele mogelijkheden zijn elektronen, fotonen, atoomkernen of ionen, en het Majorana-deeltje.

### Kwantumfoutverbetering

De stabiliteit van kwantumprocessors kan worden verbeterd door het gebruik van kwantumfoutverbetering (Engels: quantum error correction). Hierbij worden effectieve logische qubits geëncodeerd in meerdere fysieke qubits. Het is het analogon van foutverbeteringscodes van klassieke computers, waarbij een overmaat aan fysieke bits wordt gebruikt om informatie tegen zogenaamde bit-omslagen (Engels: bit flip), dat wil zeggen dat een bit van een 0 in een 1 verandert of vice versa, te beschermen. Anders dan bij klassieke computers zijn bij qubits een continuüm aan fouten mogelijk. Men kan zich een kwantumfout voorstellen als een ongewenste willekeurige draaiing van een qubit-toestand op de bloch-bol, waardoor duidelijk wordt dat bij kwantumfouten daadwerkelijk een continuüm aan fouten mogelijk is.

#### Foutverbeteringsalgoritme van Shor

Aanvankelijk leek het mogelijke continuüm aan fouten een groot probleem voor kwantumfoutverbetering, omdat het corrigeren van een spectrum aan fouten zeer lastig leek. Echter werd in 1995 door Shor aangetoond dat kwantumfoutverbetering daadwerkelijk mogelijk is. Door middel van het toepassen van de foutverbeteringsalgoritme van Shor (niet te verwarren met het priemfactorenalgoritme van Shor) kan effectief de kans op het plaatsvinden van een fout tijdens een berekening verminderd worden.
Voor de foutverbeteringscode van Shor worden 9 fysieke qubits gebruikt om 1 zogenaamde logische qubit te vormen die foutbestendiger is. Door meerdere lagen van foutverbeteringscodes over elkaar toe te passen kan zo de precisie van kwantumcomputers in principe oneindig verbeterd worden. Echter zijn daarvoor per laag exponentieel meer qubits nodig, zodat meerdere lagen aan foutverbeteringscodes snel onpraktisch worden. Bovendien moeten qubits met elkaar verbonden kunnen worden, en is connectiviteit tussen qubits vaak een probleem die de mogelijkheid tot het toepassen van codes tussen grote aantallen fysieke qubits limiteert. Een laatste probleem is dat bestaande foutverbeteringscodes ervan uitgaan dat tijdens het encoderen van de fysieke qubits in een logische qubit er niet al een fout optreedt. Gebeurt dit wel, dan wordt een kwantumfout op de logische qubit ook incorrect verbeterd. Des te meer lagen aan foutverbeteringscodes, des te groter wordt de kans dat tijdens het encoderen al een fout optreedt.

#### Andere foutverbeteringscodes

Naast de Shorcode werden ook de 7 qubit- en 5 qubit-verbeteringscodes uitgevonden. Deze verbeteringscodes hebben minder qubits nodig om kwantumfouten te verbeteren. Het is bewezen dat de 5 qubit-code de kleinst mogelijke foutverbeteringscode is. Verder bestaan er ook nog topologische verbeteringscodes.

#### Robuuste kwantumcomputatie

Ter vergelijking is de kans op een bit-omslag op klassieke computers van de orde van 1 op de 10$^{17}$ operaties, bij kwantumcomputers ligt dit, afhankelijk van het systeem, op de orde van 1 op de 10$^2$ tot 10$^3$ operaties. Voor robuuste kwantumcomputatie wordt verwacht dat, gebruikmakend van foutverbeteringscodes, deze foutmarge nog enkele ordes van 10 kleiner moet worden.

## Binaire computer versus kwantumcomputer

De verwachting is dat de eerste kwantumcomputers niet geschikt zullen zijn om snel lineair te werken. Een kwantumprocessor heeft veel voorbereidingstijd nodig om aan het werk te gaan. Eerst moeten de qubits in superpositie worden gebracht en met elkaar verstrengeld worden. Hierna kan een aantal berekeningen worden uitgevoerd. Zowel de voorbereiding als het uitlezen van de antwoorden zal waarschijnlijk veel tijd kosten en ook de berekeningen zelf zullen traag gaan.
Hier staat tegenover dat een kwantumcomputer met slechts enkele berekeningen tot hetzelfde antwoord kan komen waar een conventionele computer vele jaren zal moeten doorwerken. Een conventionele processor werkt dus serieel en een kwantumprocessor werkt slechts korte tijd maar parallel. Kwantumprocessoren zijn dan ook niet geschikt om in een pc, smartphone of spelcomputer te verwerken.
Daar komt nog bij dat een kwantumprocessor met allerlei middelen stabiel gehouden moet worden, onder andere door hem extreem te koelen.
Kwantumprocessoren zijn beschikbaar in de cloud.
Toepassingen die met een kwantumcomputer veel sneller zullen gaan, zijn:
* Het kraken van encryptie, mogelijk met het algoritme van Shor. Dit kan door in één keer een berekening te doen met alle mogelijke encryptiesleutels en na deze berekening meteen de juiste sleutel te identificeren.
* Het doorzoeken van een nieuw soort database waarbij de kwantumprocessor in één keer alle rijen in de database doorzoekt in plaats van elke rij apart.
* Kwantumsimulatie, het simuleren van kwantumeffecten en chemische reacties. Richard Feynman stelde ooit dat als je de natuur wilt simuleren dat hier een kwantumcomputer voor nodig zou zijn.
* In het vakgebied van kunstmatige intelligentie, zo wordt er bijvoorbeeld onderzoek gedaan naar betere vormen van machinaal leren met behulp van een kwantumcomputer.

## Gevolgen

Als men erin slaagt een goed werkende kwantumcomputer te maken zou dat een grote hulp voor wetenschappelijk onderzoek zijn. Men zou in staat zijn gigantische hoeveelheden data te analyseren en hier allerlei verbanden en patronen uit te destilleren. Aangezien dit een van de fundamentele voorwaarden is om tot nieuwe wetenschappelijke inzichten te komen zal dit een enorme revolutie voor de wetenschap betekenen. Ook zou men dan zeer gedetailleerde simulaties kunnen laten draaien om theorieën te testen en te verfijnen. Mogelijk zal eveneens de rest van de maatschappij de gevolgen merken in bijvoorbeeld de entertainmentindustrie (films, games, enz.).
Een minder gewenst gevolg zou zijn dat men dan een ander systeem zou moeten zoeken om gevoelige informatie op internet te versleutelen. Tegenwoordig gebruiken veel programma's daar priemgetallen voor. Een actueel voorbeeld is het online-bankierprogramma dat de meeste banken gebruiken om transacties veilig en snel te laten verlopen. Hierbij worden twee zeer grote priemgetallen gebruikt die met elkaar vermenigvuldigd zijn. Een conventionele computer kan deze twee getallen onmogelijk vinden binnen een redelijke tijd. Maar een kwantumcomputer zou dit in principe wel kunnen. Dan zou een criminele computerhacker snel grote aantallen versleutelde transacties kunnen onderscheppen en voor eigen gewin kunnen aanpassen. Sterker nog, veel van ons vertrouwelijke internetverkeer wordt versleuteld maar wanneer deze versleutelde gegevens reeds ergens opgeslagen zijn, dan zal deze informatie in de nabije toekomst met een kwantumcomputer alsnog ontsleuteld kunnen worden. Van de andere kant kunnen softwarebeveiligingsexperts van banken natuurlijk ook eveneens kwantumcomputers gebruiken om een nog moeilijker breekbare code te ontwikkelen die dan zelfs met een kwantumcomputer niet te achterhalen zou zijn.

## Nederlands onderzoek

De TU Delft en TNO zijn met hun afdeling Qutech center onder wetenschappelijke leiding van Ronald Hanson, die in 2013 speciaal opgericht is om binnen vijf jaar een werkend prototype kwantumcomputer te realiseren, een van de meest vooraanstaande researchcentra ter wereld.
* Dossier quantumcomputer van NewScientist Nederland
* Onderzoeksgroep Quantumtransport TU Delft
* Onderzoeksgroep Quantumcomputing Universiteit van Oxford met veel achtergrondinformatie
* Artikel op natuurkunde.nl geschreven voor bovenbouw middelbarescholier
* YouTube: Quantum computing explained with a deck of cards
* Gershenfeld, Neil, and Isaac L. Chuang. "Quantum computing with molecules." Scientific American 278.6 (1998): 66-71
* ↑ (en) Quantum computational advantage using photons, Science, 18 december2020. Gearchiveerd op 20 augustus 2021.
* ↑ IBM maakt kwantumcomputer beschikbaar via cloud, NU.nl, 4 mei 2016. Gearchiveerd op 2 december 2021.
* ↑ (en) Quantum Computing Statistics: Forecasts & Facts [2021], AI Multiple, 1 januari 2021. Gearchiveerd op 31 mei 2023.
* ↑ (en) 'Off to the races': DARPA, Harvard breakthrough brings quantum computing years closer.
* ↑ Quantum startup Atom Computing first to exceed 1,000 qubits (October 24, 2023).
* 1 2 3 4 5 YouTube - Quantum Computing Expert Explains One Concept in 5 Levels of Difficulty - Talia Gershon Phd van IBM Research. Gearchiveerd op 4 augustus 2023.
* ↑ YouTube: Quantum Computer Explained - Kurtzgesagt. Gearchiveerd op 22 augustus 2023.
* ↑ (en) QCL - A Programming Language for Quantum Computers, itp.tuwien.ac.at
* 1 2 3 4 5 6 Michael A. Nielsen, Isaac L. Chuang (2010). Quantum computation and quantum information. Cambridge University Press, Cambridge. ISBN 978-1-107-00217-3.
* ↑ (en) DiVincienzo, D. P. (25.10.2000). The Physical Implementation of Quantum Computation. Gearchiveerd op 9 juli 2023. Fortschritte Der Phsyik 2020
* 1 2 (en) Shor, P. W. (1 October 1995). Scheme for reducing decoherence in quantum computer memory. Gearchiveerd op 19 juli 2023. Physical Review A 1995. DOI:10.1103/PhysRevA.52.R2493.
* ↑ Quantum error correction, Cambridge, United Kingdom (2013). ISBN 978-0-521-89787-7.
* ↑ (en) Cloud Quantum Computing & Top cloud QC vendors in 2021, AI Multiple, 31 december 2020. Gearchiveerd op 19 april 2022.
* ↑ Hoe kan een kwantumcomputer overal inbreken?, Universiteit van Nederland
* ↑ Qutech center. Gearchiveerd op 31 augustus 2023.
* ↑ TU richt zich op quantumcomputer. Gearchiveerd op 10 juli 2017. Geraadpleegd op 6 september 2023.
* ↑ Artikel in NewScientist over een Quantumcollege gegeven ter gelegenheid van de oprichting van het Qutech center in Delft. Gearchiveerd op 28 maart 2023.