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 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ů.
Množina obsahuje všechna řešení našeho vyhledávacího problému, zatímco 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í a což znamená, že jde o bipartici množiny
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 ani není prázdná. Případy a 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 můžeme zapsat pro označení kvantového stavového vektoru, který je rovnoměrný přes prvky
Definujme také jako rovnoměrný kvantový stav přes všechny -bitové řetězce:
Všimni si, že
Také platí takže reprezentuje stav registru po inicializaci v kroku 1 Groverova algoritmu.
To znamená, že těsně před tím, než v kroku 2 proběhnou iterace , je stav obsažen ve dvoudimenzionálním vektorovém prostoru generovaném vektory a , a navíc koeficienty těchto vektorů jsou reálná čísla. Jak uvidíme, stav bude mít tyto vlastnosti vždy — tedy že stav je reálnou lineární kombinací a — po libovolném počtu iterací operace v kroku 2.
Pozorování o Groverově operaci
Nyní obrátíme pozornost ke Groverově operaci
a začneme zajímavým pozorováním o ní.
Představ si na chvíli, že bychom funkci nahradili složením s funkcí NOT — jinými slovy funkcí, kterou dostaneme převrácením výstupního bitu Tuto novou funkci nazveme a můžeme ji zapsat pomocí symbolů několika alternativními způsoby.
Všimni si, že
pro každý řetězec a proto
To znamená, že kdybychom funkci nahradili funkcí , 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í na kvantové stavové vektory a
Nejprve si všimni, že operace působí na a velmi jednoduše.
Za druhé, máme operaci Operace je definována jako
opět pro každý řetězec a pohodlný alternativní způsob, jak tuto operaci vyjádřit, je následující:
Jednoduchý způsob, jak ov ěřit, že tento výraz odpovídá definici , je vyhodnotit jeho působení na stavy standardní báze.
Operaci lze proto zapsat takto:
přičemž používáme stejné označení jako výše pro uniformní superpozici všech -bitových řetězců.
A nyní máme vše potřebné k výpočtu působení na a Nejprve vypočítejme působení na