
Bedankt voor je leuke vraag, Marc! Zoals je al aangaf in de mail, gaan we in onze series quantumcomputers, qubits in quantumcomputers en computing: from classical to quantum in op hoe je qubits bouwt – zie in het bijzonder ‘echte qubits’ en ‘hoe werkt een qubit?’ – maar nog niet zoveel op hoe je nou precies een quantumoperatie uitvoert. Dat hoop ik uit te leggen in dit artikel, waarin ik specifiek focus op atoomgebaseerde quantumcomputers (in tegenstelling tot de zogeheten solid-state-qubits).
In de genoemde series hebben we het al eens over de volgende onderwerpen gehad:
- (Quantum)superpositie: een toestand zoals \( (|0\rangle+|1\rangle)/\sqrt{2} \) waarvoor je 50% kans hebt om een qubit-waarde van ofwel één, ofwel nul te meten,
- Blochbal: een bol waarin één qubit wordt weergegeven met een pijl naar het oppervlak,
- Qubits maken en abstracte bit- en qubitbewerkingen: bij atomen worden er twee energieniveaus uitgekozen die de nul- en één-toestanden representeren. Waarheidstabellen helpen met het begrijpen van abstracte (qu)bitbewerkingen.
Als je het niet erg vindt, zou ik die onderwerpen graag als aanwezige kennis veronderstellen, dan kunnen we gelijk beginnen. De links hierboven zijn hopelijk nuttig voor wie een deel van die kennis nog even wil opfrissen.
Enkele gates zijn voldoende
Om te begrijpen hoe we een programma uitvoeren op een quantumcomputer, hoeven we ons alleen zorgen te maken over een kleine hoeveelheid (meestal eenvoudige) gates. Met zo’n zogeheten ‘universal gate set’ kan je alle operaties op een quantumcomputer uitvoeren, zelfs als die operaties uitgevoerd moeten worden op meerdere qubits tegelijkertijd. Dit wordt gedaan door de operatie uit te schrijven in de eenvoudige gates, ook wel de decompositie genoemd. Voor quantumcomputers bestaat een mogelijke universal gate set uit gates die op één qubit werken plus de CNOT-gate. Zie voor die laatste afbeelding 1, waar ik met behulp van een zogeheten “waarheidstabel” in herinnering breng hoe de CNOT-gate werkt op de waarden van twee qubits \( x \) en \( y \).

Het circuitdiagram in de afbeelding hierboven lees je van links naar rechts. De \(x\) en \(y\) duiden elk een qubit aan in een willekeurige toestand. De CNOT-gate werkt op twee qubits; in dit geval is \(x\) de zogeheten controle-qubit en \(y\) de doel-qubit. Aan het einde van het circuit is te zien dat de controle-qubit \(x\) niet veranderd is en het doel \(y\) wel. Hoe het doel-qubit precies verandert, is afhankelijk van de controle-qubit \(x\) en wordt aangegeven in de waarheidstabel.
Voor de waarheidstabel van de CNOT-gate is voor het gemak aangenomen dat \(x\) en \(y\) twee exacte waarden nemen (oftewel: gewone bits zijn, ofwel 0, ofwel 1.). Hieruit kan je afleiden hoe de CNOT werkt op ingewikkelde toestanden zoals quantumsuperposities; op hoe je dat doet kom ik terug in de volgende alinea. Uit de waarheidstabel valt op te merken dat de CNOT-gate een NOT-gate uitvoert (de waarde inverteert van nul naar één of andersom) op het doel \(y\) als de controle \(x\) “aan” staat, dus 1 is. Dit is de reden voor de naam van de gate: Controlled NOT.
Wanneer \(x\) en \(y\) nu niet twee welbepaalde waarden aannemen, maar bijvoorbeeld een superpositie zoals \(x= (| 0 \rangle + | 1 \rangle)/\sqrt{2} \) en \(y= | 1 \rangle \), dan moet de CNOT op alle termen worden uitgevoerd. In het geval van het voorbeeld is de totale toestand \( | x \rangle | y \rangle =( | 0 \rangle + | 1 \rangle ) | 1 \rangle/\sqrt{2} = | 0 \rangle | 1 \rangle/\sqrt{2} + | 1 \rangle | 1 \rangle/\sqrt{2} \) en is het resultaat \(\text{CNOT} | x \rangle | y \rangle =\text{CNOT} | 0 \rangle | 1 \rangle/\sqrt{2} +\text{CNOT} | 1 \rangle | 1 \rangle/\sqrt{2} = | 0 \rangle | 0 \rangle/\sqrt{2} + | 1 \rangle | 1 \rangle/\sqrt{2} \). In de laatste regel maken we gebruik van de waarheidstabel.
Klassieke computers hebben ook een aantal universal gate sets en bieden daarmee een eenvoudig voorbeeld om te illustreren hoe zo’n decompositie werkt. Bij klassieke computers is de NAND-gate universeel (dat wil zeggen, met alleen maar de NAND-gate kan je al alle operaties uitvoeren). De NAND-gate is een samentrekking van NOT en AND; qua werking is het zoals de naam suggereert: eerst AND, dan NOT op het resultaat. Zie ook de waarheidstabel in afbeelding 2.

