Kvantumszámítógép alapok — áramkörök

Tamás Kriváchy
kvantum cirkáló
Published in
8 min readMay 22, 2019

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:

nem kell megijedni tőle

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:

  1. Qubitek előkészítése. A qubitokat mind a kezdőállapotukba rakjuk.
  2. 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).
  3. 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és menete. Méréskor a szuperpozició összeomlik, és VAGY 0-t mérünk, VAGY 1-et. A mérési eredmény már hagyományos információ, ami a műszeren megjelenik.

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.

1-qubitos kapuk forgatással bemutatva. A kapu a magenta tengely körül forgatja el a qubit piros nyíllal jelzett állapotát.

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.

  1. Az algoritmus bemeneteit bekódoljuk egy-egy qubitba. Így az|ab⟩ állapotból indulunk.
  2. 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.
  3. 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.

--

--