Kvantinio skaičiavimo principų demistifikavimas

Kvantinio skaičiavimo principų demistifikavimas
„Manau, kad galiu drąsiai teigti, kad niekas nesupranta kvantinės mechanikos“ – Richardas Feynmanas

Kvantinės kompiuterijos tema visada žavėjo technologijų rašytojus ir žurnalistus. Jo skaičiavimo potencialas ir sudėtingumas suteikė tam tikrą mistinę aurą. Pernelyg dažnai straipsniai ir infografika išsamiai aprašo įvairias šios pramonės perspektyvas, tačiau beveik nepaliečia jos praktinio pritaikymo: tai gali suklaidinti mažiau dėmesingą skaitytoją.

Populiariuose mokslo straipsniuose nepateikiami kvantinių sistemų aprašymai ir pateikiami tokie teiginiai:

Įprastas bitas gali būti 1 arba 0, tačiau kubitas gali būti 1 ir 0 tuo pačiu metu.

Jei jums labai pasiseks (dėl to nesu tikras), jums bus pasakyta, kad:

Kubitas yra superpozicijoje tarp „1“ ir „0“.

Nė vienas iš šių paaiškinimų neatrodo patikimas, nes bandome suformuluoti kvantinį mechaninį reiškinį naudodami kalbą, sukurtą labai tradiciniame pasaulyje. Norint aiškiai paaiškinti kvantinio skaičiavimo principus, būtina vartoti kitą kalbą – matematinę. 

Šioje pamokoje apžvelgsiu matematinius įrankius, reikalingus kvantinio skaičiavimo sistemoms modeliuoti ir suprasti, taip pat kaip iliustruoti ir pritaikyti kvantinio skaičiavimo logiką. Be to, pateiksiu kvantinio algoritmo pavyzdį ir pasakysiu, koks jo pranašumas prieš tradicinį kompiuterį.

Stengsiuosi visa tai paaiškinti aiškia kalba, bet vis tiek tikiuosi, kad šio straipsnio skaitytojai turės pagrindinius supratimą apie tiesinę algebrą ir skaitmeninę logiką (tiesinė algebra yra aptariama čia, apie skaitmeninę logiką - čia). 

Pirma, pereikime prie skaitmeninės logikos principų. Jis pagrįstas elektros grandinių naudojimu skaičiavimams atlikti. Kad aprašymas būtų abstraktesnis, supaprastinkime elektros laido būseną iki „1“ arba „0“, o tai atitiks būsenas „įjungta“ arba „išjungta“. Išdėstę tranzistorius tam tikra seka, sukursime vadinamuosius loginius elementus, kurie paima vieną ar kelias įvesties signalo reikšmes ir paverčia jas išėjimo signalu pagal tam tikras Būlio logikos taisykles.

Kvantinio skaičiavimo principų demistifikavimas

Bendrieji loginiai vartai ir jų būsenų lentelės

Remiantis tokių pagrindinių elementų grandinėmis, galima sukurti sudėtingesnius elementus, o remiantis sudėtingesnių elementų grandinėmis, galiausiai su dideliu abstrakcijos laipsniu galime tikėtis gauti centrinio procesoriaus analogą.

Kaip jau minėjau anksčiau, mums reikia būdo matematiškai pavaizduoti skaitmeninę logiką. Pirmiausia pristatykime matematinę tradicinę logiką. Naudojant tiesinę algebrą, klasikiniai bitai su reikšmėmis "1" ir "0" gali būti pavaizduoti kaip du stulpelių vektoriai:
Kvantinio skaičiavimo principų demistifikavimas
kur yra skaičiai kairėje Dirac žymėjimas vektorius. Tokiu būdu pavaizduodami savo bitus, galime modeliuoti logines bitų operacijas naudodami vektorines transformacijas. Atkreipkite dėmesį: nors naudojant du bitus loginiuose vartuose galima atlikti daugybę operacijų (IR, NOT, XOR ir kt.), naudojant vieną bitą galima atlikti tik keturias operacijas: tapatybės konvertavimą, neigimą, konstantos „0“ skaičiavimą ir konstantos „1“ apskaičiavimas. Konvertuojant tapatybę, bitas lieka nepakitęs, o neigiant, bito reikšmė pasikeičia į priešingą (iš „0“ į „1“ arba iš „1“ į „0“), o konstanta „1“ apskaičiuojama. arba „0“ nustato bitą į „1“ arba „0“, neatsižvelgiant į ankstesnę jo reikšmę.
Kvantinio skaičiavimo principų demistifikavimas

