Přeskočit na hlavní obsah

Analýza

Nyní provedeme analýzu Groverova algoritmu, abychom pochopili, jak funguje. Začneme tím, co by se dalo popsat jako symbolická analýza, kde vypočítáme, jak Groverova operace GG působí na určité stavy, a poté tuto symbolickou analýzu propojíme s geometrickým obrázkem, který je užitečný pro vizualizaci fungování algoritmu.

Řešení a neřešení

Začněme definováním dvou množin řetězců.

A0={xΣn:f(x)=0}A1={xΣn:f(x)=1}\begin{aligned} A_0 &= \bigl\{ x\in\Sigma^n : f(x) = 0\bigr\} \\ A_1 &= \bigl\{ x\in\Sigma^n : f(x) = 1\bigr\} \end{aligned}

Množina A1A_1 obsahuje všechna řešení našeho vyhledávacího problému, zatímco A0A_0 obsahuje řetězce, které nejsou řešeními (můžeme je označovat jako neřešení, když se to hodí). Tyto dvě množiny splňují A0A1=A_0 \cap A_1 = \varnothing a A0A1=Σn,A_0 \cup A_1 = \Sigma^n, což znamená, že jde o bipartici množiny Σn.\Sigma^n.

Dále definujeme dva jednotkové vektory reprezentující rovnoměrné superpozice přes množiny řešení a neřešení.

A0=1A0xA0xA1=1A1xA1x\begin{aligned} \vert A_0\rangle &= \frac{1}{\sqrt{\vert A_0\vert}} \sum_{x\in A_0} \vert x\rangle \\ \vert A_1\rangle &= \frac{1}{\sqrt{\vert A_1\vert}} \sum_{x\in A_1} \vert x\rangle \end{aligned}

Formálně vzato, každý z těchto vektorů je definován pouze tehdy, když odpovídající množina je neprázdná, ale dále se budeme soustředit na případ, kdy ani A0A_0 ani A1A_1 není prázdná. Případy A0=A_0 = \varnothing a A1=A_1 = \varnothing se dají snadno řešit zvlášť, a to uděláme později.

Mimochodem, zde používaná notace je běžná: kdykoli máme konečnou a neprázdnou množinu S,S, můžeme zapsat S\vert S\rangle pro označení kvantového stavového vektoru, který je rovnoměrný přes prvky S.S.

Definujme také u\vert u \rangle jako rovnoměrný kvantový stav přes všechny nn-bitové řetězce:

u=1NxΣnx.\vert u\rangle = \frac{1}{\sqrt{N}} \sum_{x\in\Sigma^n} \vert x\rangle.

Všimni si, že

u=A0NA0+A1NA1.\vert u\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle.

Také platí u=Hn0n,\vert u\rangle = H^{\otimes n} \vert 0^n \rangle, takže u\vert u\rangle reprezentuje stav registru Q\mathsf{Q} po inicializaci v kroku 1 Groverova algoritmu.

To znamená, že těsně před tím, než v kroku 2 proběhnou iterace GG, je stav Q\mathsf{Q} obsažen ve dvoudimenzionálním vektorovém prostoru generovaném vektory A0\vert A_0\rangle a A1\vert A_1\rangle, a navíc koeficienty těchto vektorů jsou reálná čísla. Jak uvidíme, stav Q\mathsf{Q} bude mít tyto vlastnosti vždy — tedy že stav je reálnou lineární kombinací A0\vert A_0\rangle a A1\vert A_1\rangle — po libovolném počtu iterací operace GG v kroku 2.

Pozorování o Groverově operaci

Nyní obrátíme pozornost ke Groverově operaci

G=HnZORHnZf,G = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f,

a začneme zajímavým pozorováním o ní.

Představ si na chvíli, že bychom funkci ff nahradili složením ff s funkcí NOT — jinými slovy funkcí, kterou dostaneme převrácením výstupního bitu f.f. Tuto novou funkci nazveme gg a můžeme ji zapsat pomocí symbolů několika alternativními způsoby.

