Afmystificering af principperne for kvanteberegning

Afmystificering af principperne for kvanteberegning
"Jeg tror, ​​jeg kan roligt sige, at ingen forstår kvantemekanik." - Richard Feynman

Emnet kvantecomputere har altid fascineret tekniske forfattere og journalister. Dens beregningspotentiale og kompleksitet gav den en vis mystisk aura. For ofte beskriver featureartikler og infografik i detaljer de forskellige udsigter for denne industri, mens de knap berører dens praktiske anvendelse: Dette kan vildlede den mindre opmærksomme læser.

Populærvidenskabelige artikler udelader beskrivelser af kvantesystemer og kommer med udsagn som:

En almindelig bit kan være en 1 eller en 0, men en qubit kan være en 1 og en 0 på samme tid.

Hvis du er meget heldig (hvilket jeg ikke er sikker på), vil du få at vide, at:

Qubit'en er i en superposition mellem "1" og "0".

Ingen af ​​disse forklaringer virker plausible, da vi forsøger at formulere et kvantemekanisk fænomen ved hjælp af sprog udviklet i en meget traditionel verden. For klart at forklare principperne for kvanteberegning er det nødvendigt at bruge et andet sprog - matematisk. 

I denne øvelse vil jeg dække de matematiske værktøjer, der er nødvendige for at modellere og forstå kvantecomputersystemer, samt hvordan man illustrerer og anvender kvantecomputerens logik. Desuden vil jeg give et eksempel på en kvantealgoritme og fortælle dig, hvad dens fordel er i forhold til en traditionel computer.

Jeg vil gøre mit bedste for at forklare alt dette i et klart sprog, men jeg håber stadig, at læsere af denne artikel har en grundlæggende forståelse af lineær algebra og digital logik (lineær algebra er dækket her, om digital logik - her). 

Lad os først gennemgå principperne for digital logik. Det er baseret på brugen af ​​elektriske kredsløb til at udføre beregninger. For at gøre vores beskrivelse mere abstrakt, lad os forenkle tilstanden af ​​den elektriske ledning til "1" eller "0", som vil svare til tilstandene "on" eller "off". Ved at arrangere transistorer i en bestemt rækkefølge vil vi skabe såkaldte logiske elementer, der tager en eller flere inputsignalværdier og konverterer dem til et outputsignal baseret på visse regler for boolsk logik.

Afmystificering af principperne for kvanteberegning

Fælles logiske porte og deres tilstandstabeller

Baseret på kæderne af sådanne grundelementer kan der skabes mere komplekse elementer, og ud fra kæderne af mere komplekse elementer kan vi i sidste ende, med en stor grad af abstraktion, forvente at opnå en analog af den centrale processor.

Som jeg nævnte tidligere, har vi brug for en måde at repræsentere digital logik matematisk. Lad os først introducere matematisk traditionel logik. Ved hjælp af lineær algebra kan de klassiske bits med værdierne "1" og "0" repræsenteres som to kolonnevektorer:
Afmystificering af principperne for kvanteberegning
hvor tallene til venstre er Dirac notation vektor. Ved at repræsentere vores bits på denne måde kan vi modellere logiske operationer på bits ved hjælp af vektortransformationer. Bemærk venligst: selvom brug af to bits i logiske porte kan udføre mange operationer (AND, NOT, XOR osv.), når du bruger én bit, kan der kun udføres fire operationer: identitetskonvertering, negation, beregning af konstanten "0" og beregning af konstanten "1". Ved en identitetskonvertering forbliver bitten uændret, med en negation ændres bitværdien til det modsatte (fra "0" til "1" eller fra "1" til "0"), og beregningen af ​​konstanten "1" eller "0" indstiller bit til "1" eller "0" uanset dens tidligere værdi.
Afmystificering af principperne for kvanteberegning

Identity Identitetstransformation
negationen benægtelse
Konstant-0 Beregning af konstanten "0"
Konstant-1 Beregning af konstanten "1"

Baseret på vores foreslåede nye repræsentation af en bit, er det ret nemt at udføre operationer på den tilsvarende bit ved hjælp af en vektortransformation:

Afmystificering af principperne for kvanteberegning