Tapatybė Tapatybės transformacija
Neigimas Neleidimas
Konstanta-0 Konstantos "0" apskaičiavimas
Konstanta-1 Konstantos "1" apskaičiavimas

Remiantis mūsų pasiūlytu nauju bito vaizdavimu, gana lengva atlikti atitinkamo bito operacijas naudojant vektorinę transformaciją:

Kvantinio skaičiavimo principų demistifikavimas

Prieš eidami toliau, pažvelkime į koncepciją grįžtamieji skaičiavimai, o tai tiesiog reiškia, kad norint užtikrinti operacijos ar loginio elemento grįžtamumą, pagal išvesties signalus ir naudojamų operacijų pavadinimus būtina nustatyti įvesties signalo verčių sąrašą. Taigi galime daryti išvadą, kad tapatybės transformacija ir neigimas yra grįžtami, tačiau konstantų „1“ ir „0“ skaičiavimo operacijos – ne. Ačiū vienybė Kvantinė mechanika, kvantiniai kompiuteriai naudoja tik grįžtamąsias operacijas, todėl mes sutelksime dėmesį į tai. Toliau negrįžtamus elementus paverčiame grįžtamaisiais elementais, kad juos galėtų naudoti kvantinis kompiuteris.

naudojant tenzorinis produktas atskiri bitai gali būti pavaizduoti daugybe bitų:
Kvantinio skaičiavimo principų demistifikavimas
Dabar, kai turime beveik visas būtinas matematines sąvokas, pereikime prie pirmųjų kvantinės logikos vartų. Tai operatorius NEGALIMA, arba valdomas Not (NOT), kuris yra labai svarbus grįžtamajame ir kvantiniame skaičiavime. Elementas CNOT taikomas dviem bitams ir grąžina du bitus. Pirmasis bitas yra pažymėtas kaip "valdymo" bitas, o antrasis - kaip "valdymo" bitas. Jei valdymo bitas nustatytas į "1", valdymo bitas keičia savo reikšmę; Jei valdymo bitas nustatytas į „0“, valdymo bitas nekeičiamas.
Kvantinio skaičiavimo principų demistifikavimas
Šis operatorius gali būti pavaizduotas kaip toks transformacijos vektorius:
Kvantinio skaičiavimo principų demistifikavimas
Norėdami parodyti viską, ką iki šiol aptarėme, parodysiu, kaip naudoti elementą CNOT keliuose bituose:
Kvantinio skaičiavimo principų demistifikavimas
Apibendrinant tai, kas jau buvo pasakyta: pirmame pavyzdyje mes išskaidome |10⟩ į jo tenzorinės sandaugos dalis ir naudojame CNOT matricą, kad gautume naują atitinkamą sandaugos būseną; tada mes jį koeficientuojame į |11⟩ pagal anksčiau pateiktą CNOT verčių lentelę.

Taigi, prisiminėme visas matematines taisykles, kurios padės suprasti tradicinį skaičiavimą ir įprastus bitus, ir pagaliau galime pereiti prie šiuolaikinio kvantinio skaičiavimo ir kubitų.

Jei perskaitėte iki šiol, turiu jums gerų naujienų: kubitus galima lengvai išreikšti matematiškai. Apskritai, jei klasikinį bitą (cbit) galima nustatyti į |1⟩ arba |0⟩, kubitas yra tiesiog superpozicijoje ir gali būti ir |0⟩, ir |1⟩ prieš matavimą. Po matavimo jis susitraukia į |0⟩ arba |1⟩. Kitaip tariant, kubitas gali būti pavaizduotas kaip tiesinis |0⟩ ir |1⟩ derinys pagal toliau pateiktą formulę:
Kvantinio skaičiavimo principų demistifikavimas
kur a₀ и a₁ atitinkamai reiškia |0⟩ ir |1⟩ amplitudes. Tai gali būti laikoma „kvantinėmis tikimybėmis“, kurios parodo tikimybę, kad kubitas sugrius į vieną iš būsenų po to, kai jis buvo išmatuotas, nes kvantinėje mechanikoje superpozicijoje esantis objektas po fiksavimo susitraukia į vieną iš būsenų. Išplėskime šią išraišką ir gaukime:
Kvantinio skaičiavimo principų demistifikavimas
Kad būtų supaprastintas paaiškinimas, šiame straipsnyje naudosiu tokį vaizdą.