Door de NAND-gate op specifieke manieren te combineren met zichzelf en de invoer, kun je andere gates maken. In afbeelding 3 zien we hier twee voorbeelden van: daar worden de NOT- en OR-gates gemaakt uit alleen NAND-gates. Als je naar de afbeelding kijkt, zie je dat er de nodige draden en gates nodig zijn als je de NOT- en OR-gates zo wilt uitvoeren. Je zou liever deze ‘overheadkosten’ niet betalen, en dus is het alleen maar beter als je (quantum)computer rechtstreeks de moeilijkere gates kan uitvoeren. Vanuit dat oogpunt heb ik tijdens mijn bachelorstudie onderzoek gedaan bij de trapped ion groep in Amsterdam om te beoordelen hoe moeilijk het is om een meerqubit-CNOT (de zogenaamde TOFFOLI-gate) zónder decompositie uit te voeren.

We kunnen dus elke operatie omzetten in een decompositie van eenvoudige gates uit de universal gate set. Hoewel er meerdere universal gate sets bestaan, beperk ik me in dit artikel tot de verzameling van alle enkele-qubit-operaties plus de CNOT-gate. Beide soorten gates zijn gebaseerd op dezelfde ideeën, alleen komt er net wat meer kijken bij de CNOT-gate. Laten we daarom beginnen met hoe een quantum gate op een enkele qubit wordt gemaakt.
Rabi-floppen zorgt voor één-qubit-gates
Op de middelbare school heb je misschien wel geleerd over hoe een atoom licht met een specifieke energie kan opnemen en daarbij in een toestand met hogere energie springt – zie afbeelding 4. Wat denk je dat er gebeurt als je nu meer licht op het atoom gaat schijnen? Wellicht is het intuïtief om te zeggen: “niets, het atoom is al aangeslagen”. Toch is dat verrassend genoeg niet waar!

Wanneer je blijft schijnen met een laser die het atoom kan aanslaan, zal de atoomtoestand terugspringen naar de grondtoestand, weer aangeslagen worden, en ga zo maar door. Ofwel: de atoomtoestand oscilleert tussen de twee energieniveaus met een frequentie die we de Rabi-frequentie \(\Omega\) noemen (zie afbeelding 5). Die grootheid is vernoemd naar Isidor Isaac Rabi, die in 1944 een Nobelprijs kreeg voor de ontwikkeling van de theorie en het experimenteel bevestigen daarvan.[1]
Hoe je precies Rabi-flops gebruikt om gates te maken, daar ga ik straks op in. Uit de grafiek in afbeelding 5 zou je al kunnen opmaken dat de qubit wordt gemanipuleerd als je de laser kort aanzet. Maar als je korte laserpulsen gebruikt (wat quantumcomputers vaak doen), zit het net wat gecompliceerder en moet je het zogeheten pulsoppervlak in beschouwing nemen:
\( \Theta \propto \left|\int \mathcal{E}(t)\mathrm{d}t\right|; \)
een integraal van de lichtgolf-amplitude \(\mathcal{E}\) van het laserlicht over de tijd \(t\) vermenigvuldigd met wat constanten die ik nu negeer – vandaar het “rechtevenredig”-symbool \( \propto \). In de formules speelt het pulsoppervlak dan de rol van de Rabi-frequentie vermenigvuldigd met de tijd: \(\Omega t\) wordt vervangen door \(\Theta\). Ik zal je de details besparen, maar de liefhebber zou die na kunnen gaan in het boek “Quantum Optics” door Mark Fox (hfst 9.3); dat ik ook als naslagwerk heb gebruikt voor dit artikel. Het pulsoppervlak blijkt een cruciale rol te spelen in de qubit-gates.

