Wat is een quantumcomputer? Uitgelegd met een eenvoudig voorbeeld.

door YK Sugi

Hoi allemaal!

Vandaag was ik op bezoek bij D-Wave Systems in Vancouver, Canada. Het is een bedrijf dat geavanceerde quantumcomputers maakt.

Ik heb daar veel geleerd over quantumcomputers, dus ik wil graag wat van wat ik daar heb geleerd met jullie delen in dit artikel.

Het doel van dit artikel is om jullie aan de hand van een eenvoudig voorbeeld een goed beeld te geven van wat een quantumcomputer is.

Voor dit artikel hoef je geen voorkennis te hebben van kwantumfysica of informatica om het te kunnen begrijpen.

Okay, laten we beginnen.

Edit (26 feb, 2019): Ik heb onlangs een video over hetzelfde onderwerp gepubliceerd op mijn YouTube-kanaal. Ik raad aan die te bekijken (klik hier) voor of na het lezen van dit artikel, omdat ik in de video een aantal aanvullende, meer genuanceerde argumenten heb toegevoegd.

Wat is een quantumcomputer?

Hier volgt een samenvatting in één zin van wat een quantumcomputer is:

Een quantumcomputer is een type computer dat gebruik maakt van quantummechanica, zodat het bepaalde soorten berekeningen efficiënter kan uitvoeren dan een gewone computer dat kan.

Er valt veel uit te pakken in deze zin, dus laat ik aan de hand van een eenvoudig voorbeeld met je doornemen wat het precies is.

Om uit te leggen wat een quantumcomputer is, zal ik eerst wat moeten uitleggen over gewone (niet-quantum) computers.

Hoe een gewone computer informatie opslaat

Nou, een gewone computer slaat informatie op in een reeks van 0’s en 1’s.

Verschillende soorten informatie, zoals getallen, tekst en afbeeldingen kunnen op deze manier worden weergegeven.

Elke eenheid in deze reeks van 0’s en 1’s wordt een bit genoemd. Een bit kan dus op 0 of 1 worden gezet.

En hoe zit het met kwantumcomputers?

Een kwantumcomputer gebruikt geen bits om informatie op te slaan. In plaats daarvan gebruikt het iets dat qubits wordt genoemd.

Elke qubit kan niet alleen op 1 of 0 worden gezet, maar ook op 1 en 0. Maar wat betekent dat precies?

Laat me dit uitleggen met een eenvoudig voorbeeld. Dit wordt een wat kunstmatig voorbeeld. Maar het is nog steeds nuttig om te begrijpen hoe kwantumcomputers werken.

Een eenvoudig voorbeeld om te begrijpen hoe kwantumcomputers werken

Nu, stel dat je een reisbureau runt, en je moet een groep mensen van de ene naar de andere locatie verplaatsen.

Om het eenvoudig te houden, laten we zeggen dat je voorlopig maar 3 mensen hoeft te verplaatsen – Alice, Becky en Chris.

En stel dat je voor dit doel 2 taxi’s hebt gereserveerd, en je wilt uitzoeken wie in welke taxi stapt.

Ook hier geldt: stel dat je informatie krijgt over wie bevriend is met wie, en wie vijanden is met wie.

Laten we hier zeggen dat:

  • Alice en Becky zijn vrienden
  • Alice en Chris zijn vijanden
  • Becky en Chris zijn vijanden

En stel dat je doel hier is om deze groep van 3 mensen te verdelen over de twee taxi’s om de volgende twee doelstellingen te bereiken:

  • Maximaliseer het aantal vriendenparen dat dezelfde auto deelt
  • Minimaliseer het aantal vijandelijke paren dat dezelfde auto deelt

Okee, dit is dus het basisuitgangspunt van dit probleem. Laten we eerst eens bedenken hoe we dit probleem met een gewone computer zouden oplossen.

Oplossen met een gewone computer

Om dit probleem met een gewone, niet-kwantumcomputer op te lossen, moet je eerst uitzoeken hoe je de relevante informatie met bits kunt opslaan.

Laten we de twee taxi’s Taxi #1 en Taxi #0 noemen.

Dan kun je met 3 bits weergeven wie in welke auto stapt.

We kunnen bijvoorbeeld de drie bits op 0, 0 en 1 zetten en zo voorstellen:

  • Alice stapt in Taxi #0
  • Becky stapt in Taxi #0
  • Chris stapt in Taxi #1