Šiam kubitui tikimybė sumažėti iki vertės a₀ po matavimo yra lygus |a₀|², o tikimybė sugriūti iki vertės a₁ yra lygus |a₁|². Pavyzdžiui, tokiam kubitui:
Kvantinio skaičiavimo principų demistifikavimas
tikimybė sugriūti į „1“ yra lygi |1/ √2|² arba ½, tai yra 50/50.

Kadangi klasikinėje sistemoje visos tikimybės turi susidėti iki vieneto (visam tikimybių pasiskirstymui), galime daryti išvadą, kad |0⟩ ir |1⟩ absoliučių reikšmių kvadratai turi sudaryti vieną. Remdamiesi šia informacija, galime suformuluoti tokią lygtį:
Kvantinio skaičiavimo principų demistifikavimas
Jei esate susipažinę su trigonometrija, pastebėsite, kad ši lygtis atitinka Pitagoro teoremą (a²+b²=c²), tai yra, galime grafiškai pavaizduoti galimas kubito būsenas kaip vienetinio apskritimo taškus, būtent:
Kvantinio skaičiavimo principų demistifikavimas
Loginiai operatoriai ir elementai kubitams taikomi taip pat, kaip ir klasikinių bitų atveju – remiantis matricos transformacija. Visi apverčiamosios matricos operatoriai, kuriuos iki šiol prisiminėme, ypač CNOT, gali būti naudojami darbui su kubitais. Tokie matricos operatoriai leidžia naudoti kiekvieną kubito amplitudę jo nematuojant ir nesutraukiant. Leiskite pateikti pavyzdį, kaip naudoti neigimo operatorių kubite:
Kvantinio skaičiavimo principų demistifikavimas
Prieš tęsdami, leiskite jums priminti, kad amplitudės reikšmės a₀ ir a₁ iš tikrųjų yra kompleksiniai skaičiai, todėl kubito būsena gali būti tiksliausiai atvaizduota trimačio vieneto sferoje, dar vadinamoje Blusų sfera:
Kvantinio skaičiavimo principų demistifikavimas
Tačiau norėdami supaprastinti paaiškinimą, čia apsiribosime realiais skaičiais.

Atrodo, laikas aptarti kai kuriuos loginius elementus, kurie yra prasmingi tik kvantinio skaičiavimo kontekste.

Vienas iš svarbiausių operatorių yra „Hadamard elementas“: jis šiek tiek užima „0“ arba „1“ būseną ir perkelia jį į atitinkamą superpoziciją su 50 % tikimybe, kad ji sugrius į „1“ arba „0“. po matavimo. 
Kvantinio skaičiavimo principų demistifikavimas
Atkreipkite dėmesį, kad Hadamard operatoriaus apatinėje dešinėje pusėje yra neigiamas skaičius. Taip yra dėl to, kad operatoriaus taikymo rezultatas priklauso nuo įvesties signalo reikšmės: - |1⟩ arba |0⟩, todėl skaičiavimas yra grįžtamas.

Kitas svarbus dalykas, susijęs su Hadamardo elementu, yra jo grįžtamumas, ty jis gali užimti kubitą atitinkamoje superpozicijoje ir paversti jį |0⟩ arba |1⟩.
Kvantinio skaičiavimo principų demistifikavimas
Tai labai svarbu, nes suteikia mums galimybę transformuotis iš kvantinės būsenos nenustatant kubito būsenos – ir, atitinkamai, jo nesugriuvus. Taigi kvantinį skaičiavimą galime struktūrizuoti remdamiesi deterministiniu, o ne tikimybiniu principu.