Hoe voer je nu precies een opeenvolging van één-qubitgates uit? Door een laser nauwkeurig pulsen met de juiste frequentie op het atoom af te laten sturen, kan je de Bloch-vector die de toestand van de qubit beschrijft willekeurige rotaties laten uitvoeren. De pulsoppervlakte blijkt daarbij gelijk aan de hoek waarmee je om de \(x\)-as draait. Vervolgens kan je de andere, azimuthale hoek \(\varphi\) (zie afbeelding 6) van de volgende rotatie bepalen door de fase van de volgende puls te verschuiven ten opzichte van de vorige puls. Zo kan je elke toestand in de Blochbal bereiken – oftewel: elke één-qubitgate uitvoeren.

Stel dat je bijvoorbeeld de zogeheten Pauli-\(X\)-operatie wilt uitvoeren – de quantumtegenhanger van de NOT-gate. Daarvoor moet je het laserlicht zo lang aanzetten dat \(\theta=\pi\) wordt. Ga maar na: als je bijvoorbeeld op de noordpool van de Blochbal begint en vervolgens \(\pi\) radialen (oftewel 180 graden) om de \(x\)-as draait, dan kom je bij de zuidpool aan. Je qubit is geflipt! Merk ook op dat je ook om de \(y\)-as kon draaien, of om elke as op het horizontale vlak van de Blochbal; het eindresultaat is onafhankelijk van de azimuthale hoek \(\varphi\). Vanwege het belang van de Pauli \(X\)-gate wordt deze puls veel gebruikt; de puls wordt ook wel de \(\pi\)-puls genoemd. Naast de \(\pi\)-puls heb je ook de belangrijke \(\pi/2\)-puls. Deze correspondeert met de Hadamard-gate die op deze site ook al eens ter sprake is gekomen, en brengt een qubit bijvoorbeeld van de noordpool naar de evenaar van de Blochbal.
Hopelijk heb je al deze hersengymnastiek een beetje kunnen volgen. Kort samengevat bouw je een één-qubit-quantumgate als volgt: schijn verschillende pulsen laserlicht op een atoom. Het laserlicht moet sterk zijn en de frequentie hebben die de qubit doet aanslaan. Het effect wordt verklaard door Rabi-floppen, wat betekent dat de qubit-toestand oscilleert tussen de grondtoestand en de aangeslagen toestand.
Het bouwen van een CNOT-gate
Een quantumcomputer kan niet alle berekeningen uitvoeren met alleen één-qubitgates: je hebt ook gates nodig die op meerdere qubits werken, zoals de CNOT. Om de CNOT-gate uit te voeren, gebruiken we ook weer laserpulsen – specifiek: de \(\pi\)-pulsen die ik in de voorlaatste alinea van de vorige sectie heb genoemd. Alleen komt er ditmaal een extra laagje theorie bij kijken: een verschuiving van het energieniveau door interacties tussen de atomen. Deze verschuiving zal ervoor zorgen dat de puls wel of niet op de qubit werkt.

