abonneren

Kwantumcomputer IBM uitproberen in de cloud

kwantumcomputer ibm
Kwantumcomputers spreken tot de verbeelding, maar blijven vaak een ver-van-mijn-bed-show. Sinds vorig jaar heeft IBM twee kwantumcomputers voor publiek gebruik in de cloud geplaatst. Lees hier meer over de IBM Quantum Experience.

In mei 2016 lanceerde IBM zijn Quantum Experience (QX): een website waarmee je algoritmes kunt uitvoeren op een kwantumcomputer van 5 qubits. Een jaar later voegde de computergigant ook een processor van 16 qubits toe, zij het in een beperkte bèta. IBM heeft ook al een kwantumcomputer van 17 qubits (merk op: dat is twee keer zo krachtig als 16 qubits!) gemaakt, en dat prototype vormt de basis van de eerste commerciële systemen die het bedrijf op de markt wil brengen. Over enkele jaren zou IBM een kwantumcomputer van 50 qubits hebben.

Pas rond de 50 qubits zijn kwantumcomputers sterk genoeg om echt nuttige berekeningen uit te voeren. De meeste specialisten zijn pessimistischer dan IBM en denken dat het nog wel een jaar of tien zal duren. We weten zelfs nog niet welke toepassingen er allemaal mogelijk zijn. Maar juist daarom wil IBM nu al een kwantumcomputer aan het publiek aanbieden, zodat iedereen ermee kan experimenteren om nieuwe mogelijkheden te ontdekken. Zo zijn er al minstens vijftien academische papers gepubliceerd op basis van experimenten met QX. En er heeft natuurlijk al iemand een game gemaakt voor de 5qubit-kwantumcomputer: Quantum Battleships.

Wat is een kwantumcomputer?

De documentatie die IBM online heeft staan is uitstekend, zowel om het gebruik van QX uit te leggen als ter introductie van de basisconcepten van kwantumcomputers. We gaan even door de Beginner’s Guide en een stoomcursus kwantumcomputers. We raden je aan om de Beginner’s Guide tegelijk met dit artikel door te nemen, want er komen veel details kijken bij de werking van kwantumcomputers.

Twee fundamentele eigenschappen waarvan een kwantumcomputer gebruikmaakt, zijn superpositie en verstrengeling. Superpositie is eenvoudig: terwijl een bit in een klassieke computer de waarde 0 of 1 heeft, kan een qubit |0>, |1> of een lineaire combinatie (a|0> + b|1>, de superpositie) daarvan zijn. Verstrengeling daarentegen is niet eenvoudig uit te leggen: het is een correlatie tussen het individueel willekeurig gedrag van qubits in een superpositie.

Om aan de slag te gaan met de kwantumcomputer van IBM, maak je een gratis account aan bij IBM Q door rechtsboven op Sign in te klikken en dan op Sign Up. Klik daarna op de verificatielink die je via e-mail krijgt en log in met je nieuwe account. Wil je toegang tot het bètaprogramma vragen voor de 16qubit-computer, klik dan rechts op je naam, My Account en dan op Request to access beta program.

Voor de voorbeelden in dit artikel volstaat de standaardtoegang tot de 5qubit-computer. Overigens kun je in QX ook kwantumcircuits met een willekeurig aantal qubits simuleren. Maar dan worden ze uiteraard niet echt op een kwantumcomputer uitgevoerd.

Quantum Composer

De grafische interface waarmee je in QX de kwantumcomputer programmeert, is de Quantum Composer. Je geeft je experiment een naam en kiest een echte kwantumcomputer of een simulatie (Custom Topology). Kies je het eerste, dan kun je programma’s uitvoeren (de knop Run rechtsboven) of simuleren (Simulate); kies je het tweede, dan kun je alleen simuleren.

In het midden zie je iets wat lijkt op een notenbalk. Elke horizontale lijn is de toestand van een qubit door de tijd heen. Links beginnen alle qubits in toestand |0>. Met kwantumpoorten (de blokjes rechts) kun je nu die qubits manipuleren. En aan het einde van elk experiment is een meting nodig: het roze blokje met het metertje. Bij een meting van een qubit verliest het zijn kwantumeigenschappen: |0> wordt 0, |1> wordt 1 en als het qubit zich in een superpositie van 50% |0> en 50% |1> bevindt, levert de meting in 50% van de gevallen 0 op en in 50% van de gevallen 1.

Sleep bijvoorbeeld eens op de lijn van qubit

q[0]

een metingblokje en klik op Simulate. De Quantum Composer compileert het programma nu en voert het uit in de simulator. Onder Quantum State: Computation Basis krijg je het resultaat te zien als een histogram van alle mogelijke uitkomsten. Je krijgt ook de code van het circuit te zien in OPENQASM, een assemblerprogrammeertaal voor kwantumcomputers. In het knopje naast Simulate kun je overigens kiezen hoe vaak de simulatie wordt uitgevoerd, QX noemt dat aantal ‘shots’.

kwantumcomputer ibm

