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:
Tok informací podél vodičů jde zleva doprava: vodiče na levé straně obrázku označené a 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é ), OR Gate (označené ) a NOT Gate (označené ). Funkce počítané těmito Gate budou pravděpodobně mnohým čtenářům známé, ale zde jsou zobrazeny pomocí tabulek hodnot:
Dva malé plné kroužky na vodičích těsně napravo od názvů a 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:
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 :
V následujícím diagramu uvažujeme jen jednu volbu vstupů: a Každý vodič je označen hodnotou, kterou přenáší, takže můžeš sledovat operace. Výstupní hodnota je v tomto případě , což je správná hodnota pro XOR:
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ž a , 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 ( a ) a třetí vstup nastavený na hodnotu Hodnoty přenášené vodiči jako funkce hodnot a jsou zobrazeny na obrázku.
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:
V tomto Circuit máme jeden Qubit pojmenovaný 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 , třetí je další Hadamardova operace a poslední operací je operace . Aplikace celého Circuit tedy aplikuje kompozici těchto operací, na Qubit
Někdy chceme explicitně uvést vstupní nebo výstupní stavy Circuit. Například pokud aplikujeme operaci na stav získáme stav To lze znázornit následovně:
Kvantové Circuit často začínají se všemi Qubit inicializovanými do 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:
Jako vždy Gate označená 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 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.
V Qiskitu má nejvrchnější Qubit v diagramu Circuit index 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 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 -Qubit Circuit v Qiskitu jsou reprezentovány -ticí kde je Qubit nahoře a 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ů 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 Pokud je vstupem do Circuit kvantový stav znamená to, že dolní Qubit začíná ve stavu a horní Qubit začíná ve stavu
Abys pochopil/a, co Circuit dělá, můžeš procházet jeho operace zleva doprava.
-
První operace je Hadamardova operace na :
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:
Všimni si, že matice identity je vlevo od tenzorového součinu a je vpravo, což je v souladu s konvencí řazení v Qiskitu.
-
Druhou operací je řízená operace NOT (controlled-NOT), kde je řídicí Qubit a je cílový Qubit:
Akce Gate controlled-NOT na stavech standardní báze je následující:
Vzhledem k tomu, že Qubit řadíme jako přičemž je dole a je nahoře v našem Circuit, maticová reprezentace Gate controlled-NOT je tato:
Unitární operace implementovan á celým Circuit, kterou nazveme je složením těchto operací:
Konkrétně, s připomenutím naší notace pro Bellovy stavy,
zjistíme, že
Tento Circuit nám tedy poskytuje způsob, jak vytvořit stav , pokud ho spustíme na dvou Qubit inicializovaných na 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 u posledního stavu, by mohl být odstraněn, kdybychom chtěli, malou úpravou Circuit. Například bychom mohli přidat řízenou Gate (controlled-) na začátek, která je podobná řízené Gate NOT s tím rozdílem, že operace se aplikuje na cílový Qubit místo operace NOT, když je řídicí Qubit nastaven na 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:
Zde máme Hadamardovu Gate a řízenou Gate NOT (controlled-NOT) na dvou Qubit a stejně jako v předchozím příkladu. Máme také dva klasické bity, a 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 nebo 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 a po jejich změření:
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:
Gate NOT (nebo ekvivalentně Gate ) se také někdy označuje kroužkem kolem znaku plus:
-
Gate swap se označují následovně:
-
Ří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:
-
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 jako Gate, společně s řízenou verzí této Gate: