Kvantarvutamise põhimõtete demüstifitseerimine

Kvantarvutamise põhimõtete demüstifitseerimine
"Ma arvan, et võin julgelt öelda, et keegi ei mõista kvantmehaanikat." - Richard Feynman

Kvantarvutite teema on alati köitnud tehnikakirjanikke ja ajakirjanikke. Selle arvutuslik potentsiaal ja keerukus andsid sellele teatud müstilise aura. Liiga sageli kirjeldavad teemaartiklid ja infograafika üksikasjalikult selle valdkonna erinevaid väljavaateid, puudutades vaevu selle praktilist rakendust: see võib vähem tähelepanelikku lugejat eksitada.

Populaarteaduslikud artiklid jätavad kvantsüsteemide kirjeldused välja ja esitavad selliseid väiteid:

Tavaline bitt võib olla 1 või 0, kuid kubit võib olla samaaegselt 1 ja 0.

Kui teil väga veab (milles ma pole kindel), öeldakse teile järgmist:

Kubit on superpositsioonis "1" ja "0" vahel.

Ükski neist seletustest ei tundu usutav, kuna püüame sõnastada kvantmehaanilist nähtust, kasutades väga traditsioonilises maailmas välja töötatud keelt. Kvantarvutamise põhimõtete selgeks selgitamiseks on vaja kasutada teist keelt - matemaatilist. 

Selles õpetuses käsitlen matemaatilisi tööriistu, mis on vajalikud kvantarvutussüsteemide modelleerimiseks ja mõistmiseks, samuti kvantarvutamise loogika illustreerimiseks ja rakendamiseks. Lisaks toon näite kvantalgoritmi kohta ja ütlen teile, mis on selle eelis võrreldes traditsioonilise arvutiga.

Annan endast parima, et kõike seda selges keeles selgitada, kuid siiski loodan, et selle artikli lugejatel on põhiteadmised lineaaralgebrast ja digitaalloogikast (käsitletakse lineaaralgebrat  siin, digiloogikast -  siin). 

Kõigepealt vaatame üle digitaalse loogika põhimõtted. See põhineb elektriahelate kasutamisel arvutuste tegemiseks. Kirjelduse abstraktsemaks muutmiseks lihtsustame elektrijuhtme olekut väärtuseni "1" või "0", mis vastab olekutele "sees" või "väljas". Transistorid kindlasse järjestusse paigutades loome nn loogilised elemendid, mis võtavad ühe või mitu sisendsignaali väärtust ja teisendavad need väljundsignaaliks teatud Boole'i ​​loogika reeglite alusel.

Kvantarvutamise põhimõtete demüstifitseerimine

Ühised loogikaväravad ja nende olekutabelid

Selliste põhielementide ahelate põhjal saab luua keerukamaid elemente ning keerukamate elementide ahelate põhjal võib lõpuks suure abstraktsiooniastmega eeldada keskprotsessori analoogi saamist.

Nagu ma varem mainisin, vajame viisi digitaalloogika matemaatiliseks esitamiseks. Esiteks tutvustame matemaatilist traditsioonilist loogikat. Lineaaralgebra abil saab klassikalisi bitte väärtustega "1" ja "0" esitada kahe veeruvektorina:
Kvantarvutamise põhimõtete demüstifitseerimine
kus on vasakpoolsed numbrid Dirac märge vektor. Esitades oma bitte sel viisil, saame vektorteisenduste abil modelleerida bittide loogilisi operatsioone. Pange tähele: kuigi kahe biti kasutamine loogikaväravates võib sooritada palju operatsioone (AND, NOT, XOR jne), saab ühe biti kasutamisel teha ainult neli toimingut: identiteedi teisendamine, eitus, konstandi “0” arvutamine ja konstandi “1” arvutamine. Identiteedi teisendamise korral jääb bitt muutumatuks, eituse korral muutub biti väärtus vastupidiseks (0-lt 1-le või 1-lt 0-le) ja konstandi "1" arvutamine või "0" määrab biti väärtuseks "1" või "0", olenemata selle eelmisest väärtusest.
Kvantarvutamise põhimõtete demüstifitseerimine

