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 1014 (of 100 biljoen / 100.000 miljard) malen sneller Quantum computational advantage using photons, Science, 18 december2020. Gearchiveerd op 20 augustus 2021. 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.IBM maakt kwantumcomputer beschikbaar via cloud, NU.nl, 4 mei 2016. Gearchiveerd op 2 december 2021. In 2016 bedroeg de markt 89 miljoen dollar. Quantum Computing Statistics: Forecasts & Facts , AI Multiple, 1 januari 2021. Gearchiveerd op 31 mei 2023.

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.YouTube - Quantum Computing Expert Explains One Concept in 5 Levels of Difficulty - Talia Gershon Phd van IBM Research. Gearchiveerd op 4 augustus 2023. 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 thumb|De toestandsruimte van een qubit, die gezien kan worden als de kwantummechanische versie van de klassieke databit 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.

Waarbij en de waarschijnlijkheden zijn om (respectievelijk) de "0"-toestand of de "1"-toestand 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 (2n = 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.YouTube: Quantum Computer Explained - Kurtzgesagt. Gearchiveerd op 22 augustus 2023.

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 thumb|Het algoritme van Grover Omdat een kwantumcomputer fundamenteel anders werkt dan een conventionele computer, zijn aparte programmeertalen ontwikkeld, zoals QCL. QCL - A Programming Language for Quantum Computers, itp.tuwien.ac.at 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.