Omdat er voor elke persoon twee keuzes zijn, zijn er 2*2*2 = 8 manieren om deze groep mensen over twee auto’s te verdelen.

Hier is een lijst van alle mogelijke configuraties:

A | B | C
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1
1 | 0
1 | 1

Met behulp van 3 bits kun je elk van deze combinaties voorstellen.

Bereken de score voor elke configuratie

Hoe zouden we nu met een gewone computer bepalen welke configuratie de beste oplossing is?

Om dit te doen, laten we bepalen hoe we de score voor elke configuratie kunnen berekenen. Deze score geeft aan in welke mate elke oplossing de twee eerder genoemde doelstellingen bereikt:

  • Maximaliseer het aantal vriendenparen dat dezelfde auto deelt
  • Minimaliseer het aantal vijandelijke paren dat dezelfde auto deelt

Laten we onze score eenvoudig als volgt definiëren:

(de score van een gegeven configuratie) = (# vriendenparen die dezelfde auto delen) – (# vijandparen die dezelfde auto delen)

Voorbeeld, stel dat Alice, Becky, en Chris allemaal in Taxi #1 stappen. Met drie bits kan dit worden uitgedrukt als 111.

In dit geval is er maar één vriendenpaar dat dezelfde auto deelt – Alice en Becky.

Echter, er zijn twee vijandelijke paren die dezelfde auto delen – Alice en Chris, en Becky en Chris.

Dus, de totale score van deze configuratie is 1-2 = -1.

Oplossing van het probleem

Met al deze instellingen kunnen we eindelijk dit probleem gaan oplossen.

Met een gewone computer moet je, om de beste configuratie te vinden, in wezen alle configuraties doorlopen om te zien welke de hoogste score behaalt.

Dus, je kunt denken aan het construeren van een tabel als deze:

A | B | C | Score
0 | 0 | -1
0 | 0 | 1 | 1 <- een van de beste oplossingen
0 | 1 | 0 | -1
0 | 1 | 1 | -.1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- de andere beste oplossing
1 | 1 | 1 | -1

Zoals u kunt zien, zijn er hier twee juiste oplossingen – 001 en 110, die beide de score 1 halen.

Dit probleem is vrij eenvoudig. Het wordt al snel te moeilijk om met een gewone computer op te lossen als we het aantal mensen in dit probleem vergroten.

We zagen dat we met 3 mensen 8 mogelijke configuraties moeten doorlopen.

Wat als er 4 mensen zijn? In dat geval moeten we 2*2*2*2 = 16 configuraties doorlopen.

Met n mensen moeten we (2 tot de macht van n) configuraties doorlopen om de beste oplossing te vinden.

Dus, als er 100 mensen zijn, moeten we doorlopen:

  • 2¹⁰⁰ ~= 10³⁰ = een miljoen miljoen miljoen miljoen miljoen configuraties.

Dit is gewoon onmogelijk op te lossen met een gewone computer.

Oplossen met een quantumcomputer

Hoe zouden we dit probleem moeten oplossen met een quantumcomputer?

Om daarover na te denken, laten we teruggaan naar het geval van het verdelen van 3 mensen over twee taxi’s.

Zoals we eerder zagen, waren er 8 mogelijke oplossingen voor dit probleem:

A | B | C
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1
1 | 0
1 | 1

Met een gewone computer, met 3 bits, konden we slechts één van deze oplossingen tegelijk voorstellen – bijvoorbeeld 001.

Maar met een quantumcomputer, die 3 qubits gebruikt, kunnen we alle 8 van deze oplossingen tegelijk voorstellen.

Er zijn discussies over wat dit precies betekent, maar ik denk er als volgt over.

Eerst kijk je naar de eerste qubit van deze 3 qubits. Als je die op zowel 0 als 1 zet, is het net alsof je twee parallelle werelden creëert. (Ja, het is vreemd, maar volg gewoon even mee.)

In een van die parallelle werelden staat de qubit op 0. In de andere staat hij op 1.

Nu, wat als je de tweede qubit ook op 0 en 1 zet? Dan is het net alsof je 4 parallelle werelden creëert.

In de eerste wereld zijn de twee qubits op 00 gezet. In de tweede zijn ze 01. In de derde zijn ze 10. In de vierde zijn ze 11.

Zo ook, als je alle drie de qubits op zowel 0 als 1 zet, creëer je 8 parallelle werelden – 000, 001, 010, 011, 100, 101, 110, en 111.

Dit is een vreemde manier van denken, maar het is een van de juiste manieren om te interpreteren hoe de qubits zich in de echte wereld gedragen.

Nu, als je een of andere berekening op deze drie qubits toepast, pas je in feite dezelfde berekening toe in al die 8 parallelle werelden tegelijk.

Dus, in plaats van elk van die potentiële oplossingen achtereenvolgens te doorlopen, kunnen we de scores van alle oplossingen tegelijk berekenen.

In dit specifieke voorbeeld zou je quantumcomputer in theorie in staat zijn om in een paar milliseconden een van de beste oplossingen te vinden. Nogmaals, dat is 001 of 110 zoals we eerder zagen:

A | B | C | Score
0 | 0 | -1
0 | 0 | 1 | 1 <- een van de beste oplossingen
0 | 1 | 0 | -1
0 | 1 | 1 | -1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- de andere beste oplossing
1 | 1 | 1 | -1

In werkelijkheid, om dit probleem op te lossen, moet je je quantumcomputer twee dingen geven:

  • Alle mogelijke oplossingen voorgesteld met qubits
  • Een functie die van elke mogelijke oplossing een score maakt. In dit geval is dat de functie die het aantal vriendparen en vijandparen telt die dezelfde auto delen.

Gezien deze twee dingen, zal je quantumcomputer in een paar milliseconden een van de beste oplossingen uitspugen. In dit geval is dat 001 of 110 met een score van 1.

Nu is een quantumcomputer in theorie in staat om elke keer dat hij draait een van de beste oplossingen te vinden.

In werkelijkheid treden er echter fouten op bij het draaien van een quantumcomputer. Dus in plaats van de beste oplossing te vinden, vindt hij misschien de op een na beste oplossing, de op twee na beste oplossing, enzovoort.

Deze fouten worden prominenter naarmate het probleem complexer wordt.

Dus in de praktijk zul je waarschijnlijk tientallen of honderden keren dezelfde bewerking op een quantumcomputer willen uitvoeren. Kies dan het beste resultaat uit de vele resultaten die je krijgt.

Hoe een quantumcomputer schaalt

Zelfs met de fouten die ik noemde, heeft de quantumcomputer niet hetzelfde schaalprobleem waar een gewone computer last van heeft.

Wanneer er 3 mensen zijn die we in twee auto’s moeten verdelen, is het aantal bewerkingen dat we op een quantumcomputer moeten uitvoeren 1. Dit komt omdat een quantumcomputer de score van alle configuraties tegelijk berekent.

Wanneer er 4 mensen zijn, is het aantal bewerkingen nog steeds 1.

Wanneer er 100 mensen zijn, is het aantal bewerkingen nog steeds 1. Met een enkele operatie berekent een quantumcomputer de scores van alle 2¹⁰⁰ ~= 10³⁰ = een miljoen miljoen miljoen miljoen configuraties tegelijk.

Zoals ik al zei, in de praktijk is het waarschijnlijk het beste om je quantumcomputer tientallen of honderden keren te laten draaien en uit de vele resultaten die je krijgt het beste resultaat te kiezen.

Hoewel, het is nog steeds veel beter dan hetzelfde probleem op een gewone computer te laten draaien en hetzelfde type berekening een miljoen miljoen miljoen miljoen keer te moeten herhalen.

Wrapping up

Speciale dank aan iedereen bij D-Wave Systems voor het geduldig uitleggen van dit alles aan mij.

D-Wave heeft onlangs een cloud-omgeving gelanceerd voor interactie met een quantumcomputer.

Als je een ontwikkelaar bent en daadwerkelijk wilt proberen een quantumcomputer te gebruiken, is dat waarschijnlijk de gemakkelijkste manier.

Het heet Leap, en het staat op https://cloud.dwavesys.com/leap. Je kunt het gratis gebruiken om duizenden problemen op te lossen, en ze hebben ook eenvoudig te volgen tutorials over het aan de slag gaan met quantumcomputers zodra je je hebt aangemeld.

Footnote:

  • In dit artikel heb ik de term “gewone computer” gebruikt om te verwijzen naar een niet-quantumcomputer. In de industrie voor quantumcomputing worden niet-kwantumcomputers echter meestal klassieke computers genoemd.

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *