Kvantumszámítógép alapok — áramkörök
Már fel akarnád törni a bitcoint, de még mindig nem tudod, hogy hogyan programozz be egy kvantumszámítógépet? Akkor jó helyen jársz. Legalábbis az első lépéshez.
Egy kvantum áramkör, hasonlóan egy sima áramkörhöz, valahogy így néz ki:
Az áramkört balról jobbra kell olvasni. Mindegyik vízszintes vonal egy qubitot jelképez, amit baloldalt készítünk elő, majd átfutnak az úgynevezett kapukon (téglalapok). A főbb lépések:
- Qubitek előkészítése. A qubitokat mind a kezdőállapotukba rakjuk.
- Kapuk alkalmazása. A kapukat sorban alkalmazzuk. Ezek vagy egy qubiten csinálnak valamit, vagy több qubiton (ezek a függőleges csíkok az ábrán, meg a nagyobb téglalapok).
- Mérés. Nem mindig szükséges minden qubitot megmérnünk egy algoritmus végén, de ne feledd, csak méréssel tudunk információt kinyerni az áramkörből! Úgyhogy szinte mindig van valamennyi mérés a végén.
Igazából mindhárom elemmel találkoztunk már korábbi cikkek során, de itt röviden átismételjük őket és összerakjuk az összképet. És mihelyst összeállt a kép, kezedben lesz a hatalom, hogy kvantum algoritmusokat megérts!!
Az egy komoly újdonság a korábbi kvantum cirkálós bejegyzésekhez képest, az az olyan kapuk megismerése, amelyek több qubitot kötnek össze. De ne aggódj, ez is pofon egyszerű lesz.
Aki a korábbi cikkekben fel akarja lapozni ezeket a dolgokat, annak ajánlom az alapokhoz ezt a bejegyzést, vagy az élesben való használatukhoz a kvantum bomba-tesztelést. De minden lényegi infó itt is meg lesz.
Qubit előkészítése; Mérés
A kvantumbit, röviden qubit, az a hagyományos bit megfelelője a kvantuminformatikában. A bit két állapota (0 és 1) helyett végtelen sok állapota van. Ezek a |0⟩,|1⟩, és azoknak különböző arányú szuperpoziciói.
Megj.: A | és ⟩ jelek csak azért vannak, hogy ne tévesszük össze hagyományos számokkal a qubit állapotokat.
Szuperpoziciónak nevezzük azt, amikor egyszerre |0⟩ is és |1⟩ is a qubit. A szuperpoziciók sokfélék lehetnek, egy gömbhéjon helyezkednek el, és abszolút kulcsok a kvantum infóban.
A qubitnak ugyan végtelen sok állapota lehet ezen a gömbhéjon, azért egyszerre csak egyben van (piros nyíllal jelezve fentebb). Méréskor meg a |0⟩ vagy |1⟩ állapotba zuttyan bele, így igazából nem tudunk effektív több információt tárolni benne, mint egy hagyományos bitben. Hogy mennyi eséllyel esik a |0⟩ vagy |1⟩ állapotba, az határozza meg, hogy hol helyezkedik el mérés előtt a gömbhéjon — közel a |0⟩-hoz, vagy közel az |1⟩-hez.
A mérést így jelöljük a kvantum áramkörökben:
és általában az algoritmus legvégén zajlik csak. A mérési dobozba balról bemegy a qubit és jobbról kijön két vonal — ez a klasszikus kimenetét jelzi a mérésnek. Egy sima 0 vagy 1, amit akár egy papírra is leírhatnál. Néha ezt az információt az áramkörben később használjuk valamire. Szóval
- sima vonal = kvanutm bit
- dupla vonal = hagyományos bit.
A mérés áramköri jele az ilyen hagyományos mérőműszerek által lettek megihletve:
Minden algoritmusnak van bemenete és kimenete — ez adja az értelmét az egésznek. Pl. egy szinuszt is lehet egy algoritmusnak tekinteni. A bemenet egy szám x, az algoritmus meg kiszámolja nekünk a kimenetet, ami meg sin(x) értékét veszi fel.
Egy kvantum algoritmus elkezdésénél az algoritmus bemenetét valamilyen módon bekódoljuk néhány qubitba. A maradék segéd-qubitokat meg szokás mind a |0⟩ állapotba tenni. Gyakran fordul elő az is, hogy a bemenete az algoritmusnak nem a qubitokban van kódolva, hanem az egyik kapuban.
Kapuk
A kapuk olyan műveletek, amik mindig ugyanazt csinálják, mindegy, hogy mi jön be. 1 qubit esetén egy kaput egy forgási tengellyel és szöggel jellemzünk. Bármilyen állapotban is jön be a qubit, az állapota akörül a tengely körül fog forogni adott szöget. Ismerjünk is meg gyorsan 3 gyakori kaput!
- X vagy NEM — Egy egyszerű kapu, az egyik kedvencünk lesz. |0⟩-ból |1⟩-et csinál, és |1⟩-ből|0⟩-t. Egy sima X-szel vagy egy körben rajzolt plusz jellel jelöljük.
- H: Hadamard — Az úgynevezett ‘Hadamard kapu’ maximális szuperpoziciót hoz létre egy bejövő |0⟩ vagy |1⟩ állapotú qubitből. Ez lényegében megegyezik a félig áteresztő tükörrel, amit korábbi cikkekben láttunk, pl. a bomba-tesztelésnél. A |0⟩-ból |0⟩+|1⟩-et csinál. Az |1⟩-ből meg |0⟩-|1⟩-et, ami szintén a |0⟩ és |1⟩ szuperpoziciója, csak a gömbhéj másik oldalán helyezkedik el.
- Z: Fázis — A fázis kapu nem változtat azon, hogy mennyire vagyunk szuperponálva, csak azt változtatja, hogy a qubit gömbjén hol vagyunk szuperpozicióban. Azaz a függőleges tengely körül forgat minket!
Alább látható az X, H és Z kapuk áramköri rajza, illetve hatása a |0⟩, |0⟩, illetve |0⟩+|1⟩ állapotra.
2-qubitos kapuk
Most, hogy megismertünk néhány kaput, ami 1 qubiten hat, lássunk egyet ami 2 qubiton is múlik. Ez is egy forgatás lenne, csak egy 6-dimenziós térben…😮 úgyhogy meg se próbálunk forgatásként gondolni rá. Szerencsére anélkül is megleszünk.
Jelölés emlékeztető: Ha 2 qubit-ről van szó, akkor egymás mellé írjuk őket. Pl ha mindkét qubit a |0⟩ állapotban van egyenként, akkor együtt ők a |00⟩ állapotban vannak. Ha viszont a második qubit az |1⟩ állapotban van, akkor a |01⟩ állapotban vannak. Fontos, hogy ezeknek az állapotoknak is lehet szuperpoziciójuk, azaz lehet olyan is, hogy |00⟩ +|11⟩. Ezt hívjuk összefonódásnak, és többet olvashatsz róla itt.
Vezérelt műveletek — a legegyszerűbb fajta 2-qubitos kapuk a vezérelt 1-qubitos kapuk. Ez mit jelent? Végy 2 qubitet. Ha az első |1⟩ állapotban van, akkor végezz el egy 1-qubites kaput a másikon. Az első qubitot nevezzük a vezérlő qubitnak. A második meg a vezérelt vagy cél qubit.
Pl. a vezérelt-NEM így néz ki:
A felső fekete pötty jelzi, hogy az a qubit a vezérlő qubit. Az alsó qubiton meg egy vezérelt kaput láthatunk. Ez a plusz-szerű jel volt a X, vagyis NEM kapu jele. Más vezérelt kapunál más kapu kerül alulra.
Ez így változtatja meg az alábbi állapotokat: (az átláthatóság jegyében a vezérlő qubitot félkövérbe szedtem)
- |00⟩ -> |00⟩
- |10⟩ -> |11⟩
- |11⟩ -> |10⟩
Ugye láthatjuk, hogy a vezérlő qubit nem változik. Csak a másik qubit értéke változik, ha a kontroll az |1⟩ állapotban van.
Az első kvantum algoritmusod!
Na lássuk, hogy lehet összeadni két számot egy kvantumszámítógépen!
Először is tudni kell, hogy ahogy az informatikában, úgy a kvantuminformatikában is, az összeadásban van egy furcsaság, mégpedig 1+1=0. Ez azért van mert egy bit nem veheti fel azt az értéket, hogy 2. Szóval inkább 0 lesz. Nem kell aggódni, ez teljesen normális. Ez olyan mint amikor elszámolsz 10-ig az ujjaidon de nincs 11. ujjad, úgyhogy újra csak 1-et mutatsz amikor 11 jönne. Csak itt kisebb ez a maximum, ugyanis 2-nél már bekövetkezik a túlcsordulás. Na ezt a féle összeadást fogjuk bemutatni.
De így, hogy ezt már tudod — már kész is vagyunk az összeadással! Ugyanis a vezérelt-NEM kapu pontosan ezt csinálja nekünk! Már csak hozzá kell adnunk egy mérést a végén.
Mi is történik? A cél ugye az, hogy két bemenetet, a-t meg b-t, összeadjunk, azaz a kimenet a+b legyen.
- Az algoritmus bemeneteit bekódoljuk egy-egy qubitba. Így az|ab⟩ állapotból indulunk.
- Az első, |a⟩ állapotú qubit vezérel egy NEM műveletet a második,|b⟩ állapotú qubiton. Azaz ha a=0, akkor nem történik semmi a |b⟩ qubittal. Viszont ha a=1, akkor a |b⟩ qubit állapota megváltozik.
- Megmérjük a második qubitot, ami immár az |a+b⟩ állapotban van. Így a mérés után egy klasszikus a+b jelenik meg a műszer kijelzőjén.
Gyors példa az egészre: Össze akarjuk adni azt, hogy a=1 és b=0. Bekódoljuk őket, így az algoritmus elején a |10⟩ állapotból kezdünk. A vezérelt-NEM kapu hatására a második qubit állapota megváltozik, azaz |11⟩-be kerülünk. Megmérjük a második qubitot. Mivel egyenesen az |1⟩ állapotba mutat a második qubit, ezért bizonyossággal 1-et mérünk. És valóban a+b = 0+1 =1. Siker.
Akkor most már minden algoritmust érteni fogok?
Meg fogsz lepődni, a válasz: igen. Vagyis majdnem igen. Ugyanis
bármilyen kvantum művelet
felépíthető a vezérelt-NEM-mel és 1-qubitos forgatásokkal.
1 qubitos forgatásokból itt csak az X, H és Z kapukat ismertük meg. Ezek a leggyakrabban előfordulók, szóval ez elég jó. Még vannak olyanok, hogy S és T — ezek csak a Z forgatás félig, illetve negyedig alkalmazva. Szóval most már azokat is ismered. Grat.
De nem is kell nevet adni az összes 1-qubitos forgatásnak, mert egyszerűen forgatások a qubit gömbjében, úgyhogy le is tudjuk írni őket úgy is könnyen.
Ezt hívjuk
univerzális kvantumszámításnak,
hogy az áramköri elemeinkkel bármilyen kvantumműveletet el tudunk végezni. Szóval a cél egy kvantumszámítógép létrehozása, ami ezeket a kapukat mind el tudja végezni, sokszor egymás után.
A másik bejegyzésben említett, és már termelésben lévő D-Wave gép nem egy ilyen gép!
Úgyhogy még várjuk azt a napot, amikor lesz! A Google, IBM, Microsoft és Intel is dolgoznak ezen, többek közt.
Összefoglaló
- Bemenet kódolása, kapuk elvégzése, aztán mérés.
- 1-qubites kapuk forgatások például a H, Z és X/NEM
- 2-qubites kapuk egy típusa a vezérelt kapuk, pl. a vezérelt-NEM
- A vezérelt-NEM és az 1-qubites kapuk összessége már elég az összes lehetséges kvantum művelet elvégzéséhez.
Könyvajánló Szuper jó könyv kvantumalgoritmusokhoz. Semmilyen előismeret nem szükséges (max egy pici matek):
Nielsen, Chuang: Quantum Computation and Quantum Information
pdf formátumban: http://mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf
Az utolsó előtti kép a bejegyzésben N. Beier artisztikus képe.