Inden vi går videre, lad os se på konceptet reversible beregninger, hvilket blot indebærer, at for at sikre reversibilitet af en operation eller et logisk element, er det nødvendigt at bestemme en liste over inputsignalværdier baseret på udgangssignalerne og navnene på de anvendte operationer. Således kan vi konkludere, at identitetstransformationen og negationen er reversible, men operationerne til beregning af konstanterne "1" og "0" er det ikke. Tak til enhed kvantemekanik, kvantecomputere bruger udelukkende reversible operationer, så det er det, vi vil fokusere på. Dernæst konverterer vi irreversible elementer til reversible elementer for at gøre det muligt for dem at blive brugt af en kvantecomputer.

Med tensor produkt individuelle bits kan repræsenteres af mange bits:
Afmystificering af principperne for kvanteberegning
Nu hvor vi har næsten alle de nødvendige matematiske begreber, lad os gå videre til vores første kvantelogiske port. Dette er operatøren CNOT, eller kontrolleret Not (NOT), som er af stor betydning i reversibel og kvanteberegning. CNOT-elementet gælder for to bits og returnerer to bits. Den første bit er udpeget som "kontrol" bit, og den anden som "kontrol" bit. Hvis kontrolbitten er sat til "1", ændrer kontrolbitten sin værdi; Hvis kontrolbitten er sat til "0", ændres kontrolbitten ikke.
Afmystificering af principperne for kvanteberegning
Denne operator kan repræsenteres som følgende transformationsvektor:
Afmystificering af principperne for kvanteberegning
For at demonstrere alt, hvad vi har dækket indtil nu, vil jeg vise dig, hvordan du bruger CNOT-elementet på flere bits:
Afmystificering af principperne for kvanteberegning
For at opsummere, hvad der allerede er blevet sagt: i det første eksempel dekomponerer vi |10⟩ i dele af dets tensorprodukt og bruger CNOT-matricen til at opnå en ny tilsvarende tilstand af produktet; vi faktoriserer det derefter til |11⟩ i henhold til tabellen med CNOT-værdier givet tidligere.

Så vi har husket alle de matematiske regler, der vil hjælpe os med at forstå traditionel databehandling og almindelige bits, og vi kan endelig gå videre til moderne kvantedatabehandling og qubits.

Hvis du har læst så langt, så har jeg gode nyheder til dig: qubits kan let udtrykkes matematisk. Generelt, hvis en klassisk bit (cbit) kan sættes til |1⟩ eller |0⟩, er qubit blot i superposition og kan være både |0⟩ og |1⟩ før måling. Efter måling falder den sammen til |0⟩ eller |1⟩. Med andre ord kan en qubit repræsenteres som en lineær kombination af |0⟩ og |1⟩ ifølge formlen nedenfor:
Afmystificering af principperne for kvanteberegning
где a₀ и a₁ repræsenterer henholdsvis amplituderne |0⟩ og |1⟩. Disse kan opfattes som "kvantesandsynligheder", som repræsenterer sandsynligheden for, at en qubit kollapser i en af ​​tilstandene, efter at den er målt, da et objekt i superposition i kvantemekanikken kollapser i en af ​​tilstandene efter at være blevet fikset. Lad os udvide dette udtryk og få følgende:
Afmystificering af principperne for kvanteberegning
For at forenkle min forklaring er dette den repræsentation, jeg vil bruge i denne artikel.

For denne qubit er chancen for at kollapse til værdien a₀ efter måling er lig med |a₀|², og chancen for at kollapse til værdien a₁ er lig med |a₁|². For eksempel for følgende qubit:
Afmystificering af principperne for kvanteberegning
chancen for at falde sammen til "1" er lig med |1/ √2|², eller ½, det vil sige 50/50.

