Popis Groverova algoritmu
V této sekci popíšeme Groverův algoritmus. Začneme diskusí o fázových dotazovacích hradlech 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í hradla
Groverův algoritmus využívá operace známé jako fázová dotazovací hradla. Na rozdíl od běžného dotazovacího hradla definovaného pro danou funkci obvyklým způsobem popsaným výše, je fázové dotazovací hradlo pro funkci definováno jako
pro každý řetězec
Operaci lze implementovat pomocí jednoho dotazovacího hradla 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 hradel) nebo jednoduše zahozen.
Kromě operace budeme také používat fázové dotazovací hradlo pro -bitovou funkci OR, která je definována následovně pro každý řetězec
Explicitně, fázové dotazovací hradlo 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ý obvod tak, že začneme s Booleovským obvodem pro funkci OR, poté sestrojíme operaci (tedy standardní dotazovací hradlo 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 obvodem bez jakýchkoli dotazovacích hradel.
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ý obvod 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ý obvod pro můžeme rozumně očekávat, že výsledný kvantový obvod bude větší a složitější než obvod pro
Zde je diagram kvantového obvodu 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í.