Hvad er en kvantecomputer? Forklaret med et simpelt eksempel.

Hej allesammen!

Forleden besøgte jeg D-Wave Systems i Vancouver, Canada. Det er et firma, der fremstiller avancerede kvantecomputere.

Jeg fik lære meget om kvantecomputere der, så jeg vil gerne dele noget af det, jeg lærte der med dig i denne artikel.

Målet med denne artikel er at give dig en præcis intuition af, hvad en kvantecomputer bruger ved hjælp af et simpelt eksempel.

Denne artikel kræver ikke, at du har forudgående kendskab til hverken kvantefysik eller datalogi for at kunne forstå det.

Okay, lad os komme i gang.

Rediger (26. februar 2019): Jeg offentliggjorde for nylig en video om det samme emne på min YouTube-kanal. Jeg vil anbefale at se det (klik her) før eller efter at have læst denne artikel, fordi jeg har tilføjet nogle yderligere, mere nuancerede argumenter i videoen.

Hvad er en kvantecomputer?

Her er en oversigt over en sætning af, hvad en kvantecomputer er:

En kvantecomputer er en type computer, der bruger kvantemekanik, så den kan udføre bestemte former for beregning mere effektivt end en almindelig computer kan.

Der er meget at pakke ud i denne sætning, så lad mig gå igennem, hvad det er nøjagtigt ved hjælp af et simpelt eksempel.

For at forklare, hvad en kvantecomputer er, skal jeg først forklare lidt om almindelige (ikke-kvante) computere.

Hvordan en almindelig computer gemmer information

Nu gemmer en almindelig computer oplysninger i en række 0'er og 1'er.

Forskellige typer information, såsom tal, tekst og billeder kan repræsenteres på denne måde.

Hver enhed i denne serie af 0 og 1 kaldes lidt. Så en smule kan indstilles til enten 0 eller 1.

Hvad med kvantecomputere?

En kvantecomputer bruger ikke bits til at gemme information. I stedet bruger det noget kaldet qubits.

Hver qubit kan ikke kun indstilles til 1 eller 0, men den kan også indstilles til 1 og 0. Men hvad betyder det præcist?

Lad mig forklare dette med et simpelt eksempel. Dette bliver et noget kunstigt eksempel. Men det vil stadig være nyttigt at forstå, hvordan kvantecomputere fungerer.

Et simpelt eksempel til forståelse af, hvordan kvantecomputere fungerer

Antag nu, at du driver et rejsebureau, og at du er nødt til at flytte en gruppe mennesker fra et sted til et andet.

For at holde dette simpelt, lad os sige, at du kun skal flytte 3 personer indtil videre - Alice, Becky og Chris.

Og antag, at du har reserveret 2 taxaer til dette formål, og du vil finde ud af, hvem der kommer ind i hvilken taxa.

Antag også her, at du får oplysninger om, hvem der er venner med hvem, og hvem der er fjender med hvem.

Her, lad os sige det:

  • Alice og Becky er venner
  • Alice og Chris er fjender
  • Becky og Chris er fjender

Og antag, at dit mål her er at opdele denne gruppe på 3 personer i de to taxaer for at nå følgende to mål:

  • Maksimer antallet af venpar, der deler den samme bil
  • Minimer antallet af fjendepar, der deler den samme bil

Okay, så dette er den grundlæggende forudsætning for dette problem. Lad os først tænke på, hvordan vi ville løse dette problem ved hjælp af en almindelig computer.

Løsning af dette problem med en almindelig computer

For at løse dette problem med en almindelig, ikke-kvantecomputer, skal du først finde ud af, hvordan du gemmer de relevante oplysninger med bits.

Lad os mærke de to taxaer Taxa 1 og Taxi # 0.

Derefter kan du repræsentere, hvem der kommer ind i hvilken bil med 3 bits.

For eksempel kan vi indstille de tre bits til 0 , 0 ,og 1 til at repræsentere:

  • Alice går ind i taxa nr. 0
  • Becky går ind i taxa nr. 0
  • Chris går ind i taxa nr. 1

