Přeskočit na hlavní obsah

Circuit

V informatice jsou Circuit modely výpočtů, ve kterých je informace přenášena vodiči přes síť Gate, které představují operace nad informacemi přenášenými vodiči. Kvantové Circuit jsou specifický model výpočtu založený na tomto obecnějším konceptu.

Ačkoli slovo „Circuit" často odkazuje na kruhovou cestu, kruhové cesty ve skutečnosti nejsou povoleny v modelech výpočtů založených na Circuit, které se nejčastěji studují. Jinými slovy, obvykle uvažujeme acyklické Circuit, když přemýšlíme o Circuit jako o výpočetních modelech. Kvantové Circuit se řídí tímto vzorem; kvantový Circuit představuje konečnou posloupnost operací, která nemůže obsahovat zpětnovazební smyčky.

Booleovské Circuit

Zde je příklad (klasického) booleovského Circuit, kde vodiče přenášejí binární hodnoty a Gate představují booleovské logické operace:

Example of a Boolean circuit

Tok informací podél vodičů jde zleva doprava: vodiče na levé straně obrázku označené X\mathsf{X} a Y\mathsf{Y} jsou vstupní bity, z nichž každý lze nastavit na libovolnou binární hodnotu, a vodič na pravé straně je výstup. Mezilehlé vodiče nabývají hodnot určených Gate, které se vyhodnocují zleva doprava.

Gate jsou AND Gate (označené \wedge), OR Gate (označené \vee) a NOT Gate (označené ¬\neg). Funkce počítané těmito Gate budou pravděpodobně mnohým čtenářům známé, ale zde jsou zobrazeny pomocí tabulek hodnot:

a¬a0110abab000010100111abab000011101111\begin{array}{c} \begin{array}{c|c} a & \neg a\\ \hline 0 & 1\\ 1 & 0\\ \end{array}\\ \\ \\ \end{array} \qquad\quad \begin{array}{c|c} ab & a \wedge b\\ \hline 00 & 0\\ 01 & 0\\ 10 & 0\\ 11 & 1 \end{array} \qquad\quad \begin{array}{c|c} ab & a \vee b\\ \hline 00 & 0\\ 01 & 1\\ 10 & 1\\ 11 & 1 \end{array}

Dva malé plné kroužky na vodičích těsně napravo od názvů X\mathsf{X} a Y\mathsf{Y} představují operace fan-out, které jednoduše vytvoří kopii jakékoli hodnoty přenášené na vodiči, na kterém se nachází, a umožní tak tuto hodnotu použít jako vstup do více Gate. Operace fan-out nejsou v klasickém prostředí vždy považovány za Gate; někdy se s nimi zachází, jako by byly v jistém smyslu „zdarma". Když se však booleovské Circuit převádějí na ekvivalentní kvantové Circuit, musíme operace fan-out explicitně klasifikovat jako Gate, abychom je správně zpracovali a zohlednili.

Zde je tentýž Circuit znázorněný ve stylu běžnějším v elektrotechnice, který používá konvenční symboly pro AND, OR a NOT Gate:

Boolean circuit in a classic style

Tento styl ani tyto konkrétní symboly Gate dále používat nebudeme, ale pro Gate v kvantových Circuit budeme používat jiné symboly, které vysvětlíme, jakmile se s nimi setkáme.

Konkrétní Circuit v tomto příkladu počítá exkluzivní OR (zkráceně XOR), které se značí symbolem \oplus:

abab000011101110\begin{array}{c|c} ab & a \oplus b\\ \hline 00 & 0\\ 01 & 1\\ 10 & 1\\ 11 & 0 \end{array}

V následujícím diagramu uvažujeme jen jednu volbu vstupů: X=0\mathsf{X}=0 a Y=1.\mathsf{Y}=1. Každý vodič je označen hodnotou, kterou přenáší, takže můžeš sledovat operace. Výstupní hodnota je v tomto případě 11, což je správná hodnota pro XOR: 01=1.0 \oplus 1 = 1.

Evaluating a Boolean circuit

Zbývající tři možná nastavení vstupů lze ověřit obdobným způsobem.

Další typy Circuit

