Popis Groverova algoritmu
V této sekci popíšeme Groverův algoritmus. Začneme diskusí o fázových dotazovacích Gate a o tom, jak je sestrojit, poté přejdeme k popisu samotného Groverova algoritmu. Na závěr stručně probereme, jak se tento algoritmus přirozeně aplikuje na vyhledávání.
Fázové dotazovací Gate
Groverův algoritmus využívá operace známé jako fázové dotazovací Gate. Na rozdíl od běžného dotazovacího Gate definovaného pro danou funkci obvyklým způsobem popsaným výše, je fázový dotazovací Gate pro funkci definován jako
pro každý řetězec
Operaci lze implementovat pomocí jednoho dotazovacího Gate jak naznačuje tento diagram:
Tato implementace využívá jev fázového zpětného rázu (phase kickback) a vyžaduje, aby byl k dispozici jeden pracovní Qubit inicializovaný do stavu . Tento Qubit zůstane ve stavu i po dokončení implementace a může být znovu použit (například pro implementaci dalších Gate) nebo jednoduše zahozen.
Kromě operace budeme také používat fázový dotazovací Gate pro -bitovou funkci OR, která je definována následovně pro každý řetězec
Explicitně, fázový dotazovací Gate pro -bitovou funkci OR funguje takto:
Pro upřesnění, takto funguje na stavech standardní báze; jeho chování na libovolných stavech je z tohoto výrazu určeno linearitou.
Operaci lze implementovat jako kvantový Circuit tak, že začneme s Booleovským obvodem pro funkci OR, poté sestrojíme operaci (tedy standardní dotazovací Gate pro -bitovou funkci OR) pomocí postupu popsaného v lekci Základy kvantových algoritmů a nakonec operaci pomocí jevu fázového zpětného rázu popsaného výše. Všimni si, že operace nezávisí na funkci a proto ji lze implementovat kvantovým Circuit bez jakýchkoli dotazovacích Gate.
Popis algoritmu
Nyní, když máme dvě operace a můžeme popsat Groverův algoritmus.
Algoritmus odkazuje na číslo které je počtem iterací, které provádí (a tedy počtem dotazů na funkci které vyžaduje). Toto číslo není v Groverově algoritmu, jak ho popisujeme, specifikováno, a později v lekci probereme, jak ho lze zvolit.
Operace iterovaná v kroku 2 bude po zbytek této lekce nazývána Groverova operace. Zde je reprezentace Groverovy operace jako kvantový Circuit pro
V tomto diagramu je operace zobrazena jako větší než což slouží jako neformální vizuální nápověda naznačující, že se pravděpodobně jedná o nákladnější operaci. Konkrétně, když pracujeme v rámci dotazovacího modelu, vyžaduje jeden dotaz, zatímco nevyžaduje žádné dotazy. Pokud místo toho máme Booleovský obvod pro funkci a převedeme ho na kvantový Circuit pro můžeme rozumně očekávat, že výsledný kvantový Circuit bude větší a složitější než Circuit pro
Zde je diagram kvantového Circuit pro celý algoritmus při a Pro větší hodnoty stačí přidat další instance Groverovy operace bezprostředně před měření.
Aplikace na vyhledávání
Groverův algoritmus lze na problém Search aplikovat následovně:
- Zvol číslo v kroku 2. (Toto je probráno později v lekci.)
- Spusť Groverův algoritmus na funkci s jakoukoli zvolenou hodnotou čímž získáš řetězec
- Dotázej se funkce na řetězec abys zjistil, zda je platným řešením:
- Pokud pak jsme nalezli řešení, takže můžeme skončit a vypsat
- V opačném případě, pokud můžeme buď spustit proceduru znovu, případně s jinou volbou nebo se můžeme rozhodnout vzdát a vypsat „žádné řešení."
Jakmile zanalyzujeme, jak Groverův algoritmus funguje, uvidíme, že při volbě získáme řešení našeho vyhledávacího problému (pokud existuje) s vysokou pravděpodobností.