Identity Identiteedi transformatsioon
Negatsioon Negatsioon
Konstant-0 Konstandi "0" arvutamine
Konstant-1 Konstandi "1" arvutamine

Meie pakutud uue biti esituse põhjal on vektori teisenduse abil vastava bitiga toiminguid üsna lihtne teha:

Kvantarvutamise põhimõtete demüstifitseerimine

Enne edasiliikumist vaatame kontseptsiooni pöörduvad arvutused, mis lihtsalt tähendab, et toimingu või loogikaelemendi pöörduvuse tagamiseks on vaja väljundsignaalide ja kasutatud toimingute nimede põhjal määrata sisendsignaali väärtuste loend. Seega võime järeldada, et identiteedi teisendus ja eitus on pöörduvad, kuid konstantide “1” ja “0” arvutamise toimingud mitte. Tänu ühtsus kvantmehaanika, kvantarvutid kasutavad eranditult pöörduvaid operatsioone, seega keskendume sellele. Järgmisena teisendame pöördumatud elemendid pöörduvateks elementideks, et võimaldada neid kvantarvutis kasutada.

Koos tensor toode üksikuid bitte saab esitada paljude bittidena:
Kvantarvutamise põhimõtete demüstifitseerimine
Nüüd, kus meil on peaaegu kõik vajalikud matemaatilised mõisted, liigume edasi oma esimese kvantloogika värava juurde. See on operaator EI TOHI, või kontrollitud Not (NOT), millel on suur tähtsus pööratavas ja kvantarvutuses. Element CNOT kehtib kahe biti kohta ja tagastab kaks bitti. Esimene bitt on määratud "juhtimisbitiks" ja teine ​​​​juhtbitiks. Kui juhtbitt on seatud väärtusele "1", muudab juhtbitt oma väärtust; Kui juhtbitt on seatud väärtusele "0", siis juhtbitti ei muudeta.
Kvantarvutamise põhimõtete demüstifitseerimine
Seda operaatorit saab esitada järgmise teisendusvektorina:
Kvantarvutamise põhimõtete demüstifitseerimine
Et näidata kõike, mida oleme seni käsitlenud, näitan teile, kuidas kasutada elementi CNOT mitmel bitil:
Kvantarvutamise põhimõtete demüstifitseerimine
Kokkuvõtteks juba öeldut: esimeses näites lagundame |10⟩ selle tensorkorrutise osadeks ja kasutame maatriksit CNOT, et saada korrutisele uus vastav olek; siis arvutame selle väärtuseks |11⟩ vastavalt varem antud CNOT väärtuste tabelile.

Niisiis, oleme meeles pidanud kõik matemaatilised reeglid, mis aitavad meil mõista traditsioonilist andmetöötlust ja tavalisi bitte, ning lõpuks saame liikuda edasi kaasaegse kvantarvutuse ja kubittide juurde.

Kui olete nii kaugele lugenud, siis on mul teile hea uudis: kubite saab hõlpsasti matemaatiliselt väljendada. Üldiselt, kui klassikalise biti (cbit) saab seada väärtusele |1⟩ või |0⟩, on kubit lihtsalt superpositsioonis ja võib enne mõõtmist olla nii |0⟩ kui ka |1⟩. Pärast mõõtmist kukub see kokku |0⟩ või |1⟩. Teisisõnu, kubiti saab esitada lineaarse kombinatsioonina |0⟩ ja |1⟩ vastavalt järgmisele valemile:
Kvantarvutamise põhimõtete demüstifitseerimine
kus a₀ и a₁ tähistavad vastavalt amplituudid |0⟩ ja |1⟩. Neid võib pidada "kvanttõenäosusteks", mis tähistavad tõenäosust, et kubit langeb pärast mõõtmist ühte olekusse, kuna kvantmehaanikas kukub superpositsioonis olev objekt pärast fikseerimist ühte olekusse. Laiendame seda väljendit ja saame järgmise:
Kvantarvutamise põhimõtete demüstifitseerimine
Minu selgituse lihtsustamiseks kasutan selles artiklis seda esitust.