Jak bylo naznačeno výše, pojem Circuit v informatice je velmi obecný. Například někdy se analyzují Circuit, jejichž vodiče přenášejí jiné hodnoty než 00 a 11, stejně jako Gate představující různé volby operací.

V aritmetických Circuit mohou například vodiče přenášet celočíselné hodnoty, zatímco Gate představují aritmetické operace, jako je sčítání a násobení. Následující obrázek zobrazuje aritmetický Circuit, který přijímá dvě proměnné vstupní hodnoty (xx a yy) a třetí vstup nastavený na hodnotu 1.1. Hodnoty přenášené vodiči jako funkce hodnot xx a yy jsou zobrazeny na obrázku.

Example arithmetic circuit

Můžeme také uvažovat Circuit, které zahrnují náhodnost, jako jsou ty, kde Gate představují pravděpodobnostní operace.

Kvantové Circuit

V modelu kvantových Circuit představují vodiče Qubit a Gate představují operace nad těmito Qubit. Prozatím se zaměříme na operace, se kterými jsme se dosud setkali, konkrétně unitární operace a měření ve standardní bázi. Jakmile se naučíme o dalších druzích kvantových operací a měření, můžeme náš model odpovídajícím způsobem rozšířit.

Zde je jednoduchý příklad kvantového Circuit:

Simple quantum circuit

V tomto Circuit máme jeden Qubit pojmenovaný X,\mathsf{X}, který je reprezentován vodorovnou čarou, a posloupnost Gate představujících unitární operace nad tímto Qubit. Stejně jako v příkladech výše, tok informací jde zleva doprava — takže první prováděnou operací je Hadamardova operace, druhou je operace SS, třetí je další Hadamardova operace a poslední operací je operace TT. Aplikace celého Circuit tedy aplikuje kompozici těchto operací, THSH,T H S H, na Qubit X.\mathsf{X}.

Někdy chceme explicitně uvést vstupní nebo výstupní stavy Circuit. Například pokud aplikujeme operaci THSHT H S H na stav 0,\vert 0\rangle, získáme stav 1+i20+121.\frac{1+i}{2}\vert 0\rangle + \frac{1}{\sqrt{2}} \vert 1 \rangle. To lze znázornit následovně:

Simple quantum circuit evaluated

Kvantové Circuit často začínají se všemi Qubit inicializovanými do 0,\vert 0\rangle, jako v našem případě, ale existují i situace, kdy jsou vstupní Qubit zpočátku nastaveny na jiné stavy. Zde je další příklad kvantového Circuit, tentokrát se dvěma Qubit:

Quantum circuit that creates an e-bit

Jako vždy Gate označená HH odkazuje na Hadamardovu operaci, zatímco druhá Gate je operace řízený NOT (controlled-NOT): plný kroužek představuje řídicí Qubit a kroužek připomínající symbol \oplus označuje cílový Qubit.

Než prozkoumáme tento Circuit podrobněji a vysvětlíme, co dělá, je nezbytné nejprve objasnit, jak jsou Qubit v kvantových Circuit uspořádány. To souvisí s konvencí, kterou Qiskit používá pro pojmenování a uspořádání systémů, která byla stručně zmíněna v předchozí lekci.

Konvence uspořádání Qubit v Qiskitu pro Circuit

V Qiskitu má nejvrchnější Qubit v diagramu Circuit index 00 a odpovídá nejpravější pozici v n-tici Qubit (nebo v řetězci, kartézském součinu či tenzorovém součinu odpovídajícím této n-tici), druhý Qubit shora má index 11 a odpovídá pozici druhé zprava v n-tici, a tak dále. Nejspodnější Qubit, který má nejvyšší index, tedy odpovídá nejlevější pozici v n-tici. Konkrétně výchozí názvy Qubit v nn-Qubit Circuit v Qiskitu jsou reprezentovány nn-ticí (qn1,,q0),(\mathsf{q_{n-1}},\ldots,\mathsf{q_{0}}), kde q0\mathsf{q_{0}} je Qubit nahoře a qn1\mathsf{q_{n-1}} dole v diagramech kvantových Circuit.

