I kvantefysikkmiljøet snakker vi mye om kvantedatamaskiner. Dette er muligens neste generasjon med datateknologi og benytter seg av – nettopp – kvantemekanikk. I teorien er disse mye, mye raskere enn en vanlig datamaskin. Hva i all verden er en kvantedatamaskin, og hvorfor er den så rask?
Kanskje vi skal begynne med «prinsippene» for en helt vanlig datamaskin, sett fra et matematisk ståsted. Hva gjør egentlig en datamaskin? Sånn egentlig? Vi gjør en lang historie kort. Dessuten sier et bilde mer enn tusen ord:
Sånn, det er dette en datamaskin gjør. Den tar inndata og manipulerer dette etter en bestemt algoritme for å produsere utdata. En algoritme er rett og slett en oppskrift som utføres av dataprogrammet. Et eksempel på en algoritme er multiplikasjon av to tall slik vi lærte det på skolen. Inndata er de to tallene A og B, utdata er produktet C:
Et annet eksempel på en algoritme er å lage fudge: Inndata er ingrediensene, oppskriften er algoritmen, og utdata er fudgen. (Men du vil nok ikke lykkes i å programmere en PC til å lage fudge.)
Akkurat som det er ganske vanskelig og tidkrevende å lage fudge, er det noen regneproblemer som er vanskeligere enn andre. For eksempel: Å gange sammen to tall blir ansett som «lett», fordi det krever et lavt antall matematiske operasjoner. Du kan selv multiplisere sammen A=2137198273 og B=2342423 i løpet av få minutter og få C=5006222390235479. Men hva om noen gav deg dette siste tallet C, og ba deg finne alle mulige faktorer i tallet? Kan C deles på 2? På 1231? Da måtte du begynne, da, og dele på 2, så på 3, 4, osv, helt reknestykket «går opp». Og du må fortsette helt til det ikke er flere muligheter for å være sikker på at du har funnet alle:
Altså: Å primtallsfaktorisere et tall er «vanskelig», fordi det krever mye, mye mer tid enn å multiplisere!
Det er faktisk slik at primtallsfaktorisering er så vanskelig at er det grunnlaget for det meste vi har av kryptografi – altså å kode informasjon slik som epost slik at uvedkommende ikke skal kunne lese det. Kort sagt kan vi si at jeg sitter med C, som jeg har laget ved å gange sammen tall (som er lett), og for å knekke koden må du finne faktoriseringen (som er vanskelig)!
Og nå kommer et viktig poeng: For en kvantedatamaskin er primtallsfaktorisering lett! Kvante-algoritmen kalles «Shors algoritme» etter oppdageren Peter Shor ved MIT. Faktorisering går like fort som multiplikasjon med Shors algoritme. Saft suse. Det er også mange andre algoritmer som går raskt på en kvantedatamaskin, som for eksempel databasesøk. På den annen side vil ikke PlayStation 7 være en kvantedatamaskin. Det er nemlig bare enkelte typer oppgaver kvantedatamaskiner er bedre på.
Først tenker du kanskje «auda, skal si det blir kjipt å måtte bytte passord annenhver time i år 2052». (Som om ikke det er nok med de 43 passordene du allerede sjonglerer på facebook, epost, twitter og you name it.) Så tenker du kanskje «hvordan er dette mulig? Hvordan kan kvantedatamaskinen rekne så mye fortere?»
Alle datamaskiner må lagre informasjonen de behandler i minnet. Den grunnleggende informasjonsenheten i datamskiner kalles en bit, og er en 0 eller en 1. En byte er 8 bits og kan lagre et tall mellom 0 og 255, siden det er 256 kombinasjonsmuligheter. For eksempel kan tallet 9 representeres som 00001001. I datamaskinen er det elektronikk som holder styr på bitenes verdi til enhver tid. Man kan se for seg brytere som er av (0) eller på (1), og det er et godt bilde på hvordan datamaskinen lagrer bits.
Over til kvantedata. Kvantemekanikken er naturlovene som styrer atomer og elektroner og den slags. En bit blir nå representert av en snurrende kvantepartikkel, en qubit på godt norsk. Nøyaktig hva denne partikkelen er vil ta for lang tid å forklare, men vi kan bruke et elektron som eksempel. Elektronet har en spesiell egenskap som kalles elektronspinn, og dette er noe veldig, veldig merkelig, og kan ikke forklares med hverdagslige begreper og sunn fornuft. Det er «ren kvantemekanikk».
La oss få en følelse med dette spinnet. Spinnet kan beskrives som at eletronet snurrer som en planet. Det kan snurre i alle retninger, mot høyre eller mot venstre, opp eller ned, frem og tilbake. Og elektronet vil aldri, aldri aldri slutte å spinne, det er en innebygget egenskap og krever ikke noe energi for å opprettholdes. Og den kan, i motsetning til en planet, skifte snurreretning veldig brått, avhengig av hva omgivelsene gjør, for eksempel berekninger i en kvantedatamaskin. Her er et elektron som spinner mot høyre, om en akse som peker oppover:
Samtidig som snurre-analogien er nyttig, er den ufullstendig. Og det er her kvantemekanikken kommer inn i bildet. I en annen artikkel har vi diskutert hvordan en kvantepartikkel kan være flere steder på en gang, eller i flere «tilstander» som vi fysikere liker å si når vi er viktige. Spinn mot høyre er faktisk det samme som at elektronet snurrer oppover og nedover samtidig! Dette uttrykker vi med en likning, omtrent slik:
Det er faktisk sånn vi rekner i kvantemekanikken, selv om jeg har forenklet en del. Den merkelige «være i to tilstander på en gang»-egenskapen uttrykkes som en sum av to ting, to tilstander, og kalles superposisjon. (Fint ord, det kan du ta med på lønningspilsen!) Vi har ingen fornuftige dagligdagse begreper på denne merkelige superposisjonsoppførselen, og jeg synes bare det blir merkeligere og merkeligere hver gang jeg funderer på det, så slapp av dersom hodet ditt begynner å verke — det er helt normalt. Mitt verker hver dag.
Sagt enkelt betyr superposisjon at elektronet er i både den ene og den andre tilstanden samtidig, dvs. at den snurrer både mot venstre og mot høyre. Og dersom vi prøver å finne ut hvilken vei den snurrer med en måling, vil vi finne hver mulighet med 50 % sannsynlighet. Sprøtt!
Okei, så i en kvantedatamaskin er biten erstattet med en qubit. For å oversette en byte til en «qubyte» erstatter vi bare 0 med «spinn opp» og 1 med «spinn ned». Så 8 elektroner er en qubyte! Så nå kan vi representere inndata og utdata.
Så hvordan kan kvanteberekninger være så raske? Cluet er — nettopp — superposisjon.
Tenk deg at du skal forsøke å dividere A på B, altså rekne ut C = A/B. Inndata er A og B, og utdata er C. Algoritmen er divisjon. Men hva om du kunne lage inndata som representerte alle mulige B på en gang, altså som en superposisjon? Vel, da ville divisjonsalgoritmen dele på alle mulige tall på en gang, da! Og utdataene ville være alle resultatene — i en superposisjon!
Og det er dette kvantedatamaskinen gjør.
Så kvantedatamaskinen kan primtallsfaktorisere raskt fordi den sjekker alle mulighetene for faktorer på en gang! Det er intet mindre enn magisk, spør du meg.
Så, er kvantedata bare teori, eller kan det oversettes i praksis? Dette er et interessant spørsmål. Det er nemlig uhyre vanskelig å bygge en datamaskin. Den må ha et ekstremt finstemt «urverk» og må være streng adskilt fra omgivelsene. Den minste temperatursvingning eller bevegelse vil ødelegge beregningene. Så det er et lite stykke til kvantedatamaskinene blir husholdningsvare. Det beste man beviselig har klart å gjøre med en maskin hittil er å faktorisere 15 = 3*5. (Og selv det er det noen som betviler.)
Men hvem vet hva fremtiden vil vise?
3 kommentarer