Selle qubiti puhul on võimalus väärtuseni kokku kukkuda a₀ pärast mõõtmist on võrdne |a₀|² ja kokkuvarisemise võimalus väärtuseni a₁ on võrdne |a₁|². Näiteks järgmise qubiti jaoks:
Kvantarvutamise põhimõtete demüstifitseerimine
"1"-ks kokkuvarisemise võimalus on võrdne |1/ √2|² ehk ½, see tähendab 50/50.

Kuna klassikalises süsteemis peavad kõik tõenäosused kokku liitma ühe (täieliku tõenäosusjaotuse jaoks), siis võime järeldada, et amplituudide |0⟩ ja |1⟩ absoluutväärtuste ruudud peavad kokku saama ühe. Selle teabe põhjal saame formuleerida järgmise võrrandi:
Kvantarvutamise põhimõtete demüstifitseerimine
Kui olete trigonomeetriaga tuttav, märkate, et see võrrand vastab Pythagorase teoreemile (a²+b²=c²), see tähendab, et me saame graafiliselt kujutada kubiidi võimalikke olekuid punktidena ühikuringil, nimelt:
Kvantarvutamise põhimõtete demüstifitseerimine
Loogilisi operaatoreid ja elemente rakendatakse kubitidele samamoodi nagu klassikaliste bittide puhul – maatriksteisendusel. Kõiki pööratavaid maatriksioperaatoreid, mida oleme seni meelde tuletanud, eriti CNOT-i, saab kasutada kubitidega töötamiseks. Sellised maatriksoperaatorid võimaldavad teil kasutada kubiti iga amplituudi ilma seda mõõtmata ja kokku varisemata. Lubage mul toon teile näite eitusoperaatori kasutamisest qubitis:
Kvantarvutamise põhimõtete demüstifitseerimine
Enne jätkamist tuletan teile meelde, et amplituudi väärtused a₀ ja a₁ on tegelikult kompleksarvud, seega saab kubiti oleku kõige täpsemini kaardistada kolmemõõtmelisele ühikkerale, mida tuntakse ka kui Kirbu kera:
Kvantarvutamise põhimõtete demüstifitseerimine
Selgitamise lihtsustamiseks piirdume siin aga reaalarvudega.

Tundub, et on aeg arutada mõningaid loogikaelemente, mis on mõistlikud ainult kvantarvutuse kontekstis.

Üks olulisemaid operaatoreid on "Hadamardi element": see võtab natuke olekusse "0" või "1" ja asetab selle sobivasse superpositsiooni 50% tõenäosusega, et see langeb kokku "1" või "0" pärast mõõtmist. 
Kvantarvutamise põhimõtete demüstifitseerimine
Pange tähele, et Hadamardi operaatori alumises paremas servas on negatiivne arv. See on tingitud asjaolust, et operaatori rakendamise tulemus sõltub sisendsignaali väärtusest: - |1⟩ või |0⟩ ja seetõttu on arvutus pööratav.

Veel üks oluline punkt Hadamardi elemendi kohta on selle pööratavus, mis tähendab, et see võib võtta sobivas superpositsioonis kubiti ja teisendada selle |0⟩ või |1⟩.
Kvantarvutamise põhimõtete demüstifitseerimine
See on väga oluline, sest see annab meile võimaluse teiseneda kvantolekust ilma kubiti olekut määramata – ja vastavalt ilma seda kokku varisemata. Seega saame kvantarvutuse struktureerida pigem deterministliku kui tõenäosusliku põhimõtte alusel.