Všimni si, že toto je obrácení běžnější konvence pro uspořádání Qubit v Circuit, a je to častý zdroj zmatku. Další informace o této konvenci uspořádání najdeš na stránce dokumentace Bit-ordering in Qiskit.

Ačkoli se někdy odchýlíme od konkrétních výchozích názvů q0,,qn1\mathsf{q_{0}},\ldots,\mathsf{q_{n-1}} používaných pro Qubit v Qiskitu, v celém tomto kurzu budeme při interpretaci diagramů Circuit vždy dodržovat výše popsanou konvenci řazení. Naše interpretace výše uvedeného Circuit je tedy taková, že popisuje operaci na páru Qubit (X,Y).(\mathsf{X},\mathsf{Y}). Pokud je vstupem do Circuit kvantový stav ψϕ,\vert\psi\rangle \otimes \vert\phi\rangle, znamená to, že dolní Qubit X\mathsf{X} začíná ve stavu ψ\vert\psi\rangle a horní Qubit Y\mathsf{Y} začíná ve stavu ϕ.\vert\phi\rangle.

Abys pochopil/a, co Circuit dělá, můžeš procházet jeho operace zleva doprava.

  1. První operace je Hadamardova operace na Y\mathsf{Y}:

    First operation e-bit creator

    Když se Gate aplikuje na jeden Qubit tímto způsobem, s ostatními Qubit se nic neděje (což je v tomto případě jen jeden další Qubit). Když se nic neděje, odpovídá to provedení operace identity. Tečkovaný obdélník na obrázku výše tedy reprezentuje tuto operaci:

    IH=(121200121200001212001212). \mathbb{I}\otimes H = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}.

    Všimni si, že matice identity je vlevo od tenzorového součinu a HH je vpravo, což je v souladu s konvencí řazení v Qiskitu.

  2. Druhou operací je řízená operace NOT (controlled-NOT), kde Y\mathsf{Y} je řídicí Qubit a X\mathsf{X} je cílový Qubit:

    Second operation e-bit creator

    Akce Gate controlled-NOT na stavech standardní báze je následující:

    Controlled-NOT gate

    Vzhledem k tomu, že Qubit řadíme jako (X,Y),(\mathsf{X}, \mathsf{Y}), přičemž X\mathsf{X} je dole a Y\mathsf{Y} je nahoře v našem Circuit, maticová reprezentace Gate controlled-NOT je tato:

    (1000000100100100). \begin{pmatrix} 1 & 0 & 0 & 0\\[2mm] 0 & 0 & 0 & 1\\[2mm] 0 & 0 & 1 & 0\\[2mm] 0 & 1 & 0 & 0 \end{pmatrix}.

Unitární operace implementovaná celým Circuit, kterou nazveme U,U, je složením těchto operací:

U=(1000000100100100)(121200121200001212001212)=(121200001212001212121200).U = \begin{pmatrix} 1 & 0 & 0 & 0\\[2mm] 0 & 0 & 0 & 1\\[2mm] 0 & 0 & 1 & 0\\[2mm] 0 & 1 & 0 & 0 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0 \end{pmatrix}.

Konkrétně, s připomenutím naší notace pro Bellovy stavy,

ϕ+=1200+1211ϕ=12001211ψ+=1201+1210ψ=12011210,\begin{aligned} \vert \phi^+ \rangle & = \frac{1}{\sqrt{2}} \vert 0 0 \rangle + \frac{1}{\sqrt{2}} \vert 1 1 \rangle \\[2mm] \vert \phi^- \rangle & = \frac{1}{\sqrt{2}} \vert 0 0 \rangle - \frac{1}{\sqrt{2}} \vert 1 1 \rangle \\[2mm] \vert \psi^+ \rangle & = \frac{1}{\sqrt{2}} \vert 0 1 \rangle + \frac{1}{\sqrt{2}} \vert 1 0 \rangle \\[2mm] \vert \psi^- \rangle & = \frac{1}{\sqrt{2}} \vert 0 1 \rangle - \frac{1}{\sqrt{2}} \vert 1 0 \rangle, \end{aligned}

zjistíme, že