In het diagram aan de linkerkant hierboven vind je de vier toestanden \( | 0 \rangle | 0 \rangle \), \( | 0 \rangle | 1 \rangle \), \( | 1 \rangle | 0 \rangle \) en \( | 1 \rangle | 1 \rangle \) waarin twee qubits zich kunnen bevinden. (Naast deze vier ‘basistoestanden’ bestaan er natuurlijk ook superposities zoals bijvoorbeeld \(\left( | 00 \rangle + | 11 \rangle \right)/\sqrt{2}\)). De energieverschillen \(E=\hbar\omega\) tussen de energieniveaus zijn uitgedrukt in de hoekfrequenties \(\omega\) – de frequenties van het licht dat nodig is voor de sprong maal \( 2 \pi \). Merk op dat de totale energie wanneer beide qubits aangeslagen zijn (\( | 1 \rangle | 1 \rangle \)) hoger is dan de som van de twee individuele energieën, met een hoeveelheid \(\Delta>0\). De hoekfrequenties \(\omega’\\) met een accent houden rekening met dit verschil.
Of het laserlicht wel of niet de juiste frequentie heeft, is cruciaal voor de werking van de CNOT-gate. Stel je nu voor dat we een \(\pi\)-puls met hoekfrequentie \(\omega_y’=\omega_y+\Delta\) schijnen op qubit \(y\). Vervolgens vragen we ons bij elke basistoestand af wat er gaat gebeuren. Dit doen we specifiek door ons af te vragen of de laser de juiste frequentie heeft: zoals we weten uit de vorige sectie, zal een \(\pi\)-puls de qubit toestand omdraaien (nul naar één en andersom) indien dat het geval is.
- \( | 0 \rangle | 0 \rangle \) blijft \( | 0 \rangle | 0 \rangle \). We zitten onderaan het diagram. Er is geen energieverschil tussen deze lijn en een andere lijn die gelijk is aan \(\omega_y’\) en er gebeurt niets.
- \( | 0 \rangle | 1 \rangle \) blijft \( | 0 \rangle | 1 \rangle \). We zitten nu op het energieniveau midden rechts. Beide energieverschillen onder en boven ‘passen’ niet. Net zoals hierboven gebeurt er niets.
- \( | 1 \rangle | 0 \rangle \) wordt \( | 1 \rangle | 1 \rangle \). Het energieverschil tussen \( | 1 \rangle | 0 \rangle \) en \( | 1 \rangle | 1 \rangle \) komt overeen met de frequentie. De tweede qubit (waarop we de puls schijnen) klapt om van waarde.
- \( | 1 \rangle | 1 \rangle \) wordt \( | 1 \rangle | 0 \rangle \), om dezelfde reden als hierboven.
Als je nu goed hebt opgelet, zie je dat we de waarheidstabel van de CNOT-gate hebben gerealiseerd: onze doel-qubit \(y\) klapt om van waarde, afhankelijk van de waarde van de controle-qubit \(x\). De CNOT-gate kan dus gebouwd worden omdat in sommige systemen de energieniveaus van atomen met elkaar een wisselwerking aangaan die de energie hoger maakt dan de som van de energieën van de individuele aangeslagen atomen.
Overigens kunnen we ook de rollen omdraaien door qubit \(x\) de controle-qubit maken. Dit doen we door op die qubit pulsen af te sturen met hoekfrequentie \(\omega_x’\). Kan je dezelfde redenering herhalen en deze bewering bevestigen?
Afsluitend
Qubit-gates worden gemaakt door een decompositie in de universal gate set, bestaande uit gates die op individuele qubits werken plus de CNOT-gate, die op twéé qubits werkt. Eén-qubitgates (gecodeerd in atomen) worden uitgevoerd met laserpulsen, wat we kunnen begrijpen aan de hand van Rabi-oscillaties. De CNOT-gate gebruikt ook laserpulsen, maar de atomen moeten wel een wisselwerking hebben die de energie verhoogt. Dan kun je met heel specifieke frequenties de doel-qubit precies flippen als de controle-qubit aangeslagen is.
Nou, Marc, hopelijk heb ik jou – en alle andere lezers – zo een idee gegeven over hoe je een quantumcomputer bouwt. Kan ik binnenkort een quantumcomputer komen bewonderen in je garage? 😉 Nogmaals bedankt voor je vraag! Mocht je als lezer nog meer vragen hebben over natuurkunde, stuur ze dan gerust in! In toekomstige afleveringen van deze rubriek beantwoorden we ze graag.
Deze uitleg is gebaseerd op het boek “Quantum Optics: An Introduction” van Mark Fox, specifiek hoofdstuk 9 en paragraaf 13.3.4. De case-by-case-uitleg van de CNOT is direct geïnspireerd door het boek.
[1] Over nobelprijzen gesproken: heb je ons vorige artikel over de nobelprijs van dit jaar al gelezen?