Kvantoperaatorid, mis sisaldavad ainult reaalarve, on nende endi vastandid, seega saame operaatori kubitile rakendamise tulemust esitada ühikuringi sees teisendusena olekumasina kujul:
Kvantarvutamise põhimõtete demüstifitseerimine
Seega teisendatakse kubit, mille olek on ülaltoodud diagrammil, pärast Hadamardi operatsiooni rakendamist vastava noolega näidatud olekusse. Samamoodi saame konstrueerida teise olekumasina, mis illustreerib kubiti teisendamist ülaltoodud eitusoperaatori abil (tuntud ka kui Pauli eituse operaator või biti inversioon), nagu allpool näidatud:
Kvantarvutamise põhimõtete demüstifitseerimine
Oma qubitiga keerukamate toimingute tegemiseks saame mitut operaatorit aheldada või elemente mitu korda rakendada. Näide jadateisendusest, mis põhineb kvantahela esitused on järgmine:
Kvantarvutamise põhimõtete demüstifitseerimine
See tähendab, et kui alustame bitiga |0⟩, rakendame biti inversiooni ja seejärel Hadamardi operatsiooni, siis teise biti inversiooni ja jälle Hadamardi operatsiooni, millele järgneb viimane biti inversioon, saame tulemuseks vektori, mille annab keti parem pool. Erinevaid olekumasinaid üksteise peale asetades saame alustada väärtusest |0⟩ ja jälgida igale teisendusele vastavaid värvilisi nooli, et mõista, kuidas see kõik töötab.
Kvantarvutamise põhimõtete demüstifitseerimine
Kuna oleme nii kaugele jõudnud, on aeg kaaluda ühte kvantalgoritmide tüüpidest, nimelt - Deutsch-Jozsa algoritmja näidata selle eelist klassikalise arvuti ees. Väärib märkimist, et Deutsch-Jozsa algoritm on täiesti deterministlik, st tagastab 100% ajast õige vastuse (erinevalt paljudest teistest kubitite tõenäosuslikul definitsioonil põhinevatest kvantalgoritmidest).