Kvantiniai operatoriai, kuriuose yra tik realieji skaičiai, yra jų priešingybė, todėl operatoriaus pritaikymo kubitui rezultatą galime pateikti kaip transformaciją vieneto apskritime būsenos mašinos pavidalu:
Kvantinio skaičiavimo principų demistifikavimas
Taigi kubitas, kurio būsena pateikta aukščiau esančioje diagramoje, pritaikius Hadamard operaciją, paverčiamas į būseną, nurodytą atitinkama rodykle. Taip pat galime sukurti kitą būsenos mašiną, kuri parodys kubito transformaciją naudojant neigimo operatorių, kaip parodyta aukščiau (taip pat žinomas kaip Pauli neigimo operatorius arba bitų inversija), kaip parodyta toliau:
Kvantinio skaičiavimo principų demistifikavimas
Norėdami atlikti sudėtingesnes kubito operacijas, galime sujungti kelis operatorius arba taikyti elementus kelis kartus. Serijinės transformacijos pavyzdys, pagrįstas kvantinės grandinės reprezentacijos yra toks:
Kvantinio skaičiavimo principų demistifikavimas
Tai yra, jei pradedame bitu |0⟩, taikome bitų inversiją, tada Hadamard operaciją, tada kitą bitų inversiją ir vėl Hadamard operaciją, po kurios seka paskutinė bitų inversija, gauname vektorių, pateiktą dešinėje grandinės pusėje. Sluoksniuodami skirtingas būsenos mašinas vieną ant kitos, galime pradėti nuo |0⟩ ir atsekti spalvotas rodykles, atitinkančias kiekvieną transformaciją, kad suprastume, kaip visa tai veikia.
Kvantinio skaičiavimo principų demistifikavimas
Kadangi mes nuėjome taip toli, atėjo laikas apsvarstyti vieną iš kvantinių algoritmų tipų, būtent - Deutsch-Jozsa algoritmasir parodyti savo pranašumą prieš klasikinį kompiuterį. Verta paminėti, kad Deutsch-Jozsa algoritmas yra visiškai deterministinis, tai yra, 100% laiko pateikia teisingą atsakymą (skirtingai nuo daugelio kitų kvantinių algoritmų, pagrįstų tikimybiniu kubitų apibrėžimu).

Įsivaizduokime, kad turite juodąją dėžę, kurioje viename bite yra funkcija/operatorius (atminkite – su vienu bitu galima atlikti tik keturias operacijas: tapatybės konvertavimą, neigimą, konstantos „0“ įvertinimą ir konstantos „1“ įvertinimą. “). Kokia tiksliai funkcija atliekama dėžutėje? Nežinote, kuris iš jų, bet galite peržiūrėti tiek įvesties verčių variantų, kiek norite, ir įvertinti išvesties rezultatus.

Kvantinio skaičiavimo principų demistifikavimas
Kiek įėjimų ir išėjimų turėtumėte atlikti juodojoje dėžutėje, kad išsiaiškintumėte, kuri funkcija naudojama? Pagalvokite apie tai sekundę.

Jei naudojate klasikinį kompiuterį, turėsite atlikti 2 užklausas, kad nustatytumėte, kokią funkciją naudoti. Pavyzdžiui, jei įvestis "1" sukuria "0" išvestį, tampa aišku, kad naudojama arba konstantos "0" skaičiavimo funkcija, arba neigimo funkcija, po kurios turėsite pakeisti įvesties signalo reikšmę. į „0“ ir pažiūrėkite, kas vyksta prie išėjimo.

Kvantinio kompiuterio atveju taip pat reikės dviejų užklausų, nes vis tiek reikia dviejų skirtingų išvesties reikšmių, kad tiksliai apibrėžtumėte funkciją, kuri bus taikoma įvesties vertei. Tačiau jei klausimą šiek tiek performuluosite, paaiškės, kad kvantiniai kompiuteriai vis tiek turi rimtą pranašumą: jei norėtumėte sužinoti, ar naudojama funkcija yra pastovi, ar kintamoji, kvantiniai kompiuteriai turėtų pranašumą.

Dėžutėje naudojama funkcija yra kintama, jei skirtingos įvesties signalo reikšmės išvestyje duoda skirtingus rezultatus (pavyzdžiui, tapatybės konvertavimas ir bitų inversija), o jei išvesties vertė nesikeičia nepriklausomai nuo įvesties vertės, tada funkcija yra pastovi (pavyzdžiui, apskaičiuojant konstantą "1" arba apskaičiuojant konstantą "0").