g(x)=¬f(x)=1f(x)=1f(x)={1f(x)=00f(x)=1g(x) = \neg f(x) = 1 \oplus f(x) = 1 - f(x) = \begin{cases} 1 & f(x) = 0\\[1mm] 0 & f(x) = 1 \end{cases}

Všimni si, že

(1)g(x)=(1)1f(x)=(1)f(x)(-1)^{g(x)} = (-1)^{1 \oplus f(x)} = - (-1)^{f(x)}

pro každý řetězec xΣn,x\in\Sigma^n, a proto

Zg=Zf.Z_g = - Z_f.

To znamená, že kdybychom funkci ff nahradili funkcí gg, Groverův algoritmus by fungoval úplně stejně — protože stavy, které z algoritmu získáme v obou případech, jsou nutně ekvivalentní až na globální fázi.

To není problém! Intuitivně řečeno, algoritmu je jedno, které řetězce jsou řešení a které neřešení — potřebuje pouze umět rozlišit řešení od neřešení, aby fungoval správně.

Působení Groverovy operace

Nyní se podívejme na působení GG na kvantové stavové vektory A0\vert A_0\rangle a A1.\vert A_1\rangle.

Nejprve si všimni, že operace ZfZ_f působí na A0\vert A_0\rangle a A1\vert A_1\rangle velmi jednoduše.

ZfA0=A0ZfA1=A1\begin{aligned} Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm] Z_f \vert A_1\rangle & = -\vert A_1\rangle \end{aligned}

Za druhé, máme operaci HnZORHn.H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}. Operace ZORZ_{\mathrm{OR}} je definována jako

ZORx={xx=0nxx0n,Z_{\mathrm{OR}} \vert x\rangle = \begin{cases} \vert x\rangle & x = 0^n \\[2mm] -\vert x\rangle & x \neq 0^n, \end{cases}

opět pro každý řetězec xΣn,x\in\Sigma^n, a pohodlný alternativní způsob, jak tuto operaci vyjádřit, je následující:

ZOR=20n0nI.Z_{\mathrm{OR}} = 2 \vert 0^n \rangle \langle 0^n \vert - \mathbb{I}.

Jednoduchý způsob, jak ověřit, že tento výraz odpovídá definici ZORZ_{\mathrm{OR}}, je vyhodnotit jeho působení na stavy standardní báze.

Operaci HnZORHnH^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} lze proto zapsat takto:

HnZORHn=2Hn0n0nHnI=2uuI,H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 H^{\otimes n} \vert 0^n \rangle \langle 0^n \vert H^{\otimes n} - \mathbb{I} = 2 \vert u \rangle \langle u \vert - \mathbb{I},

přičemž používáme stejné označení u\vert u \rangle jako výše pro uniformní superpozici všech nn-bitových řetězců.

A nyní máme vše potřebné k výpočtu působení GG na A0\vert A_0\rangle a A1.\vert A_1\rangle. Nejprve vypočítejme působení GG na A0.\vert A_0\rangle.

GA0=(2uuI)ZfA0=(2uuI)A0=2A0NuA0=2A0N(A0NA0+A1NA1)A0=(2A0N1)A0+2A0A1NA1=A0A1NA0+2A0A1NA1\begin{aligned} G \vert A_0 \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f \vert A_0\rangle \\ & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert A_0\rangle \\ & = 2 \sqrt{\frac{\vert A_0\vert}{N}} \vert u\rangle -\vert A_0 \rangle\\ & = 2 \sqrt{\frac{\vert A_0\vert}{N}} \biggl( \sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr) -\vert A_0 \rangle \\ & = \biggl( \frac{2\vert A_0\vert}{N} - 1\biggr) \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle \\ & = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle \end{aligned}

A za druhé vypočítejme působení GG na A1.\vert A_1\rangle.