Da alle sandsynligheder i det klassiske system skal lægges sammen til én (for en fuldstændig sandsynlighedsfordeling), kan vi konkludere, at kvadraterne af de absolutte værdier af amplituderne |0⟩ og |1⟩ skal lægges sammen til en. Baseret på denne information kan vi formulere følgende ligning:
Afmystificering af principperne for kvanteberegning
Hvis du er fortrolig med trigonometri, vil du bemærke, at denne ligning svarer til Pythagoras sætning (a²+b²=c²), det vil sige, at vi grafisk kan repræsentere qubittens mulige tilstande som punkter på enhedscirklen, nemlig:
Afmystificering af principperne for kvanteberegning
Logiske operatorer og elementer anvendes på qubits på samme måde som i situationen med klassiske bits - baseret på en matrixtransformation. Alle de inverterbare matrixoperatorer, som vi har tilbagekaldt indtil videre, især CNOT, kan bruges til at arbejde med qubits. Sådanne matrixoperatorer giver dig mulighed for at bruge hver af amplituderne af qubit uden at måle og kollapse den. Lad mig give dig et eksempel på brug af negationsoperatoren på en qubit:
Afmystificering af principperne for kvanteberegning
Før vi fortsætter, lad mig minde dig om, at amplitudeværdierne a₀ og a₁ er faktisk komplekse tal, så tilstanden af ​​en qubit mest nøjagtigt kan afbildes på en tredimensionel enhedssfære, også kendt som Loppe kugle:
Afmystificering af principperne for kvanteberegning
Men for at forenkle forklaringen vil vi her begrænse os til reelle tal.

Det synes på tide at diskutere nogle logiske elementer, der giver mening udelukkende i forbindelse med kvanteberegning.

En af de vigtigste operatorer er "Hadamard-elementet": det tager lidt i en "0" eller "1" tilstand og sætter det i den passende superposition med en 50% chance for at kollapse til en "1" eller "0" efter måling. 
Afmystificering af principperne for kvanteberegning
Bemærk, at der er et negativt tal i nederste højre side af Hadamard-operatøren. Dette skyldes, at resultatet af at anvende operatoren afhænger af værdien af ​​indgangssignalet: - |1⟩ eller |0⟩, og derfor er beregningen reversibel.

Et andet vigtigt punkt ved Hadamard-elementet er dets inverterbarhed, hvilket betyder, at det kan tage en qubit i den passende superposition og transformere det til |0⟩ eller |1⟩.
Afmystificering af principperne for kvanteberegning
Dette er meget vigtigt, fordi det giver os evnen til at transformere fra en kvantetilstand uden at bestemme tilstanden af ​​qubitten - og følgelig uden at kollapse den. Således kan vi strukturere kvanteberegning baseret på et deterministisk snarere end et sandsynlighedsprincip.

Kvanteoperatorer, der kun indeholder reelle tal, er deres egen modsætning, så vi kan repræsentere resultatet af at anvende operatoren på en qubit som en transformation inden for enhedscirklen i form af en tilstandsmaskine:
Afmystificering af principperne for kvanteberegning
Qubit'en, hvis tilstand er præsenteret i diagrammet ovenfor, efter anvendelse af Hadamard-operationen, transformeres således til tilstanden angivet med den tilsvarende pil. Ligeledes kan vi konstruere en anden tilstandsmaskine, der vil illustrere transformationen af ​​en qubit ved hjælp af negationsoperatoren som vist ovenfor (også kendt som Pauli negationsoperatoren eller bitinversion), som vist nedenfor:
Afmystificering af principperne for kvanteberegning
For at udføre mere komplekse operationer på vores qubit kan vi kæde flere operatorer eller anvende elementer flere gange. Eksempel på seriel transformation baseret på kvantekredsløbsrepræsentationer er som følger:
Afmystificering af principperne for kvanteberegning
Det vil sige, hvis vi starter med bit |0⟩, anvender en bit-inversion, og derefter en Hadamard-operation, derefter en anden bit-inversion, og igen en Hadamard-operation, efterfulgt af en sidste bit-inversion, ender vi med vektoren givet af on højre side af kæden. Ved at lægge forskellige tilstandsmaskiner oven på hinanden kan vi starte ved |0⟩ og spore de farvede pile, der svarer til hver af transformationerne, for at forstå, hvordan det hele fungerer.
Afmystificering af principperne for kvanteberegning
Da vi er nået så langt, er det tid til at overveje en af ​​typerne af kvantealgoritmer, nemlig - Deutsch-Jozsa algoritme, og viser dens fordel i forhold til en klassisk computer. Det er værd at bemærke, at Deutsch-Jozsa-algoritmen er fuldstændig deterministisk, det vil sige, at den returnerer det korrekte svar 100% af tiden (i modsætning til mange andre kvantealgoritmer baseret på den probabilistiske definition af qubits).