Naudodami kvantinį algoritmą, galite nustatyti, ar funkcija juodajame langelyje yra pastovi, ar kintamoji, remiantis tik viena užklausa. Tačiau prieš išsamiai apžvelgdami, kaip tai padaryti, turime rasti būdą, kaip struktūrizuoti kiekvieną iš šių funkcijų kvantiniame kompiuteryje. Kadangi bet kurie kvantiniai operatoriai turi būti apverčiami, iš karto susiduriame su problema: konstantų „1“ ir „0“ skaičiavimo funkcijos nėra.

Įprastas sprendimas, naudojamas kvantiniame skaičiavime, yra pridėti papildomą išvesties kubitą, kuris grąžina bet kokią įvesties reikšmę, kurią gauna funkcija. 

Kam: Po:
Kvantinio skaičiavimo principų demistifikavimas Kvantinio skaičiavimo principų demistifikavimas

Tokiu būdu galime nustatyti įvesties reikšmes tik pagal išvesties vertę, o funkcija tampa apverčiama. Kvantinių grandinių struktūra sukuria papildomo įvesties bito poreikį. Siekdami sukurti atitinkamus operatorius, darysime prielaidą, kad papildomas įvesties kubitas yra nustatytas į |0⟩.

Naudodami tą patį kvantinės grandinės atvaizdavimą, kurį naudojome anksčiau, pažiūrėkime, kaip kiekvienas iš keturių elementų (tapatybės transformacija, neigimas, konstantos „0“ įvertinimas ir konstantos „1“ įvertinimas) gali būti įgyvendintas naudojant kvantinius operatorius. 

Pavyzdžiui, taip galite įgyvendinti konstantos „0“ skaičiavimo funkciją:

Konstantos "0" apskaičiavimas:
Kvantinio skaičiavimo principų demistifikavimas
Čia mums visai nereikia operatorių. Pirmoji įvesties kubitas (kurią laikėme |0⟩) grąžina ta pačia reikšme, o antroji įvesties reikšmė – kaip įprasta.

Naudojant konstantos „1“ skaičiavimo funkciją, situacija yra šiek tiek kitokia:

Konstantos "1" apskaičiavimas:
Kvantinio skaičiavimo principų demistifikavimas
Kadangi padarėme prielaidą, kad pirmasis įvesties kubitas visada yra |0⟩, taikant bitų inversijos operatorių, jis visada sukuria vieną išvestyje. Ir kaip įprasta, antrasis kubitas išvestyje suteikia savo vertę.

Atvaizduojant tapatybės transformacijos operatorių, užduotis pradeda komplikuotis. Štai kaip tai padaryti:

Identiška transformacija:
Kvantinio skaičiavimo principų demistifikavimas
Čia naudojamas simbolis žymi elementą CNOT: viršutinė eilutė žymi valdymo bitą, o apatinė – kontrolinį bitą. Priminsiu, kad naudojant operatorių CNOT, valdymo bito reikšmė pasikeičia, jei valdymo bitas yra lygus |1⟩, tačiau išlieka nepakitęs, jei valdymo bitas lygus |0⟩. Kadangi manėme, kad viršutinės eilutės reikšmė visada yra lygi |0⟩, jos reikšmė visada priskiriama apatinei eilutei.

Panašiai elgiamės su neigimo operatoriumi:

Neigimas:
Kvantinio skaičiavimo principų demistifikavimas
Mes tiesiog apverčiame bitą išvesties eilutės pabaigoje.

Dabar, kai jau turime tą preliminarų supratimą, pažvelkime į konkrečius kvantinio kompiuterio pranašumus, palyginti su tradiciniu kompiuteriu, kai reikia nustatyti juodojoje dėžutėje paslėptos funkcijos pastovumą arba kintamumą naudojant tik vieną užklausą.