U00=ϕ+U01=ϕU10=ψ+U11=ψ.\begin{aligned} U \vert 00\rangle & = \vert \phi^+\rangle\\ U \vert 01\rangle & = \vert \phi^-\rangle\\ U \vert 10\rangle & = \vert \psi^+\rangle\\ U \vert 11\rangle & = -\vert \psi^-\rangle. \end{aligned}

Tento Circuit nám tedy poskytuje způsob, jak vytvořit stav ϕ+\vert\phi^+\rangle, pokud ho spustíme na dvou Qubit inicializovaných na 00.\vert 00\rangle. Obecněji nám poskytuje způsob, jak převést standardní bázi na Bellovu bázi. (Poznamenejme, že i když to pro tento příklad není důležité, fázový faktor 1-1 u posledního stavu, ψ,-\vert \psi^-\rangle, by mohl být odstraněn, kdybychom chtěli, malou úpravou Circuit. Například bychom mohli přidat řízenou Gate ZZ (controlled-ZZ) na začátek, která je podobná řízené Gate NOT s tím rozdílem, že operace ZZ se aplikuje na cílový Qubit místo operace NOT, když je řídicí Qubit nastaven na 1.1. Alternativně bychom mohli přidat Gate swap na konec. Obě volby odstraní znaménko mínus, aniž by ovlivnily akci Circuit na ostatní tři stavy standardní báze.)

Obecně mohou kvantové Circuit obsahovat libovolný počet vodičů Qubit. Můžeme také zahrnout vodiče klasických bitů, které jsou označeny dvojitými čarami, jako v tomto příkladu:

Example circuit with measurements

Zde máme Hadamardovu Gate a řízenou Gate NOT (controlled-NOT) na dvou Qubit X\mathsf{X} a Y,\mathsf{Y}, stejně jako v předchozím příkladu. Máme také dva klasické bity, A\mathsf{A} a B,\mathsf{B}, a také dvě měřicí Gate. Měřicí Gate reprezentují měření ve standardní bázi: Qubit se změní do svých stavů po měření, zatímco výsledky měření se přepíšou na klasické bity, na které ukazují šipky.

Často je praktické zobrazit měření jako Gate, která přijímá Qubit jako vstup a na výstupu dává klasický bit (na rozdíl od výstupu Qubit v jeho stavu po měření a zápisu výsledku do samostatného klasického bitu). To znamená, že měřený Qubit byl zahozen a lze ho poté bezpečně ignorovat, přičemž jeho stav se změnil na 0\vert 0\rangle nebo 1\vert 1\rangle v závislosti na výsledku měření.

Například následující diagram Circuit reprezentuje stejný proces jako ten v předchozím diagramu, ale kde ignorujeme X\mathsf{X} a Y\mathsf{Y} po jejich změření:

Example circuit with measurements compact

Jak bude kurz pokračovat, uvidíme další příklady kvantových Circuit, které jsou obvykle složitější než jednoduché příklady výše. Zde jsou některé příklady symbolů používaných k označení Gate, které se běžně objevují v diagramech Circuit:

  • Jednoqubitové Gate jsou obecně zobrazeny jako čtverce s písmenem označujícím, o jakou operaci se jedná, například takto:

    Single-qubit gates

    Gate NOT (nebo ekvivalentně Gate XX) se také někdy označuje kroužkem kolem znaku plus:

    Not gate

  • Gate swap se označují následovně:

    Swap gate

  • Řízené Gate (controlled-Gate), tedy Gate popisující řízené unitární operace, se označují vyplněným kroužkem (označujícím řídicí Qubit) spojeným svislou čarou s jakoukoli operací, která je řízena. Například Gate controlled-NOT, Gate controlled-controlled-NOT (neboli Toffoliho Gate) a Gate controlled-swap (Fredkinova Gate) se označují takto:

    Controlled gate

  • Libovolné unitární operace na více Qubit mohou být chápány jako Gate. Zobrazují se jako obdélníky označené názvem unitární operace. Například zde je zobrazení (nespecifikované) unitární operace UU jako Gate, společně s řízenou verzí této Gate:

    Arbitrary unitary gate together with controlled version