Lad os forestille os, at du har en sort boks, der indeholder en funktion/operator på én bit (husk - med én bit kan der kun udføres fire operationer: identitetskonvertering, negation, evaluering af konstanten "0" og evaluering af konstanten "1" "). Hvilken funktion udføres præcist i boksen? Du ved ikke hvilken, men du kan gennemgå så mange varianter af inputværdier, som du vil, og evaluere outputresultaterne.

Afmystificering af principperne for kvanteberegning
Hvor mange input og output skal du køre gennem den sorte boks for at finde ud af, hvilken funktion der bruges? Tænk over dette et øjeblik.

I tilfælde af en klassisk computer skal du lave 2 forespørgsler for at bestemme den funktion, der skal bruges. For eksempel, hvis input "1" producerer et "0" output, bliver det klart, at enten funktionen til at beregne konstanten "0" eller negationsfunktionen bruges, hvorefter du bliver nødt til at ændre værdien af ​​inputsignalet til "0" og se, hvad der sker ved udgangen.

I tilfælde af en kvantecomputer vil der også være behov for to forespørgsler, da du stadig har brug for to forskellige outputværdier for præcist at definere den funktion, der skal gælde for inputværdien. Men hvis man omformulerer spørgsmålet lidt, viser det sig, at kvantecomputere stadig har en seriøs fordel: Hvis man ville vide, om den funktion, der bruges, er konstant eller variabel, ville kvantecomputere have fordelen.

Funktionen, der bruges i boksen, er variabel, hvis forskellige værdier af inputsignalet giver forskellige resultater ved udgangen (f.eks. identitetskonvertering og bitinversion), og hvis outputværdien ikke ændres uanset inputværdien, så funktion er konstant (for eksempel ved at beregne en konstant "1" eller beregne konstanten "0").

Ved hjælp af en kvantealgoritme kan du bestemme, om en funktion i en sort boks er konstant eller variabel baseret på kun én forespørgsel. Men før vi ser på, hvordan man gør dette i detaljer, skal vi finde en måde at strukturere hver af disse funktioner på en kvantecomputer. Da enhver kvanteoperator skal være inverterbar, står vi straks over for et problem: funktionerne til at beregne konstanterne "1" og "0" er det ikke.

En almindelig løsning, der bruges i kvanteberegning, er at tilføje en ekstra output-qubit, der returnerer den inputværdi, som funktionen modtager. 

Før: Efter:
Afmystificering af principperne for kvanteberegning Afmystificering af principperne for kvanteberegning

På denne måde kan vi bestemme inputværdierne udelukkende baseret på outputværdien, og funktionen bliver inverterbar. Strukturen af ​​kvantekredsløb skaber behov for en ekstra inputbit. For at udvikle de tilsvarende operatorer vil vi antage, at den ekstra input-qubit er sat til |0⟩.

Ved at bruge den samme kvantekredsløbsrepræsentation, som vi brugte tidligere, lad os se, hvordan hvert af de fire elementer (identitetstransformation, negation, evaluering af konstanten "0" og evaluering af konstanten "1") kan implementeres ved hjælp af kvanteoperatorer. 

For eksempel er det sådan, du kan implementere funktionen til at beregne konstanten "0":

Beregning af konstanten "0":
Afmystificering af principperne for kvanteberegning
Her har vi slet ikke brug for operatører. Den første input-qubit (som vi antog at være |0⟩) returnerer med den samme værdi, og den anden inputværdi returnerer sig selv - som sædvanligt.

Med funktionen til at beregne konstanten "1" er situationen lidt anderledes:

Beregning af konstanten "1":
Afmystificering af principperne for kvanteberegning
Da vi har antaget, at den første input-qubit altid er sat til |0⟩, er resultatet af at anvende bitinversionsoperatoren, at den altid producerer en et ved udgangen. Og som sædvanlig giver den anden qubit sin egen værdi ved udgangen.

Når man kortlægger identitetstransformationsoperatøren, begynder opgaven at blive mere kompliceret. Sådan gør du:

Identisk transformation:
Afmystificering af principperne for kvanteberegning
Symbolet, der bruges her, angiver CNOT-elementet: den øverste linje angiver kontrolbitten, og den nederste linje angiver kontrolbitten. Lad mig minde dig om, at når du bruger CNOT-operatoren, ændres værdien af ​​kontrolbitten, hvis kontrolbitten er lig med |1⟩, men forbliver uændret, hvis kontrolbitten er lig med |0⟩. Da vi antog, at værdien af ​​den øverste linje altid er lig med |0⟩, er dens værdi altid tildelt den nederste linje.

Vi fortsætter på lignende måde med negationsoperatoren:

negation:
Afmystificering af principperne for kvanteberegning
Vi inverterer simpelthen bitten for enden af ​​outputlinjen.

Nu hvor vi har fået den foreløbige forståelse af vejen, lad os se på de specifikke fordele ved en kvantecomputer frem for en traditionel computer, når det kommer til at bestemme konstanten eller variabiliteten af ​​en funktion skjult i en sort boks ved hjælp af kun én forespørgsel.

For at løse dette problem ved hjælp af kvanteberegning i en enkelt anmodning, er det nødvendigt at sætte input-qubits i en superposition, før de overføres til funktionen, som vist nedenfor:
Afmystificering af principperne for kvanteberegning
Hadamard-elementet genanvendes på resultatet af funktionen for at bryde qubits ud af superposition og gøre algoritmen deterministisk. Vi starter systemet i tilstanden |00⟩, og af grunde, jeg vil forklare kort, får vi resultatet |11⟩, hvis den anvendte funktion er konstant. Hvis funktionen inde i den sorte boks er variabel, returnerer systemet efter måling resultatet |01⟩.

For at forstå resten af ​​artiklen, lad os se på illustrationen, jeg viste tidligere:
Afmystificering af principperne for kvanteberegning
Ved at bruge bitinversionsoperatoren og derefter anvende Hadamard-elementet på begge inputværdier svarende til |0⟩, sikrer vi, at de oversættes til den samme superposition af |0⟩ og |1⟩, som følger:
Afmystificering af principperne for kvanteberegning
Ved at bruge eksemplet med at overføre denne værdi til en sort boks-funktion, er det let at demonstrere, at begge konstantværdifunktioner udsender |11⟩.

Beregning af konstanten "0":
Afmystificering af principperne for kvanteberegning
På samme måde ser vi, at funktionen til at beregne konstanten "1" også producerer |11⟩ som et output, det vil sige:

Beregning af konstanten "1":
Afmystificering af principperne for kvanteberegning
Bemærk, at outputtet vil være |1⟩, da -1² = 1.

Efter samme princip kan vi bevise, at når vi bruger begge variable funktioner, vil vi altid få |01⟩ ved udgangen (forudsat at vi bruger samme metode), selvom alt er lidt mere kompliceret.

Identisk transformation:
Afmystificering af principperne for kvanteberegning
Da CNOT er en to-qubit-operator, kan den ikke repræsenteres som en simpel tilstandsmaskine, og derfor er det nødvendigt at definere to udgangssignaler baseret på tensorproduktet af både input-qubits og multiplikation med CNOT-matricen som beskrevet tidligere:
Afmystificering af principperne for kvanteberegning
Med denne metode kan vi også bekræfte, at outputværdien |01⟩ modtages, hvis negationsfunktionen er skjult i den sorte boks:

negation:
Afmystificering af principperne for kvanteberegning
Således har vi netop demonstreret en situation, hvor en kvantecomputer er klart mere effektiv end en konventionel computer.

Hvad bliver det næste?

Jeg foreslår, at vi slutter her. Vi har allerede gjort et godt stykke arbejde. Hvis du har forstået alt, hvad jeg har dækket, tror jeg, at du nu har en god forståelse af det grundlæggende i kvanteberegning og kvantelogik, og hvorfor kvantealgoritmer kan være mere effektive end traditionel databehandling i visse situationer.

Min beskrivelse kan næppe kaldes en fuldgyldig guide til kvanteberegning og algoritmer - det er snarere en kort introduktion til matematik og notation, designet til at fjerne læsernes ideer om emnet påtvunget af populærvidenskabelige kilder (seriøst, mange kan virkelig ikke forstå situationen!). Jeg havde ikke tid til at berøre mange vigtige emner, som f.eks kvantesammenfiltring af qubits, kompleksiteten af ​​amplitudeværdierne |0⟩ og |1⟩ og funktionen af ​​forskellige kvantelogiske elementer under transformation af Bloch-sfæren.

Hvis du ønsker at systematisere og strukturere din viden om kvantecomputere, hurtigst muligt Jeg anbefaler dig at læse "En introduktion til kvantealgoritmer" Emma Strubel: På trods af overfloden af ​​matematiske formler diskuterer denne bog kvantealgoritmer meget mere detaljeret.

Kilde: www.habr.com

Tilføj en kommentar