Norint išspręsti šią problemą naudojant kvantinį skaičiavimą vienoje užklausoje, būtina įvesties kubitus sudėti į superpoziciją prieš perduodant juos funkcijai, kaip parodyta toliau:
Kvantinio skaičiavimo principų demistifikavimas
Hadamardo elementas vėl pritaikomas funkcijos rezultatui, kad kubitai būtų išimti iš superpozicijos ir algoritmas būtų deterministinis. Sistemą paleidžiame būsenoje |00⟩ ir dėl priežasčių, kurias trumpai paaiškinsiu, gauname rezultatą |11⟩, jei taikoma funkcija yra pastovi. Jei funkcija juodojoje dėžutėje yra kintama, tada po matavimo sistema grąžina rezultatą |01⟩.

Norėdami suprasti likusią straipsnio dalį, pažvelkime į iliustraciją, kurią parodžiau anksčiau:
Kvantinio skaičiavimo principų demistifikavimas
Naudodami bitų inversijos operatorių ir pritaikę Hadamard elementą abiem įvesties reikšmėms, lygioms |0⟩, užtikriname, kad jos būtų paverstos ta pačia |0⟩ ir |1⟩ superpozicija, kaip nurodyta toliau:
Kvantinio skaičiavimo principų demistifikavimas
Naudojant šios reikšmės perdavimo juodojo langelio funkcijai pavyzdį, lengva parodyti, kad abi pastovios reikšmės funkcijos išveda |11⟩.

Konstantos "0" apskaičiavimas:
Kvantinio skaičiavimo principų demistifikavimas
Panašiai matome, kad konstantos „1“ skaičiavimo funkcija taip pat sukuria |11⟩ kaip išvestį, tai yra:

Konstantos "1" apskaičiavimas:
Kvantinio skaičiavimo principų demistifikavimas
Atminkite, kad išvestis bus |1⟩, nes -1² = 1.

Tuo pačiu principu galime įrodyti, kad naudojant abi kintamųjų funkcijas, išvestyje visada gausime |01⟩ (jei naudosime tą patį metodą), nors viskas yra šiek tiek sudėtingiau.

Identiška transformacija:
Kvantinio skaičiavimo principų demistifikavimas
Kadangi CNOT yra dviejų kubitų operatorius, jis negali būti pavaizduotas kaip paprasta būsenos mašina, todėl būtina apibrėžti du išvesties signalus, remiantis abiejų įvesties kubitų tenzoriniu sandauga ir padauginimu iš CNOT matricos, kaip aprašyta anksčiau:
Kvantinio skaičiavimo principų demistifikavimas
Šiuo metodu taip pat galime patvirtinti, kad išvesties reikšmė |01⟩ gaunama, jei neigimo funkcija yra paslėpta juodajame langelyje:

Neigimas:
Kvantinio skaičiavimo principų demistifikavimas
Taigi, mes ką tik parodėme situaciją, kai kvantinis kompiuteris yra akivaizdžiai efektyvesnis nei įprastas kompiuteris.

Kas toliau?

Siūlau čia baigti. Jau padarėme puikų darbą. Jei supratote viską, ką aprašiau, manau, kad dabar puikiai suprantate kvantinio skaičiavimo ir kvantinės logikos pagrindus ir kodėl kvantiniai algoritmai tam tikrose situacijose gali būti efektyvesni už tradicinį skaičiavimą.

Mano aprašymą vargu ar galima pavadinti visaverčiu kvantinio skaičiavimo ir algoritmų vadovu – veikiau tai trumpas įvadas į matematiką ir žymėjimą, skirtas išsklaidyti skaitytojų idėjas apie temą, primestas populiarių mokslo šaltinių (rimtai, daugelis tikrai nesupranta situacija!). Neturėjau laiko prisiliesti prie daugelio svarbių temų, pvz kvantinis kubitų susipynimas, amplitudės reikšmių|0⟩ ir |1⟩ sudėtingumas ir įvairių kvantinės logikos elementų veikimas transformuojant Blocho sferą.

Jei norite susisteminti ir susisteminti savo žinias apie kvantinius kompiuterius, skubiai Rekomenduoju paskaityti „Įvadas į kvantinius algoritmus“ Emma Strubel: nepaisant matematinių formulių gausos, šioje knygoje kvantiniai algoritmai aptariami daug išsamiau.

Šaltinis: www.habr.com

Добавить комментарий