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 G 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.
Množina A1 obsahuje všechna řešení našeho vyhledávacího problému, zatímco A0 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í A0∩A1=∅ a A0∪A1=Σn, což znamená, že jde o bipartici množiny Σn.
Dále definujeme dva jednotkové vektory reprezentující rovnoměrné superpozice přes množiny řešení a neřešení.
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 A0 ani A1 není prázdná.
Případy A0=∅ a A1=∅ 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, můžeme zapsat ∣S⟩ pro označení kvantového stavového vektoru, který je rovnoměrný přes prvky S.
Definujme také ∣u⟩ jako rovnoměrný kvantový stav přes všechny n-bitové řetězce:
∣u⟩=N1x∈Σn∑∣x⟩.
Všimni si, že
∣u⟩=N∣A0∣∣A0⟩+N∣A1∣∣A1⟩.
Také platí ∣u⟩=H⊗n∣0n⟩, takže ∣u⟩ reprezentuje stav registru Q po inicializaci v kroku 1 Groverova algoritmu.
To znamená, že těsně před tím, než v kroku 2 proběhnou iterace G, je stav Q obsažen ve dvoudimenzionálním vektorovém prostoru generovaném vektory ∣A0⟩ a ∣A1⟩, a navíc koeficienty těchto vektorů jsou reálná čísla.
Jak uvidíme, stav Q bude mít tyto vlastnosti vždy — tedy že stav je reálnou lineární kombinací ∣A0⟩ a ∣A1⟩ — po libovolném počtu iterací operace G v kroku 2.
Představ si na chvíli, že bychom funkci f nahradili složením f s funkcí NOT — jinými slovy funkcí, kterou dostaneme převrácením výstupního bitu f.
Tuto novou funkci nazveme g a můžeme ji zapsat pomocí symbolů několika alternativními způsoby.
g(x)=¬f(x)=1⊕f(x)=1−f(x)={10f(x)=0f(x)=1
Všimni si, že
(−1)g(x)=(−1)1⊕f(x)=−(−1)f(x)
pro každý řetězec x∈Σn, a proto
Zg=−Zf.
To znamená, že kdybychom funkci f nahradili funkcí g, 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ě.
Jak jsme si již všimli, stav Q těsně před krokem 2 leží v dvourozměrném prostoru generovaném vektory ∣A0⟩ a ∣A1⟩, a právě jsme ukázali, že G 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í G na tento prostor jako matici:
jejíž první a druhý řádek/sloupec odpovídají ∣A0⟩, respektive ∣A1⟩.
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 M je to, co získáme umocněním jednodušeji vypadající matice.
Nyní propojme analýzu, kterou jsme právě provedli, s geometrickým obrazem.
Myšlenka spočívá v tom, že operace G je součinem dvou zrcadlení (reflexí),
Zf a H⊗nZORH⊗n.
A výsledný efekt provedení dvou zrcadlení je provedení rotace.
Začněme s Zf.
Jak jsme si již dříve všimli, platí
Zf∣A0⟩Zf∣A1⟩=∣A0⟩=−∣A1⟩.
V dvourozměrném vektorovém prostoru generovaném vektory ∣A0⟩ a ∣A1⟩
se jedná o zrcadlení kolem přímky rovnoběžné s ∣A0⟩, kterou nazveme L1.
Zde je obrázek znázorňující působení tohoto zrcadlení na hypotetický jednotkový vektor ∣ψ⟩,
u kterého předpokládáme, že je reálnou lineární kombinací ∣A0⟩ a ∣A1⟩.
Za druhé máme operaci H⊗nZORH⊗n, o které jsme již viděli, že ji lze zapsat jako
H⊗nZORH⊗n=2∣u⟩⟨u∣−I.
Toto je rovněž zrcadlení, tentokrát kolem přímky L2 rovnoběžné s vektorem ∣u⟩.
Zde je obrázek znázorňující působení tohoto zrcadlení na jednotkový 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.
Toto geometricky vysvětluje, proč je efektem Groverovy operace otočení lineárních kombinací ∣A0⟩ a ∣A1⟩ o úhel 2θ.