GA1=(2uuI)ZfA1=(2uuI)A1=2A1Nu+A1=2A1N(A0NA0+A1NA1)+A1=2A1A0NA0+(12A1N)A1=2A1A0NA0+A0A1NA1\begin{aligned} G \vert A_1 \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) Z_f \vert A_1\rangle \\ & = - \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) \vert A_1\rangle \\ & = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \vert u\rangle + \vert A_1 \rangle \\ & = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \biggl(\sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr) + \vert A_1 \rangle \\ & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \biggl( 1 - \frac{2\vert A_1\vert}{N} \biggr) \vert A_1 \rangle \\ & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle \end{aligned}

V obou případech používáme rovnici

u=A0NA0+A1NA1\vert u\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle

spolu s výrazy

uA0=A0NanduA1=A1N\langle u \vert A_0\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \qquad\text{and}\qquad \langle u \vert A_1\rangle = \sqrt{\frac{\vert A_1 \vert}{N}}

které z ní vyplývají.

Shrnutí:

GA0=A0A1NA0+2A0A1NA1GA1=2A1A0NA0+A0A1NA1.\begin{aligned} G \vert A_0 \rangle & = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle\\[2mm] G \vert A_1 \rangle & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle. \end{aligned}

Jak jsme si již všimli, stav Q\mathsf{Q} těsně před krokem 2 leží v dvourozměrném prostoru generovaném vektory A0\vert A_0\rangle a A1,\vert A_1\rangle, a právě jsme ukázali, že GG zobrazuje libovolný vektor v tomto prostoru na jiný vektor ve stejném prostoru. To znamená, že pro účely analýzy se můžeme soustředit výhradně na tento podprostor.

Abychom lépe porozuměli tomu, co se v tomto dvourozměrném prostoru děje, vyjádřeme působení GG na tento prostor jako matici:

M=(A0A1N2A1A0N2A0A1NA0A1N),M = \begin{pmatrix} \frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm] \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N} \end{pmatrix},

jejíž první a druhý řádek/sloupec odpovídají A0\vert A_0\rangle, respektive A1.\vert A_1\rangle. Dosud jsme v této sérii vždy spojovali řádky a sloupce matic s klasickými stavy systému, ale matice lze použít i k popisu působení lineárních zobrazení v různých bázích, jak to děláme zde.

I když to na první pohled vůbec není zřejmé, matice MM je to, co získáme umocněním jednodušeji vypadající matice.

(A0NA1NA1NA0N)2=(A0A1N2A1A0N2A0A1NA0A1N)=M\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix}^2 = \begin{pmatrix} \frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm] \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N} \end{pmatrix} = M

Matice

(A0NA1NA1NA0N)\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix}

je rotační matice, kterou můžeme alternativně vyjádřit jako

(A0NA1NA1NA0N)=(cos(θ)sin(θ)sin(θ)cos(θ))\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix} = \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\[2mm] \sin(\theta) & \cos(\theta) \end{pmatrix}

pro

θ=sin1(A1N).\theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr).

Tento úhel θ\theta bude hrát velmi důležitou roli v následující analýze, takže stojí za to zdůraznit jeho význam zde, když ho vidíme poprvé.

Ve světle tohoto vyjádření matice pozorujeme, že

M=(cos(θ)sin(θ)sin(θ)cos(θ))2=(cos(2θ)sin(2θ)sin(2θ)cos(2θ)).M = \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\[2mm] \sin(\theta) & \cos(\theta) \end{pmatrix}^2 = \begin{pmatrix} \cos(2\theta) & -\sin(2\theta) \\[2mm] \sin(2\theta) & \cos(2\theta) \end{pmatrix}.

Je to proto, že provedení rotace o úhel θ\theta dvakrát je ekvivalentní rotaci o úhel 2θ.2\theta. Jiný způsob, jak to nahlédnout, je využít alternativní vyjádření

