V klasickém počítači, složeném z klasických bran jako je AND,
NAND či OR,
není vždy reverzibilita mezi vstupy a výstupy zachována. Například
u klasického výpočtu víme, že lze libovolnou logickou funkci kombinačního obvodu
realizovat pouze použitím univerzální brány NAND. Tato brána
má ale pro použití u kvantových počítačů tu nevýhodu, že z výstupů nelze
jednoznačně určit kombinaci vstupů - brána NAND tedy není
reverzibilní. V takovém procesu se ztrácí část informace a systém se tím
zahřívá. Obecně lze dokázat, že v klasickém pojetí neexistuje univerzální
reverzibilní 2-bitová brána.
U kvantových počítačů ale můžeme používat jen ty brány, které podmínku
reverzibility (a tím i unitárnosti operací) splňují. Jako první nás asi
napadne brána NOT. Ta opravdu podmínku reverzibility
splňuje. Podobně jsou na tom i brány CNOT a
CCNOT. Vlastnosti těchto bran jsou shrnuty v tabulce.
brána
jiný název
qubity
funkce
NOT
1
CNOT
controlled NOT, XOR
2
CCNOT
controlled-controlled NOT, Toffoliho brána
3
Třetí sloupec tabulky říká, na kolik qubitů daná brána působí. Například
Toffoliho brána je 3-qubitová. V maticovém zápisu je
Matice CCNOT se podobá CNOT, pouze je
rozměru se submaticí NOT v pravém dolním
rohu. Obecně je -qubitová operace vyjádřena maticí
.
Bránové operace na qubitech se v kvantové informatice obvykle zapisují pomocí
kvantových obvodů, které se v čase vyvíjí zleva doprava a každá vodorovná
hrana (drát) odpovídá jednomu qubitu. Obecně zakreslíme jedno-qubitovou unitární
operaci jak je uvedeno na obrázku.
Obrázek:1-qubitová kvantová brána: Na obrázku vlevo je znázorněna obecná operace působící na jeden qubit . Jako příklad je vpravo uvedena brána NOT.
Dvou- a tří-qubitové operace CNOT a CCNOT
jsou znázorněny na následujícím obrázku.
Obrázek:Kvantový obvod CNOT a CCNOT: Tyto brány mají jako kontrolní qubit 1. To znamená, že pokud jsou například u brány CCNOT oba qubity a rovny 1, provede se operace na qubitu .
Jinou důležitou kvantovou bránou je Fredkinova brána. Ta prohodí druhý
a třetí bit v případě, že první bit je 0. Vidíme, že tak jako v případě
CNOT nebo CCNOT je i zde podmíněno
provedení operace stavem určitého bitu. Takovým branám se souhrně říká
podmíněné kvantové brány. Přitom Fredkinova brána je také univerzální a
může tak realizovat libovolný logický kombinační obvod. O univerzálnosti
se blíže zmíníme v následující podkapitole.
Obrázek:Fredkinova brána: Má dva alternativní způsoby zápisu (vlevo a vpravo). Fredkinova brána je 3-qubitová a realizuje logickou funkci
.
Další užitečnou bránou je SWAP, která spolu prohazuje 2
qubity a provádí tak funkci
:
Její obvod je znázorněn s použitím brány CNOT na
následujícím obrázku vlevo. Z univerzálních bran je pak možné konstruovat
obvody různých
funkcí a složitosti. Například lze takto navrhnout reverzibilní 2-qubitovou
sčítačku, která provádí funkci
,
kde druhý qubit obsahuje sumu a třetí přenos (carry).
Obrázek:SWAP a 2-qubitová reverzibilní sčítačka.
Kromě klasických kvantových bran však existují také kvantové brány,
které klasicky nemohou existovat. Typickým zástupcem je brána
(odmocnina z NOT).
Přitom platí,
že
= NOT.
Tuto podmínku splňuje definice
Snadno lze ověřit, že je tato operace unitární, tj. že
=
1. Použití této brány si uveďme na příkladu výpočtu
funkce NOT. Podle definice aplikujeme
bránu
dvakrát za sebou.
Vidíme, že tato operace má celkem
3 stádia - použití první brány, použití druhé brány, skončený výpočet.
U Feynmanova modelu kvantového počítače jsou tyto kroky zachyceny
ve speciálních qubitech, které tvoří kurzor. Potřebný kvantový registr
by se proto skládal ze 4 qubitů: tří kurzorových a jednoho výpočetního,
na kterém bychom operaci NOT provedli.
Operace první brány by tedy vypadala jako
Protože se jedná o direktní součin 4 qubitů, bude mít výsledná matice rozměr
. Kolem diagonály bude mít rozmístěny submatice
. Zkráceně má tato matice tvar
kde 0 je nulová submatice 2x2. Celý výpočet pak můžeme
zapsat jako
Pokud vyjdeme z počátečního stavu (tj. že kurzor je na počátku
nastaven na prvním qubitu), pak Hamiltonián, kterým
popíšeme konfiguraci celého systému včetně kurzoru (a který můžeme dosadit do
Schrödingerovy rovnice), je u Feynmanova modelu kvantového počítače roven
kde c a a jsou anihilační a kreační
operátory, které jsou definovány jako
Tyto operátory slouží k nastavování a mazání qubitů kurzoru na hodnoty
a podle toho, kam až postoupil výpočet, a tedy
kolik již bylo aplikováno bran. Pokud kdykoliv naměříme obsazený poslední
(třetí) kurzorový qubit, máme jistotu, že výpočet je u konce. Provázání kurzoru
a průběhu vlastního výpočtu zajišťuje právě výše uvedená podoba Hamiltoniánu,
která musí reflektovat následnou fyzickou implementaci. U Feynmanova modelu
je tvar Hamiltoniánu odvozen od spinových vln, které se šíří řetězcem
molekul (to jsou precesní vlny dipólových momentů vzniklé ve feritech,
které se ocitly v externím magnetickém poli jiného směru než bylo pole
magnetizační). Potom také měřením na kurzoru neovlivňujeme zpětně část
registru, v níž probíhá výpočet. Možnosti působení obou operátorů na jeden
qubit kurzoru můžeme shrnout takto:
c
,
c,
a,
a
,
kde 0 je nedefinovaný nulový stav. Protože ale potřebujeme specifikovat
složitější operaci působící na celý registr, mají v Hamiltoniánu oba operátory
indexy určující, který kurzorový qubit je ovlivňován. Například k nastavení
druhého qubitu na použijeme operátor
c =
Podobně definujeme
i ostatní operátory. Všimněme si, že v našem příkladě tyto operátory nikdy
neovlivňují poslední qubit, protože ten není součástí kurzoru a probíhá v něm
výpočet operace NOT.
Nyní, pokud Hamiltonián vypočítáme6, dostaneme
kde 0 je nulová submatice 2x2. Pokud jsou počáteční podmínky
vlnové funkce
nebo
, je řešení Schrödingerovy rovnice
kde H je výše uvedený časově nezávislý Hamiltonián.
Z této rovnice nám k úplnému popsání výpočtu zbývá vyjádřit evoluční operátor
, který popisuje vývoj systému v čase. To je možné
provést několika způsoby. Například přes rozvoj
.
Výsledný evoluční operátor je pak možné použít k (neefektivní) simulaci
kvantového výpočtu funkce NOT na klasickém počítači.
Na bráně
jsme si ukázali, jak jsou jednotlivé
brány a operátory propojeny s vlastní vlnovou funkcí a jakou v ní hrají
úlohu. Také jsme viděli, že ne všechny brány jsou realizovatelné klasicky.
Další z čistě kvantových bran jsou například tři jedno-qubitové (osově-) rotační
brány R, R a
R s parametrem .
Tyto brány stavový vektor rotují kolem příslušné osy o zvolený úhel. Brány,
které provádějí rotaci o bez fáze jsou Hadamardovy
rotační brány:
Tyto brány lze použít například v případě, že chceme uvést stavy
nebo do jejich vyvážené superpozice. Podle použité brány získáváme
různou fázi.