Kujutagem ette, et teil on must kast, mis sisaldab funktsiooni/operaatorit ühel bitil (pidage meeles - ühe bitiga saab teha ainult neli toimingut: identiteedi teisendamine, eitamine, konstandi "0" hindamine ja konstandi "1" hindamine "). Mis funktsioon karbis täpselt täidetakse? Te ei tea, milline, kuid saate läbida nii palju sisendväärtuste variante kui soovite ja hinnata väljundtulemusi.

Kvantarvutamise põhimõtete demüstifitseerimine
Mitu sisendit ja väljundit peaksite musta kasti läbima, et aru saada, millist funktsiooni kasutatakse? Mõelge sellele korraks.

Klassikalise arvuti puhul peate kasutatava funktsiooni määramiseks tegema 2 päringut. Näiteks kui sisend "1" annab väljundi "0", saab selgeks, et kasutatakse kas konstandi "0" arvutamise funktsiooni või eitusfunktsiooni, mille järel peate sisendsignaali väärtust muutma. väärtusele "0" ja vaadake, mis toimub väljapääsu juures.

Kvantarvuti puhul on vaja ka kahte päringut, kuna sisendväärtusele rakendatava funktsiooni täpseks määratlemiseks on ikkagi vaja kahte erinevat väljundväärtust. Kui aga küsimust veidi ümber sõnastada, selgub, et kvantarvutitel on siiski tõsine eelis: kui tahaks teada, kas kasutatav funktsioon on konstantne või muutuv, oleks eelis kvantarvutitel.

Kastis kasutatav funktsioon on muutuv, kui sisendsignaali erinevad väärtused annavad väljundis erinevaid tulemusi (näiteks identiteedi teisendamine ja biti inversioon) ning kui väljundväärtus ei muutu sõltumata sisendväärtusest, siis funktsioon on konstantne (näiteks konstandi "1" arvutamine või konstandi "0" arvutamine).

Kvantalgoritmi abil saate ühe päringu põhjal määrata, kas mustas kastis olev funktsioon on konstantne või muutuv. Kuid enne kui me vaatame, kuidas seda üksikasjalikult teha, peame leidma viisi, kuidas kõiki neid funktsioone kvantarvutis struktureerida. Kuna kõik kvantoperaatorid peavad olema inverteeritavad, seisame kohe silmitsi probleemiga: konstantide “1” ja “0” arvutamise funktsioonid ei ole seda.

Kvantarvutuses kasutatav tavaline lahendus on lisada täiendav väljundkubit, mis tagastab mis tahes sisendväärtuse, mille funktsioon saab. 

Enne: Pärast:
Kvantarvutamise põhimõtete demüstifitseerimine Kvantarvutamise põhimõtete demüstifitseerimine

Sel viisil saame määrata sisendväärtused ainult väljundväärtuse põhjal ja funktsioon muutub pööratavaks. Kvantahelate struktuur tekitab vajaduse täiendava sisendbiti järele. Vastavate operaatorite väljatöötamise huvides eeldame, et lisasisendi qubit on seatud väärtusele |0⟩.

Kasutades sama kvantahela esitust, mida me varem kasutasime, vaatame, kuidas saab kõiki nelja elementi (identiteedi teisendus, eitus, konstandi "0" hindamine ja konstandi "1" hindamine) kvantoperaatorite abil rakendada. 

Näiteks saate konstantse "0" arvutamise funktsiooni rakendada järgmiselt:

Konstandi "0" arvutamine:
Kvantarvutamise põhimõtete demüstifitseerimine
Siin pole operaatoreid üldse vaja. Esimene sisend qubit (milleks eeldasime olevat |0⟩) tagastab sama väärtusega ja teine ​​sisendväärtus tagastab ennast – nagu tavaliselt.

Konstandi “1” arvutamise funktsiooniga on olukord veidi erinev:

Konstandi "1" arvutamine:
Kvantarvutamise põhimõtete demüstifitseerimine
Kuna oleme eeldanud, et esimene sisend qubit on alati seatud väärtusele |0⟩, on biti inversiooni operaatori rakendamise tulemuseks see, et see annab väljundis alati ühe. Ja nagu tavaliselt, annab teine ​​qubit väljundis oma väärtuse.

Identiteedi teisendusoperaatori kaardistamisel hakkab ülesanne muutuma keerulisemaks. Seda saab teha järgmiselt.

Identne teisendus:
Kvantarvutamise põhimõtete demüstifitseerimine
Siin kasutatav sümbol tähistab elementi CNOT: ülemine rida tähistab juhtbitti ja alumine rida juhtbitti. Tuletan meelde, et operaatori CNOT kasutamisel muutub juhtbiti väärtus, kui juhtbitt on võrdne |1⟩, kuid jääb muutumatuks, kui juhtbitt on võrdne |0⟩. Kuna eeldasime, et ülemise rea väärtus on alati võrdne |0⟩, omistatakse selle väärtus alati alumisele reale.

Toimime sarnaselt eitusoperaatoriga:

Eitus:
Kvantarvutamise põhimõtete demüstifitseerimine
Me lihtsalt pöörame väljundrea lõpus oleva biti ümber.

Nüüd, kui see esialgne arusaam on kadunud, vaatame kvantarvuti konkreetseid eeliseid traditsioonilise arvuti ees, kui on vaja määrata musta kasti peidetud funktsiooni püsivust või varieeruvust vaid ühe päringu abil.

Selle probleemi lahendamiseks, kasutades kvantarvutust ühes päringus, on vaja sisestada sisendkubitid enne funktsioonile edastamist superpositsiooni, nagu allpool näidatud:
Kvantarvutamise põhimõtete demüstifitseerimine
Hadamardi elementi rakendatakse uuesti funktsiooni tulemusele, et murda kubitid superpositsioonist välja ja muuta algoritm deterministlikuks. Käivitame süsteemi olekus |00⟩ ja lühidalt selgitatud põhjustel saame tulemuseks |11⟩, kui rakendatud funktsioon on konstantne. Kui musta kasti sees olev funktsioon on muutuv, siis pärast mõõtmist tagastab süsteem tulemuse |01⟩.

Ülejäänud artikli mõistmiseks vaatame illustratsiooni, mida ma varem näitasin:
Kvantarvutamise põhimõtete demüstifitseerimine
Kasutades biti inversiooni operaatorit ja rakendades seejärel Hadamardi elementi mõlemale sisendväärtusele, mis võrdub |0⟩, tagame, et need tõlgitakse samasse |0⟩ ja |1⟩ superpositsiooniks järgmiselt:
Kvantarvutamise põhimõtete demüstifitseerimine
Selle väärtuse musta kasti funktsioonile edastamise näitel on lihtne näidata, et mõlemad konstantse väärtuse funktsioonid annavad välja |11⟩.

Konstandi "0" arvutamine:
Kvantarvutamise põhimõtete demüstifitseerimine
Samamoodi näeme, et konstandi “1” arvutamise funktsioon annab väljundina ka |11⟩, see tähendab:

Konstandi "1" arvutamine:
Kvantarvutamise põhimõtete demüstifitseerimine
Pange tähele, et väljund on |1⟩, kuna -1² = 1.

Samal põhimõttel saame tõestada, et mõlema muutuja funktsiooni kasutamisel saame väljundis alati |01⟩ (eeldusel, et kasutame sama meetodit), kuigi kõik on veidi keerulisem.

Identne teisendus:
Kvantarvutamise põhimõtete demüstifitseerimine
Kuna CNOT on kahe qubit operaator, ei saa seda esitada lihtsa olekumasinana ja seetõttu on vaja määratleda kaks väljundsignaali, mis põhinevad mõlema sisendkubiti tensorkorrutisel ja korrutamisel CNOT-maatriksiga, nagu varem kirjeldatud:
Kvantarvutamise põhimõtete demüstifitseerimine
Selle meetodiga saame ka kinnitada, et väljundväärtus |01⟩ saadakse, kui eitusfunktsioon on mustas kastis peidetud:

Eitus:
Kvantarvutamise põhimõtete demüstifitseerimine
Seega demonstreerisime just olukorda, kus kvantarvuti on selgelt tõhusam kui tavaline arvuti.

Mis edasi?

Soovitan siinkohal lõpetada. Me tegime juba suurepärast tööd. Kui olete kõigest aru saanud, mida ma käsitlesin, siis arvan, et olete nüüd hästi aru saanud kvantarvutamise ja kvantloogika põhitõdedest ning sellest, miks võivad kvantalgoritmid teatud olukordades olla traditsioonilisest andmetöötlusest tõhusamad.

Minu kirjeldust saab vaevalt nimetada täieõiguslikuks kvantarvutamise ja algoritmide juhendiks – pigem on see lühike sissejuhatus matemaatikasse ja tähistusse, mille eesmärk on hajutada lugejate populaarteaduslike allikate poolt pealesunnitud ideid teema kohta (tõsiselt, paljud ei saa sellest aru olukord!). Mul ei olnud aega puudutada paljusid olulisi teemasid, nagu kubittide kvantpõimumine, amplituudiväärtuste|0⟩ ja |1⟩ keerukus ning erinevate kvantloogikaelementide funktsioneerimine Blochi sfääriga teisendamise ajal.

Kui soovite süstematiseerida ja struktureerida oma teadmisi kvantarvutite kohta, kiiresti Soovitan lugeda "Sissejuhatus kvantalgoritmidesse" Emma Strubel: vaatamata matemaatiliste valemite rohkusele käsitletakse selles raamatus kvantalgoritme palju üksikasjalikumalt.

Allikas: www.habr.com

Lisa kommentaar