Tot nu toe is er nog niets spannends gebeurd: ons circuit heeft het eerste kwantumregister gelezen dat net zoals de andere registers de waarde |0> heeft en geeft als resultaat 00000. Maar wat als we nu een groen blokje X vóór de meting zetten? De X-poort inverteert het qubit. Het resultaat? Het histogram geeft nu de bits 00001 met waarschijnlijkheid 1 weer. Het onderste qubit is immers geïnverteerd naar 1 en de andere blijven 0.

Kwantumpoorten

Elke kwantumpoort heeft een effect op een of meerdere qubits. Om dit wat te visualiseren, maken we eerst een ommetje langs een andere voorstelling van een qubit, de Bloch-sfeer of kwantumsfeer, die we ook al in het resultaat van onze berekening zagen. De coëfficiënten a en b in de superpositie kunnen namelijk complexe getallen zijn, dus van de vorm x +yi met i² = -1.

Elk punt op de Bloch-sfeer is dan de voorstelling van een mogelijke superpositie van een qubit. Het punt helemaal boven is |0>, het punt helemaal beneden |1>. Voer ons eerste programma nog eens uit en dan het programma met de X-poort voor de meting. Zie je een verschil in de Bloch-sfeer? De X-poort draait het qubit 180° rond de X-as, waardoor het onderaan op de bol terechtkomt, |1>.

Een andere interessante kwantumpoort is de H-poort, die we kunnen beschouwen als een rotatie rond de as tussen X en Z. De Hadamard-poort, zoals de poort voluit heet, creëert een superpositie zodat het qubit even veel kans heeft om |0> of |1> te zijn. Voeg je deze toe voor de meting, dan krijg je als resultaat van het algoritme de toestanden 00000 en 00001, beide met een waarschijnlijkheid van ongeveer 0,5. Die waarschijnlijkheden zijn overigens niet exact gelijk. Hoe meer shots je uitvoert, hoe meer ze gelijk zijn.

Er is ook een Z-poort, die een rotatie van 180° rond de Z-as uitvoert, een S-poort die hetzelfde doet voor 90° en een T-poort die hetzelfde doet voor 45°. S+ en T+ doen hetzelfde als S en T, maar dan in de andere richting.

kwantumcomputer ibm

Werken met qubits

Tot nu toe hebben we allemaal met kwantumpoorten gewerkt die slechts op één qubit inwerkten. Nu gaan we naar twee qubits. Een kwantumcomputer met twee qubits kan zich in vier mogelijke toestanden bevinden, die we voorstellen door |00>, |01>, |10> en |11>. Hierin is het meest rechtse qubit

q[0]

Een interessante poort die op twee qubits werkt, is de ‘controlled not’ of CNOT, in QX als een blauw plusteken getoond. Plaats die op de lijn van

q[1]

Je merkt dat er daarna een blauwe verticale lijn uit de poort komt als je met je muis beweegt. Plaats het uiteinde op de lijn van

q[0]

Daar verschijnt dan een klein blauw bolletje.

Het qubit dat met het bolletje verbonden is, noemen we de ‘control’, terwijl we het qubit dat met het plusteken verbonden is de ‘target’ noemen. Wat doet de CNOT-poort nu? Die past de X-poort (NOT) toe op de target als de control gelijk is aan |1>; in het andere geval verandert die niets aan de target. Of samengevat: CNOT(|00>) = |00>, CNOT(|10>) = |10>, CNOT(|01>) = |11> en CNOT(|11>) = |01>.

Probeer dit maar eens uit in de Quantum Composer. Een invoerqubit |1> maken doe je zoals we al zagen met de X-poort. Overigens dien je nu twee meetblokjes toe te voegen, want je wilt beide qubits uitlezen. Let op: je kunt geen meerdere meetblokjes recht onder elkaar (op hetzelfde tijdstip) zetten.

Met drie CNOT’s achter elkaar maar met de middelste CNOT de control en de target omgewisseld, verkrijg je overigens een eenvoudig kwantumcircuit om twee qubits om te wisselen. Probeer het maar eens.

Hello world!

Als je een tijdje kwantumcircuits in de simulator hebt uitgeprobeerd en je je weg in de kwantumwereld gevonden hebt, is het tijd om eens over te schakelen op de echte kwantumcomputer van QX. Maak een nieuw experiment aan, kies de echte kwantumcomputer, creëer je circuit, controleer of het werkt door te simuleren, en druk tot slot op Run om het circuit op de kwantumcomputer uit te voeren. Tadaa, je eerste kwantumprogramma is een feit!

Je dient hier wel zuinig mee te zijn: elk experiment op de kwantumcomputer vereist drie tot vijf ‘units’. Je krijgt vijftien units als je de User Guide hebt doorlopen. Als ze op zijn, worden ze één keer per dag aangevuld. Bovendien wordt je programma niet onmiddellijk uitgevoerd, maar komt het in een wachtrij terecht. Je ontvangt een e-mail wanneer het programma is uitgevoerd.

Geschreven door: Koen Vervloesem op

Category: Workshop, Programmeren

Tags: Programmeren, Ibm, kwantumcomputer

Laatste reactie