θ=cos1(A0N),\theta = \cos^{-1}\biggl(\sqrt{\frac{\vert A_0\vert}{N}}\biggr),

spolu se vzorci pro dvojnásobný úhel z trigonometrie:

cos(2θ)=cos2(θ)sin2(θ)sin(2θ)=2sin(θ)cos(θ).\begin{aligned} \cos(2\theta) & = \cos^2(\theta) - \sin^2(\theta)\\[1mm] \sin(2\theta) & = 2 \sin(\theta)\cos(\theta). \end{aligned}

Shrnutí: stav registru Q\mathsf{Q} na začátku kroku 2 je

u=A0NA0+A1NA1=cos(θ)A0+sin(θ)A1,\vert u\rangle = \sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle = \cos(\theta) \vert A_0\rangle + \sin(\theta) \vert A_1\rangle,

a efekt aplikace GG na tento stav je jeho otočení o úhel 2θ2\theta v prostoru generovaném vektory A0\vert A_0\rangle a A1.\vert A_1\rangle. Takže například máme

Gu=cos(3θ)A0+sin(3θ)A1G2u=cos(5θ)A0+sin(5θ)A1G3u=cos(7θ)A0+sin(7θ)A1\begin{aligned} G \vert u \rangle &= \cos(3\theta) \vert A_0\rangle + \sin(3\theta) \vert A_1\rangle\\[1mm] G^2 \vert u \rangle &= \cos(5\theta) \vert A_0\rangle + \sin(5\theta) \vert A_1\rangle\\[1mm] G^3 \vert u \rangle &= \cos(7\theta) \vert A_0\rangle + \sin(7\theta) \vert A_1\rangle \end{aligned}

a obecně

Gtu=cos((2t+1)θ)A0+sin((2t+1)θ)A1.G^t \vert u \rangle = \cos\bigl((2t + 1)\theta\bigr) \vert A_0\rangle + \sin\bigl((2t + 1)\theta\bigr) \vert A_1\rangle.

Geometrický obraz

Nyní propojme analýzu, kterou jsme právě provedli, s geometrickým obrazem. Myšlenka spočívá v tom, že operace GG je součinem dvou zrcadlení (reflexí), ZfZ_f a HnZORHn.H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}. A výsledný efekt provedení dvou zrcadlení je provedení rotace.

Začněme s Zf.Z_f. Jak jsme si již dříve všimli, platí

ZfA0=A0ZfA1=A1.\begin{aligned} Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm] Z_f \vert A_1\rangle & = -\vert A_1\rangle. \end{aligned}

V dvourozměrném vektorovém prostoru generovaném vektory A0\vert A_0\rangle a A1\vert A_1\rangle se jedná o zrcadlení kolem přímky rovnoběžné s A0,\vert A_0\rangle, kterou nazveme L1.L_1. Zde je obrázek znázorňující působení tohoto zrcadlení na hypotetický jednotkový vektor ψ,\vert\psi\rangle, u kterého předpokládáme, že je reálnou lineární kombinací A0\vert A_0\rangle a A1.\vert A_1\rangle.

Obrázek znázorňující působení zrcadlení na vektor.

Za druhé máme operaci HnZORHn,H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}, o které jsme již viděli, že ji lze zapsat jako

HnZORHn=2uuI.H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 \vert u \rangle \langle u \vert - \mathbb{I}.

Toto je rovněž zrcadlení, tentokrát kolem přímky L2L_2 rovnoběžné s vektorem u.\vert u\rangle. Zde je obrázek znázorňující působení tohoto zrcadlení na jednotkový vektor ψ.\vert\psi\rangle.

Obrázek znázorňující působení druhého zrcadlení na vektor.

Když tato dvě zrcadlení složíme, získáme rotaci — o dvojnásobek úhlu mezi osami zrcadlení — jak znázorňuje tento obrázek.

Obrázek znázorňující působení Groverovy operace na vektor.