Da der er to valg for hver person, er der 2 * 2 * 2 = 8 måder at opdele denne gruppe mennesker i to biler.

Her er en liste over alle mulige konfigurationer:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

Ved hjælp af 3 bits kan du repræsentere en hvilken som helst af disse kombinationer.

Beregner scoren for hver konfiguration

Nu, ved hjælp af en almindelig computer, hvordan ville vi bestemme, hvilken konfiguration der er den bedste løsning?

For at gøre dette skal vi definere, hvordan vi kan beregne scoren for hver konfiguration. Denne score vil repræsentere, i hvilket omfang hver løsning når de to mål, jeg nævnte tidligere:

  • Maksimer antallet af venpar, der deler den samme bil
  • Minimer antallet af fjendepar, der deler den samme bil

Lad os blot definere vores score som følger:

(scoren for en given konfiguration) = (# venpar, der deler den samme bil) - (# fjendepar, der deler den samme bil)

Antag for eksempel, at Alice, Becky og Chris alle går ind i taxa nr. 1. Med tre bits kan dette udtrykkes som 111 .

I dette tilfælde er der kun et venpar, der deler den samme bil - Alice og Becky.

Der er dog to fjendepar, der deler den samme bil - Alice og Chris og Becky og Chris.

Så den samlede score for denne konfiguration er 1-2 = -1.

Løsning af problemet

Med alt dette setup kan vi endelig gå rundt med at løse dette problem.

For at finde den bedste konfiguration med en almindelig computer skal du i det væsentlige gennemgå alle konfigurationer for at se, hvilken der opnår den højeste score.

Så du kan tænke på at konstruere et bord som dette:

A | B | C | Score

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- en af ​​de bedste løsninger

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- den anden bedste løsning

1 | 1 | 1 | -1

Som du kan se, er der to korrekte løsninger her - 001 og 110, der begge opnår scoren 1.

Dette problem er ret simpelt. Det bliver hurtigt for svært at løse med en almindelig computer, da vi øger antallet af mennesker i dette problem.

Vi så, at med 3 personer skal vi gennemgå 8 mulige konfigurationer.

Hvad hvis der er 4 personer? I så fald skal vi gennemgå 2 * 2 * 2 * 2 = 16 konfigurationer.

Med n mennesker skal vi gennemgå (2 til styrken af ​​n) konfigurationer for at finde den bedste løsning.

Så hvis der er 100 mennesker, skal vi gennemgå:

  • 2¹⁰⁰ ~ = 10³⁰ = en million millioner millioner millioner konfigurationer.

Dette er simpelthen umuligt at løse med en almindelig computer.

Løsning af dette problem med en kvantecomputer

Hvordan ville vi gå ud på at løse dette problem med en kvantecomputer?

For at tænke over det, lad os gå tilbage til sagen om at opdele 3 personer i to taxier.

Som vi så tidligere, var der 8 mulige løsninger på dette problem:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

Med en almindelig computer ved hjælp af 3 bits kunne vi kun repræsentere en af ​​disse løsninger ad gangen - for eksempel 001.

Men med en kvantecomputer, der bruger 3 qubits , kan vi repræsentere alle 8 af disse løsninger på samme tid .

Der er debatter om, hvad det betyder nøjagtigt, men her er den måde, jeg tænker på det.

Undersøg først den første qubit ud af disse 3 qubits. Når du indstiller det til begge0 og 1, det er ligesom at skabe to parallelle verdener. (Ja, det er underligt, men følg bare med her).

I en af ​​disse parallelle verdener er qubit sat til 0. I den anden er den sat til 1.

Hvad nu hvis du også indstiller den anden qubit til 0 og 1? Derefter er det som at skabe 4 parallelle verdener.

I den første verden er de to qubits indstillet til 00. I den anden er de 01. I den tredje er de 10. I den fjerde er de 11.

Tilsvarende, hvis du indstiller alle tre qubits til både 0 og 1, opretter du 8 parallelle verdener - 000, 001, 010, 011, 100, 101, 110 og 111.

Dette er en mærkelig måde at tænke på, men det er en af ​​de rigtige måder at fortolke, hvordan qubits opfører sig i den virkelige verden.

Nu, når du anvender en slags beregning på disse tre qubits, anvender du faktisk den samme beregning i alle disse 8 parallelle verdener på samme tid.

Så i stedet for at gå igennem hver af disse potentielle løsninger sekventielt, kan vi beregne scores for alle løsninger på samme tid.

Med dette særlige eksempel vil din kvantecomputer i teorien kunne finde en af ​​de bedste løsninger på få millisekunder. Igen er det 001 eller 110 som vi så tidligere:

A | B | C | Score

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- en af de bedste soluti ons

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- det andet bedste så lution

1 | 1 | 1 | -1

I virkeligheden skal du give din kvantecomputer to ting for at løse dette problem:

  • Alle mulige løsninger repræsenteret med qubits
  • En funktion, der forvandler hver potentiel løsning til en score. I dette tilfælde er dette den funktion, der tæller antallet af venpar og fjendepar, der deler den samme bil.

I betragtning af disse to ting vil din kvantecomputer spytte en af ​​de bedste løsninger på få millisekunder. I dette tilfælde er det 001 eller 110 med en score på 1.

I teorien er en kvantecomputer nu i stand til at finde en af ​​de bedste løsninger, hver gang den kører.

Men i virkeligheden er der fejl, når du kører en kvantecomputer. Så i stedet for at finde den bedste løsning kan den måske finde den næstbedste løsning, den tredje bedste løsning osv.

Disse fejl bliver mere fremtrædende, efterhånden som problemet bliver mere og mere komplekst.

Så i praksis vil du sandsynligvis køre den samme operation på en kvantecomputer dusinvis af gange eller hundreder af gange. Vælg derefter det bedste resultat ud af de mange resultater, du får.

Hvordan en kvantecomputer skaleres

Selv med de fejl, jeg nævnte, har kvantecomputeren ikke det samme skaleringsproblem, som en almindelig computer lider under.

Når der er 3 personer, som vi har brug for at opdele i to biler, er antallet af operationer, vi skal udføre på en kvantecomputer, 1. Dette skyldes, at en kvantecomputer beregner scoren for alle konfigurationer på samme tid.

Når der er 4 personer, er antallet af operationer stadig 1.

Når der er 100 mennesker, er antallet af operationer stadig 1. Med en enkelt operation beregner en kvantecomputer scoringerne for alle 2¹⁰⁰ ~ = 10³⁰ = en million millioner millioner millioner konfigurationer på samme tid.

Som jeg nævnte tidligere, er det i praksis sandsynligvis bedst at køre din kvantecomputer snesevis af gange eller hundreder af gange og vælge det bedste resultat ud af de mange resultater, du får.

Det er dog stadig meget bedre end at køre det samme problem på en almindelig computer og skulle gentage den samme type beregning en million millioner millioner millioner millioner gange.

Afslutter

En særlig tak til alle hos D-Wave Systems for tålmodigt at forklare alt dette for mig.

D-Wave lancerede for nylig et skymiljø til interaktion med en kvantecomputer.

Hvis du er en udvikler og gerne vil prøve at bruge en kvantecomputer, er det sandsynligvis den nemmeste måde at gøre det på.

Det hedder Leap, og det findes på //cloud.dwavesys.com/leap. Du kan bruge den gratis til at løse tusindvis af problemer, og de har også nemme at følge tutorials om at komme i gang med kvantecomputere, når du tilmelder dig.

Fodnote:

  • I denne artikel brugte jeg udtrykket ”almindelig computer” til at henvise til en ikke-kvantecomputer. Men i kvantecomputerindustrien kaldes ikke-kvantecomputere normalt klassiske computere.