(Olen kirjoittanut johdannon kvanttilaskentaan, joka löytyy täältä. Jos olet aivan uusi alalla, se on parempi paikka aloittaa.)
Jos haluat perehtyä kvanttilaskentaan, ei ole mitään keinoa kiertää sitä: sinun on hallittava pilvin pimein käsite kvanttiportti. Kuten kaikki kvanttilaskennassa, kvanttimekaniikasta puhumattakaan, myös kvanttiportit on verhottu tuntemattomaan jargonin ja matriisimatematiikan sumuun, joka kuvastaa kvanttimysteeriä. Tavoitteeni tässä viestissä on kuoria muutama kerros tuosta mysteeristä. Mutta säästän teidät jännitykseltä: kukaan ei pääse siitä kokonaan eroon. Ei ainakaan vuonna 2018. Voimme tänään vain paljastaa klassisten porttien ja kvanttiporttien silmiinpistävät yhtäläisyydet ja hälyttävät eroavaisuudet sekä tutkia niiden vaikutuksia tietojenkäsittelyn lähi- ja kaukaiseen tulevaisuuteen.
Silmiinpistävät yhtäläisyydet
Klassiset logiikkaportit ja kvanttilogiikkaportit ovat molemmat logiikkaportteja. Aloitetaan siis siitä. Logiikkaportti, olipa se sitten klassinen tai kvanttilogiikkaportti, on mikä tahansa fysikaalinen rakenne tai järjestelmä, joka ottaa vastaan joukon binäärisiä syötteitä (olivatpa ne sitten nollia ja ykkösiä, omenoita ja appelsiineja, spin-up-elektroneita ja spin-down-elektroneita tai mitä tahansa) ja antaa ulos yhden binäärisen tulostuloksen: ykkösen, appelsiinin, spin-up-elektronin tai jopa yhden kahdesta superpositio- eli päällekkäistilasta. Tulosta säätelee Boolen funktio. Kuulostaa hienolta ja ennalta-arvattavalta, mutta usko pois, se ei ole sitä. Voit ajatella Boolen funktiota pelkkänä sääntönä siitä, miten kyllä/ei-kysymyksiin vastataan. Näin yksinkertaista se on. Portit yhdistetään sitten piireiksi ja piirit prosessoreiksi tai muiksi laskentakomponenteiksi. Tämä pätee riippumatta siitä, puhutaanko Babbagen differenssimoottorista, ENIAC:sta, eläkkeelle jääneestä shakkimestarista Deep Bluesta tai uusimmasta huoneen täyttävästä, luunmurtumista aiheuttavasta, otsikoihin nousseesta kvanttitietokoneesta.
Hälyttäviä eroja
Klassiset portit toimivat klassisilla bitteillä, kun taas kvanttitietokoneen portit toimivat kvanttibiteillä (qubiteillä). Tämä tarkoittaa, että kvanttiportit voivat hyödyntää kvanttimekaniikan kahta keskeistä näkökohtaa, jotka ovat täysin klassisten porttien ulottumattomissa: superpositiota ja kietoutumista. Näistä kahdesta käsitteestä kuulet useimmiten puhuttavan kvanttilaskennan yhteydessä, ja tässä on syy siihen. Mutta on olemassa vähemmän tunnettu käsite, joka on ehkä yhtä tärkeä: palautuvuus. Yksinkertaisesti sanottuna kvanttiportit ovat palautuvia. Käännettävyydestä opitaan paljon, kun syvennytään kvanttilaskentaan, joten siihen kannattaa perehtyä kunnolla. Toistaiseksi voit ajatella asiaa näin: kaikissa kvanttiporteissa on peruutusnappi, kun taas monissa klassisissa porteissa ei ole, ainakaan vielä. Tämä tarkoittaa, että ainakin periaatteessa kvanttiportit eivät koskaan menetä tietoa. Kvanttiporttiin tullessaan kietoutuneet kubitit pysyvät kietoutuneina myös poistuessaan, jolloin niiden informaatio pysyy turvallisesti suljettuna koko siirtymän ajan. Monet tavanomaisissa tietokoneissa käytetyt klassiset portit sen sijaan menettävät informaatiota, eivätkä siksi voi jäljittää askeleitaan. Mielenkiintoista kyllä, tuo informaatio ei lopulta häviä maailmankaikkeudelle, vaan se vuotaa ulos huoneeseesi tai syliisi klassisen tietokoneesi lämpönä.
V tarkoittaa vektoria
Me emme voi puhua kvanttiporteista puhumatta matriiseista, emmekä voi puhua matriiseista puhumatta vektoreista. Mennään siis asiaan. Kvanttimekaniikan ja -laskennan kielessä vektorit kuvataan kieltämättä aika oudossa paketissa nimeltä ket, joka tulee sanan braket toisesta puoliskosta. Ja ne näyttävät siltä, miltä pitääkin. Tässä on ket-vektori: |u>, jossa u edustaa vektorin arvoja. Aluksi käytämme kahta kettiä, |0> ja |1>, jotka edustavat qubitteja elektronien muodossa spin-up (|0>) ja spin-down (|1>) -tiloissa. Nämä vektorit voivat niin sanotusti kattaa minkä tahansa määrän lukuja. Mutta kun kyseessä on binäärinen tila, kuten spin up/down-elektronin qubit, niitä on vain kaksi. Sen sijaan, että ne näyttäisivät tornimaisilta pylväsvektoreilta, ne näyttävät vain kahdella korkealla pinotuilta numeroilta. Tältä näyttää |0>:
/ 1 \
\ 0 /
Portit/matriisit muuttavat nämä tilat, nämä vektorit, nämä ketsit, nämä numeropylväät aivan uusiksi. Esimerkiksi portti voi kuin taikaiskusta muuttaa ylös-tilan (|0>) alas-tilaksi (|1>):
/ 1 \ → / 0 \
\ 0 / \ 1 /
M tarkoittaa matriisia
Tämä yhden vektorin muuttaminen toiseksi tapahtuu matriisikertolaskennan hädin tuskin ymmärretyn taikuuden avulla, joka on täysin erilaista kuin se kertolaskenta, jonka opimme kvanttoria edeltävässä koulussa. Kun tämänkaltaiseen matematiikkaan kuitenkin pääsee jyvälle, se on äärimmäisen palkitsevaa, koska sitä voi soveltaa yhä uudelleen lukemattomiin muuten käsittämättömiin yhtälöihin, jotka jättävät asiaan vihkiytymättömän ällikällä lyötyä. Jos tarvitset lisää motivaatiota, muista, että juuri matriisimatematiikan kielen avulla Heisenberg avasi kaiken kattavan epävarmuusperiaatteen salaisuudet.
Jos et ole perehtynyt tähän matemaattisen työkalun suihkupolttoaineeseen, silmäsi lasittuvat, jos alan tässä vaiheessa täyttää tätä viestiä suurilla neliönmuotoisilla numerosarjoilla. Emmekä voi antaa sen tapahtua. Odotetaan siis vielä muutama kappale matriisimatematiikkaa ja -merkintöjä. Riittää, kun sanon toistaiseksi, että käytämme yleensä matriisia kvanttitorin korvikkeena. Matriisin koko ja suoranainen pelkokerroin riippuvat qubittien määrästä, jolla se toimii. Jos muunnettavia qubitteja on vain yksi, matriisi on mukava ja yksinkertainen, vain 2 x 2 -matriisi, jossa on neljä elementtiä. Matriisin koko kuitenkin kasvaa, kun qubitteja on kaksi, kolme tai enemmän. Tämä johtuu siitä, että matriisin kokoa (ja siten kvanttiportin hienostuneisuutta) ohjaa selvästi eksponentiaalinen yhtälö, joka kannattaa muistaa ulkoa:
2^n x 2^n = the total number of matrix elements
Tässä n on qubittien lukumäärä, jolla kvanttiportti toimii. Kuten näette, tämä luku menee pilviin qubittien määrän (n) kasvaessa. Yhdellä qubitilla se on 4, kahdella 16. Kolmella se on 64. Neljällä se on… toivotonta. Joten toistaiseksi pitäydyn yhdessä qubitissa, ja siihen on kirjoitettu Pauli.
Pauli-portit
Pauli-portit on nimetty Wolfgang Paulin mukaan, jolla on paitsi hieno nimi, myös onnistunut ikuistamaan itsensä kahteen modernin fysiikan tunnetuimpaan periaatteeseen: kuuluisaan Pauligin poissulkemisperiaatteeseen ja pelättyyn Pauli-efektiin.
Pauli-portit perustuvat tunnetumpiin Pauli-matriiseihin (eli Pauli-spinimatriiseihin), jotka ovat uskomattoman käyttökelpoisia laskettaessa muutoksia yksittäisen elektronin spinissä. Koska elektronin spin on suosituin ominaisuus, jota käytetään qubitin ominaisuutena nykyisissä kvanttiporteissa, Pauli-matriisit ja -portit ovat juuri meidän juttumme. Joka tapauksessa jokaiselle avaruuden akselille (X, Y ja Z) on periaatteessa yksi Pauli-portti/matriisi.
Voit siis kuvitella, että kullakin niistä on valta muuttaa elektronin spinin suuntaa vastaavalla akselilla 3D-avaruudessa. Kuten kaikessa muussakin kvanttimaailmassa, tässä on tietysti juju: tämä ei ole meidän tavallinen 3D-avaruutemme, koska se sisältää kuvitteellisen ulottuvuuden. Mutta annetaan asian olla toistaiseksi sikseen, eikö niin?
Pauli-portit ovat juuri ja juuri yksinkertaisimpia kvanttiportteja, joita tulet koskaan tapaamaan. (Ainakin X- ja Z-portit ovat. Y-portti on hieman outo.) Joten vaikka et olisi koskaan elämässäsi nähnyt matriisia, Pauli tekee niistä hallittavia. Hänen porttinsa vaikuttavat yhteen ja vain yhteen qubittiin kerrallaan. Tämä tarkoittaa yksinkertaisia 2 x 2 -matriiseja, joissa on vain 4 elementtiä kappaleessa.
Pauli X-portti
Pauli X-portti on unelmien täyttymys niille, jotka pelkäävät matriisimatematiikkaa. Ei imaginäärilukuja. Ei miinusmerkkejä. Ja yksinkertainen operaatio: negaatio. Tämä on luonnollista, koska Pauli X-portti vastaa klassista NOT-porttia. Tästä syystä X-porttia kutsutaan usein myös kvantti-NOT-portiksi.
Todellisessa todellisuudessa X-portti yleensä muuttaa elektronin spin-up-tilan |0> spin-down-tilaksi |1> ja päinvastoin.
|0> --> |1> OR |1> --> |0>
Pauli X-porttia tai itse matriisia edustaa usein iso ”X”. Näin X näyttää:
/ 0 1 \
\ 1 0 /
Kunnollisessa notaatiossa kvanttiportin soveltaminen qubittiin on ket-vektorin kertomista matriisilla. Tässä tapauksessa kerromme spin-up ket-vektorin |0> Pauli X-portilla eli matriisilla X. Tältä näyttää X|0>:
/ 0 1 \ /1\
\ 1 0 / \0/
Huomaa, että matriisi sijoitetaan aina ketin vasemmalle puolelle. Kuten olet ehkä kuullut, matriisikertolasku, toisin kuin tavallinen kertolasku, ei pendelöi, mikä on vastoin kaikkea, mitä meille koulussa opetettiin. Aivan kuin 2 x 4 ei olisi aina yhtä kuin 4 x 2. Mutta näin matriisikertolasku toimii, ja kun opit sen, ymmärrät miksi. Sillä välin, kun pidetään mielessä elementtien tärkeä järjestys, täydellinen merkintätapa kvanttinOT-portin soveltamiseksi qubiittiimme (tässä tapauksessa elektronin spin-up-tilaan) näyttää tältä:
X|0> = / 0 1 \ /1\ = /0\ = |1>
\ 1 0 / \0/ \1/
Sovellettuna spin-down-vektoriin täydellinen merkintätapa näyttää tältä:
X|1> = / 0 1 \ /0\ = /1\ = |0>
\ 1 0 / \1/ \0/
Kaikesta vieraasta merkintätavasta huolimatta, molemmissa näissä tapauksissa tapahtuu oikeastaan se, että yksittäisen elektronin muodossa oleva qubitti kulkee kvanttiportin läpi ja poistuu sieltä toiselle puolelle siten, että sen spini on täysin kääntynyt.
Pauli Y- ja Z-portit
Säästän teidät matematiikalta näiden kahden kohdalla. Mutta sinun pitäisi ainakin tietää niistä ohimennen.
Kolmen Pauli-portin joukosta Pauli Y-portti on hienoin. Se muistuttaa paljon X-porttia, mutta siinä on i (jep, -1:n mieletön neliöjuuri) tavallisen 1:n sijasta ja negatiivinen merkki oikeassa yläkulmassa. Tältä Y-portti näyttää:
/ 0 -i \
\ i 0 /
Pauli Z-porttia on paljon helpompi seurata. Se näyttää eräänlaiselta peilikuvalta yllä olevasta X-portista, mutta siihen on lisätty negatiivinen merkki. Z-portti näyttää tältä:
/ 1 0 \
\ 0 -1 /
Y-portti ja Z-portti muuttavat myös qubit-elektronimme spiniä. Mutta minun täytyisi luultavasti syventyä Blochin pallon esoteerisiin mysteereihin selittääkseni todella miten, ja minulla on tällä hetkellä toinenkin portti…
Hadamardin portti
Vaikka Pauli-portit muistuttavat joiltakin osin paljon klassisia logiikkaportteja, Hadamardin portti eli H-portti on hyväuskoinen kvanttipeto. Se esiintyy kaikkialla kvanttilaskennassa, ja hyvästä syystä. Hadamard-portilla on tyypillinen kvanttikyky muuttaa tietty kvanttitila, kuten spin-up, hämäräksi tilaksi, kuten spin-upin ja spin-downin superpositioksi samaan aikaan.
Kun lähetät spin-up- tai spin-down-elektronin H-portin läpi, siitä tulee kuin päällään seisova kolikko, jolla on tarkalleen ottaen 50/50 todennäköisyys päätyä kruunuksi (spin-up) tai klaavaksi (spin-down), kun se kaadetaan ja mitataan. Tämä H-portti on erittäin hyödyllinen minkä tahansa kvanttiohjelman ensimmäisen laskutoimituksen suorittamisessa, koska se muuttaa esiasetetut eli alustetut qubitit takaisin niiden luonnolliseen nestemäiseen tilaan, jotta niiden täyttä kvanttitehoa voidaan hyödyntää.
Muut kvanttiportit
On olemassa joukko muita kvanttiportteja, joihin törmää varmasti. Monet niistä toimivat useilla qubiteilla kerrallaan, mikä johtaa 4×4- tai jopa 8×8-matriiseihin, joiden elementit ovat kompleksilukuisia. Nämä ovat aika hankalia, jos sinulla ei ole jo vakavia matriisitaitoja. Joten säästän sinut yksityiskohdilta.
Tärkeimmät portit, jotka sinun kannattaa tuntea, ovat ne, joita käsittelimme ja jotka näkyvät alla olevassa kuvaajassa:
Tietääksesi sinun pitäisi tietää, että muitakin portteja on olemassa, niinpä tässä on pikainen listaus joistakin yleisimmin käytetyistä muista kvanttitietoiskujen portteihin liittyvistä portteihin liittyvästä termistä – ihan vain siksi, että voit saada jo tuntumaa alan ammattikieleen:
- Toffolin porttiFredkinin portti
- Deutschin portti
- Swap-portti (ja swap-portin neliöjuuri)
- NOT-portin neliöjuuri
- Kontrolloidun NOT-portin portti (C-NOT) ja muut kontrolloidut portit
On paljon muitakin. Mutta älä anna numeroiden hämätä itseäsi. Aivan kuten voit suorittaa minkä tahansa klassisen laskutoimituksen yhdistelmällä NOT + OR = NOR-portteja tai AND + NOT = NAND-portteja, voit pelkistää kvanttiporttien luettelon universaalien kvanttiporttien yksinkertaiseksi joukoksi. Mutta säästetään tämä teko toiselle päivälle.
Tulevaisuuden katselu kvanttikäytävän läpi
Kuten hiljattain ilmestyneessä Quanta Magazine -lehden artikkelissa huomautetaan, vuoden 2018 kvanttitietokoneet eivät ole vielä aivan parhaaseen katselukauteensa valmiita. Ennen kuin ne voivat astua kehään klassisten tietokoneiden kanssa, joilla on miljardeja kertoja enemmän logiikkaportteja, niiden on kohdattava muutamia omia demoneitaan. Kuolettavin lienee dekoherenssin demoni. Tällä hetkellä kvanttidekoherenssi tuhoaa kvanttilaskennan vain ”muutamassa mikrosekunnissa”. Mitä nopeammin kvanttiportit suorittavat operaationsa, sitä todennäköisemmin kvantialgoritmisi kuitenkin päihittää dekoherenssin demonin maaliin asti ja sitä kauemmin kilpailu kestää. Nopeuden ohella toinen tärkeä tekijä on kvanttiporttien suorittamien operaatioiden määrä laskennan suorittamiseksi. Tätä kutsutaan laskennan syvyydeksi. Toinen tämänhetkinen pyrkimys on siis syventää kvanttilaskennan pelikenttää. Tämän logiikan mukaan, kun nopeasti kehittyvä kvanttitietokone nopeutuu, sen laskutoimitukset syvenevät ja laskenta-aika dekoherenssiin pitenee, klassinen tietokone joutuu lopulta kohtaamaan mahtavan haastajan, ellei jopa seuraajan, (mahdollisesti) ei kovin kaukaisessa tulevaisuudessa.
Jos pidit tästä artikkelista, olisin erittäin innoissani, jos painaisit taputusnappia 🙂 tai jakaisit sen uteliaiden ystäviesi kanssa. Minulla on paljon muuta vastaavaa henkilökohtaisessa blogissani (jasonroell.com) tai voit vain tilata medium-profiilini ja saada kaikki artikkelini lähetettyä sinulle heti, kun kirjoitan niitä! (miten mahtavaa?!)
Joka tapauksessa, kiitos vielä kerran lukemisesta, hyvää päivänjatkoa!