Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Stejně jako bity jsou základním objektem informací v klasickém computingu, qubity (kvantové bity ) jsou základním objektem informací v kvantovém computingu. Abyste pochopili tuto korespondenci, tento článek popisuje nejjednodušší příklad: jeden qubit.
Reprezentace kubitu
Zatímco bit nebo binární číslice může mít hodnotu $0 nebo $1$, qubit může mít hodnotu, která je $buď 0$$, $1$ nebo kvantová superpozice $0$ a $1$.
Stav jednoho qubitu může být popsán dvojrozměrným sloupcovým vektorem jednotkové normy, tj. součet čtverců velikostí jeho položek musí být roven $1$. Tento vektor označovaný jako kvantový stavový vektor obsahuje všechny informace potřebné k popisu kvantového systému s jedním qubitem stejně jako jeden bit obsahuje všechny informace potřebné k popisu stavu binární proměnné. Základní informace o vektorech a maticích v kvantových výpočtech najdete v tématu Vektorové a matice.
Jakýkoli dvojrozměrný vektor sloupce skutečných nebo komplexních čísel s normou $1$ představuje možný kvantový stav uchovávaný qubitem. Tedy $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ představuje stav qubitu, pokud jsou $\alpha$ a $\beta$ komplexní čísla, která vyhovují $|\alpha|^2 + |\beta|^2 = 1$.
Některé příklady platných vektorů kvantového stavu představujících qubity jsou $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ a $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Tyto dva vektory tvoří základ pro vektorový prostor, který popisuje stav qubitu. To znamená, že jakýkoli kvantový stavový vektor může být napsán jako součet těchto základních vektorů. Konkrétně lze vektor x y zapsat jako $\begin{bmatrix}x \\ 1 \end{bmatrix}$ 0 $ + y \begin{bmatrix} 0 \\ 1 \end{bmatrix}.\begin{bmatrix}\\\end{bmatrix}$ I když by jakákoli rotace těchto vektorů sloužila jako dokonale platný základ pro qubit, tento konkrétní vektor je zvolen voláním výpočetního základu.
Tyto dva kvantové stavy jsou převzaty tak, aby odpovídaly dvěma stavům klasického bitu, konkrétně $0$ a $1$. Standardní konvence je zvolit
$$0\equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}$$$$1 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix},$$
i když opačná volba by mohla být stejně dobře přijata. Z nekonečného počtu možných kvantových stavových vektorů s jedním qubitem tedy odpovídají pouze dvěma stavům klasických bitů; všechny ostatní kvantové stavy ne.
Měření qubitu
Jak znázornit qubit, můžete získat určitou představu o tom, co tyto stavy představují, když probereme koncept měření. Měření odpovídá neformální představě o 'nahlédnutí' na qubit, který okamžitě zkolabuje kvantový stav na jeden ze dvou klasických stavů $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ nebo $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Při měření qubitu vektorem kvantového stavu $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$se získá výsledek $0$ s pravděpodobností $|\alpha|^2$ a výsledkem $1$ s pravděpodobností $|\beta|^2.$ Na výsledku $0$ je $\begin{bmatrix} nový stav qubitu 1 \\ 0 \end{bmatrix}$; ve výsledku $1$ je $\begin{bmatrix} jeho stav 0 \\ 1 \end{bmatrix}$. Všimněte si, že tyto pravděpodobnosti sečtou na $1$ vzhledem k normalizační podmínce $|\alpha|^2 + |\beta|^2 = 1$.
Vlastnosti měření také znamenají, že celkové znaménko vektoru kvantového stavu je irelevantní. Negace vektoru je ekvivalentní $\alpha\right-vektoru\alpha$ a $\beta\right-vektoru\beta$. Vzhledem k tomu, že pravděpodobnost měření $0$ a $1$ závisí na velikosti mocniny termínů, vložení takových znaků nezmění pravděpodobnosti vůbec. Takové fáze se běžně nazývají "global phases" a obecněji může být ve tvaru $e^{i \phi}$ spíše než jen $\pm 1$.
Poslední důležitou vlastností měření je, že nemusí nutně poškodit všechny kvantové stavové vektory. Pokud jeden začíná qubitem ve stavu $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$, který odpovídá klasickému stavu $0$, měření tohoto stavu vždy poskytne výsledek $0$ a nechá kvantový stav beze změny. Pokud jsou v tomto smyslu pouze klasické bity (například qubity, které jsou buď $\begin{bmatrix}1 \\ 0 \end{bmatrix}$, nebo $\begin{bmatrix}0 \\ 1 \end{bmatrix}$), pak měření systém nepoškodí. To znamená, že člověk může replikovat klasická data a manipulovat s nimi na kvantovém počítači stejně jako v klasickém počítači. Schopnost ukládat informace do obou stavů najednou je to, co zvyšuje kvantové výpočty nad rámec toho, co je možné klasicky a dále okrádá kvantové počítače schopnost kopírovat kvantová data nerozlišeně, viz také teorém bez klonování.
Vizualizace qubitů a transformací pomocí Bloch sphere
Qubity mohou být také znázorněny ve $formátu 3$D pomocí reprezentace Bloch sphere. Blochová sféra poskytuje způsob popisu kvantového stavu s jedním qubitem (což je dvojrozměrný komplexní vektor) jako trojrozměrný vektor reálné hodnoty. To je důležité, protože nám umožňuje vizualizovat stavy s jedním qubitem a tím vyvinout důvod, který může být neocenitelný při pochopení stavů více qubitů (kde se bohužel reprezentace Bloch sphere rozpadne). Bloch sphere lze vizualizovat takto:
Šipky v tomto diagramu znázorňují směr, ve kterém kvantový stavový vektor ukazuje, a každá transformace šipky může být považována za otočení o jedné z kardinalních os. Přemýšlení o kvantovém výpočtu jako o sekvenci rotací je silná intuice, ale je obtížné tuto intuici použít k návrhu a popisu algoritmů. Q# tento problém zmírní poskytnutím jazyka pro popis těchto rotací.
Operace s jedním qubitem
Kvantové počítače zpracovávají data pomocí univerzální sady kvantových bran, které mohou emulovat jakoukoli rotaci vektoru kvantového stavu. Tento pojem univerzálnosti je podobný pojmu univerzálnosti pro tradiční výpočetní systémy (například klasické), kde je sada bran považována za univerzální, pokud je možné provést každou transformaci vstupních bitů obvodem konečné délky. V kvantových výpočtech jsou platné transformace, které můžeme s qubitem provádět, unitární transformace a měření. Operace adjointu nebo složitá konjugovaná transponace je pro kvantové výpočty velmi důležitá, protože je potřeba invertovat kvantové transformace.
Operace s jedním qubitem nebo kvantové brány s jedním qubitem je možné klasifikovat do dvou kategorií: Cliffordová brána a ne Cliffordová brána. Brány non-Clifford se skládají pouze z $T-brány$ (označované také jako $\pi/8$ brána).
$$ T=\begin{bmatrix} 1 & 0 \ 0 & e^{i\pi/4}\end{bmatrix}. $$
Standardní sada jedno qubitových cliffordových bran zahrnutých ve výchozím nastavení Q#, včetně
$$ H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \ 1 &-1 \end{bmatrix} , \qquad S =\begin{bmatrix} 1 & 0 \ 0 & i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 & 1 \ 1& 0 \end{bmatrix}= HT^4H, $$
$$ Y =\begin{bmatrix} 0 & -i \ i & 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1& 0\ 0&-1 \end{bmatrix}=T^4. $$
Zde se operace $X$, $Y$ a $Z$ používají zejména často a jsou pojmenovány Pauli operátory po jejich tvůrci Wolfgang Pauli. Společně s ne-Cliffordovskou bránou ($T-brána$) lze tyto operace skládat tak, aby aproximovaly jakoukoli unitární transformaci na jednom qubitu.
I když předchozí představuje nejoblíbenější primitivní brány pro popis operací na logické úrovni zásobníku (představte si logickou úroveň jako úroveň kvantového algoritmu), je často vhodné zvážit méně základní operace na úrovni algoritmu, například operace blíže k úrovni popisu funkce. Naštěstí má Q# také k dispozici metody pro implementaci unitárních operátorů vyšší úrovně, které zase umožňují implementovat algoritmy vysoké úrovně, aniž by bylo nutné explicitně rozložit všechno až na Clifford a $T-gates$.
Nejjednodušším takovým primitivem je rotace jednoho qubitu. Obvykle se považují tři jednoqubitové rotace: $R_x$, $R_y$ a $R_z$. Pokud chcete vizualizovat akci otočení $R_x(\theta),$ představte si například, že nasměrujete pravý palec podél osy $x$ blochové koule a otočíte vektor rukou úhlem $\theta/2$ radiánů. Tento matoucí faktor $2$ vychází ze skutečnosti, že ortogonální vektory jsou $180^\circ$ od sebe při vykreslení na Blochově sféře, ale jsou ve skutečnosti $90^\circ$ stupňů od sebe geometricky vzato. Odpovídající jednotkové matice jsou:
$$ \begin{align*}& R_z(\theta) = e^{-i\theta Z/2}=\begin{bmatrix} e^{-i\theta/2}& 0\\ 0& e^{i\theta/2}\end{bmatrix}, \\& R_x(\theta) = e^{-i\theta X/2}= HR_z(\theta)H =\begin{bmatrix} \cos(\theta/2) & -i\sin(\theta/2)\\ -i\sin(\theta/2) & \cos(\theta/2) \end{bmatrix}, \\& R_y(\theta) = e^{-i\theta Y/2}= SHR_z(\theta)HS^\dagger=\begin{bmatrix} \cos(\theta/2) & -\sin(\theta/2)\\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}. \end{zarovnat*}$$
Stejně jako lze kombinovat libovolné tři rotace k provedení libovolné rotace ve třech dimenzích, z reprezentace Blochovy sféry je vidět, že každou jednotkovou matici lze zapsat jako posloupnost tří rotací. Konkrétně pro každou jednotkovou matici $U$ existuje $\alpha,\beta,\gamma tak,\delta$ aby $U= e^{i\alpha} R_x(\beta)R_z(\gamma)R_x(\delta)$. Proto $R_z(\theta)$ a $H$ také tvoří univerzální množinu hradel, i když to není diskrétní množina, protože $\theta$ může mít libovolnou hodnotu. Z tohoto důvodu a vzhledem k aplikacím v kvantové simulaci jsou takové souvislé brány zásadní pro kvantové výpočty, zejména na úrovni návrhu kvantového algoritmu. Aby bylo možné dosáhnout implementace hardwaru odolného proti chybám, budou nakonec zkompilovány do diskrétních sekvencí bran, které přesně tyto rotace přibližují.