Simonův algoritmus
Simonův algoritmus je kvantový dotazovací algoritmus pro problém známý jako Simonův problém. Jedná se o problém s příslibem (promise problem), který má podobný charakter jako problémy Deutsch-Jozsa a Bernstein-Vazirani, ale konkrétní detaily se liší.
Simonův algoritmus je významný, protože poskytuje exponenciální výhodu kvantových algoritmů oproti klasickým (včetně probabilistických) algoritmům, a technika, kterou používá, inspirovala Petera Shora k objevu efektivního kvantového algoritmu pro faktorizaci celých čísel.
Simonův problém
Vstupní funkce Simonova problému má tvar
pro kladná celá čísla a Mohli bychom se omezit na případ v zájmu jednoduchosti, ale toto zjednodušení by nám mnoho nepřineslo — Simonův algoritmus a jeho analýza jsou v obou případech v podstatě stejné.
Za chvíli příslib podrobněji rozebereme, abychom lépe porozuměli tomu, co říká, ale nejprve si ujasněme, že vyžaduje, aby měla velmi speciální strukturu — většina funkcí tedy tento příslib nesplňuje. Je také na místě připustit, že tento problém nemá praktický význam. Jedná se spíše o poněkud umělý problém, který je vytvořený na míru tak, aby byl snadný pro kvantové počítače a obtížný pro klasické počítače.
Existují dva hlavní případy: první případ je, že je nulový řetězec a druhý případ je, že není nulový řetězec.
-
Případ 1: Pokud je nulový řetězec, pak můžeme zjednodušit výrok „právě tehdy, když" v příslibu tak, aby zněl To je ekvivalentní tomu, že je prostá funkce (injekce).
-
Případ 2: Pokud není nulový řetězec, pak splnění příslibu pro tento řetězec implikuje, že je dva-na-jeden (two-to-one), což znamená, že pro každý možný výstupní řetězec existují právě dva vstupní řetězce, které způsobí, že tento řetězec vypíše. Tyto dva vstupní řetězce navíc musí mít tvar a pro nějaký řetězec
Je důležité si uvědomit, že pokud je příslib splněn, může existovat pouze jeden řetězec který vyhovuje, takže pro funkce splňující příslib existuje vždy jediná správná odpověď.
Zde je příklad funkce tvaru která splňuje příslib pro řetězec
Existuje různých vstupních řetězců a různých výstupních řetězců, z nichž každý se vyskytuje dvakrát — jedná se tedy o funkci dva-na-jeden. Navíc pro libovolné dva různé vstupní řetězce, které produkují stejný výstupní řetězec, vidíme, že bitový XOR těchto dvou vstupních řetězců se rovná což je ekvivalentní tvrzení, že jeden z nich se rovná druhému XORovanému s
Všimni si, že jediné, na čem u skutečných výstupních řetězců záleží, je to, zda jsou pro různé volby vstupních řetězců stejné nebo různé. Například ve výše uvedeném příkladu jsou čtyři řetězce a které se objevují jako výstupy Tyto čtyři řetězce bychom mohli nahradit jinými řetězci, pokud by byly navzájem různé, a správné řešení by se nezměnilo.
Popis algoritmu
Zde je diagram kvantového Circuit představující Simonův algoritmus.
Pro upřesnění, nahoře je Qubitů, na které působí Hadamardovy Gate, a dole je Qubitů, které jdou přímo do dotazovací Gate. Vypadá to velmi podobně jako algoritmy, které jsme již v této lekci probírali, ale tentokrát nedochází k fázovému zpětnému rázu (phase kickback); spodních Qubitů vstupuje do dotazovací Gate ve stavu
K vyřešení Simonova problému pomocí tohoto Circuit bude ve skutečnosti zapotřebí několik nezávislých běhů, po nichž následuje klasický krok dodatečného zpracování, který bude popsán později po analýze chování Circuit.
Analýza
Analýza Simonova algoritmu začíná podobně jako u algoritmu Deutsch-Jozsa. Po provedení první vrstvy Hadamardových Gate na horních Qubitech se stav změní na
Když se provede výstup funkce se XORuje na nulový stav spodních Qubitů, takže stav se změní na
Když se provede druhá vrstva Hadamardových Gate, získáme následující stav pomocí stejného vzorce pro působení vrstvy Hadamardových Gate jako dříve.
V tomto bodě se analýza odchyluje od analýz předchozích algoritmů v této lekci.
Zajímá nás pravděpodobnost, že měření dá jako výsledek každý možný řetězec Pomocí pravidel pro analýzu měření popsaných v lekci Více systémů kurzu Základy kvantové informace zjistíme, že pravděpodobnost získání řetězce je rovna
Abychom tyto pravděpodobnosti lépe uchopili, budeme potřebovat trochu více notace a terminologie. Za prvé, obor hodnot funkce je množina obsahující všechny její výstupní řetězce.
Za druhé, pro každý řetězec můžeme množinu všech vstupních řetězců, pro které se funkce vyhodnotí na tento výstupní řetězec zapsat jako
Množina se nazývá vzor (preimage) množiny při zobrazení Vzor při zobrazení můžeme definovat analogicky pro libovolnou množinu namísto — je to množina všech prvků, které zobrazí do dané množiny. (Tuto notaci bychom neměli zaměňovat s inverzní funkcí k která nemusí existovat. Nápovědou, která nám pomáhá vyhnout se této záměně, je skutečnost, že argumentem na levé straně je množina nikoli prvek )
Pomocí této notace můžeme rozdělit součet v našem výrazu pro pravděpodobnosti výše a získat
Každý řetězec je zastoupen právě jednou ve dvou součtech — v podstatě jen třídíme tyto řetězce do samostatných skupin podle toho, jaký výstupní řetězec produkují při vyhodnocení funkce a pak sčítáme zvlášť přes všechny skupiny.
Nyní můžeme vyhodnotit druhou mocninu euklidovské normy a získat
Pro další zjednodušení těchto pravděpodobností se podívejme na hodnotu
pro libovolnou volbu
Pokud se stane, že pak je prostá funkce a pro každé vždy existuje pouze jediný prvek Hodnota výrazu je v tomto případě
Pokud naopak pak v množině existují právě dva řetězce. Přesněji řečeno, pokud zvolíme jako kterýkoli z těchto dvou řetězců, pak druhý řetězec musí být podle předpokladu v Simonově problému. Pomocí tohoto pozorování můžeme zjednodušit následovně.
Ukazuje se tedy, že hodnota je v obou případech nezávislá na konkrétní volbě
Nyní můžeme dokončit analýzu tím, že se podíváme na stejné dva případy jako předtím zvlášť.
-
Případ 1: V tomto případě je funkce prostá, takže existuje řetězců a dostaneme
Slovně řečeno, měření dává řetězec vybraný rovnoměrně náhodně.
-
Případ 2: V tomto případě je funkce dva-na-jednu, takže v je prvků. Pomocí výše uvedeného vzorce dospějeme k závěru, že pravděpodobnost změření každého je
Slovně řečeno, dostaneme řetězec vybraný rovnoměrně náhodně z množiny která obsahuje řetězců. (Protože přesně polovina binárních řetězců délky má binární skalární součin s a druhá polovina má binární skalární součin s jak jsme již pozorovali při analýze Deutsch-Jozsova algoritmu pro Bernstein-Vaziraniho problém.)
Klasické post-zpracování
Nyní víme, jaké jsou pravděpodobnosti pro možné výsledky měření, když spustíme kvantový Circuit pro Simonův algoritmus. Stačí nám tato informace k určení ?
Odpověď je ano, za předpokladu, že jsme ochotni celý proces několikrát zopakovat a přijmout, že může selhat s určitou pravděpodobností, kterou můžeme udělat velmi malou tím, že Circuit spustíme dostatečně mnohokrát. Základní myšlenka je, že každé spuštění Circuit nám poskytuje statistické důkazy o a tyto důkazy můžeme použít k nalezení s velmi vysokou pravděpodobností, pokud Circuit spustíme dostatečně mnohokrát.
Předpokládejme, že Circuit spustíme nezávisle -krát, pro Na tomto konkrétním počtu iterací není nic zvláštního — mohli bychom zvolit větší (nebo menší) v závislosti na pravděpodobnosti selhání, kterou jsme ochotni tolerovat, jak uvidíme. Volba zajistí, že máme více než % šanci na obnovení
Spuštěním Circuit -krát získáme řetězce Pro upřesnění, horní indexy zde jsou součástí názvů těchto řetězců, nikoli exponenty nebo indexy jejich bitů, takže máme
Nyní vytvoříme matici s řádky a sloupci tak, že jako binární položky vezmeme bity těchto řetězců.
V tuto chvíli nevíme, co je — naším cílem je tento řetězec najít. Ale představ si na chvíli, že řetězec známe, a vytvoříme sloupcový vektor z bitů řetězce následovně.
Pokud provedeme násobení matice vektorem modulo — což znamená, že provedeme násobení jako obvykle a poté vezmeme zbytek po dělení položek výsledku číslem — dostaneme nulový vektor.
To znamená, že řetězec chápaný jako sloupcový vektor jak bylo právě popsáno, bude vždy prvkem jádra (null space) matice za předpokladu, že aritmetiku provádíme modulo To platí jak v případě, že tak v případě Přesněji řečeno, nulový vektor je vždy v jádře a v případě se k němu přidává vektor, jehož položky jsou bity
Zbývající otázka je, zda v jádře budou kromě vektorů odpovídajících a ještě nějaké další vektory. Odpověď je, že to se stává čím dál méně pravděpodobným s rostoucím — a pokud zvolíme jádro nebude obsahovat žádné další vektory kromě těch odpovídajících a s pravděpodobností větší než %. Obecněji, pokud nahradíme hodnotou pro libovolnou volbu kladného celého čísla pravděpodobnost, že vektory odpovídající a jsou v jádře samy, je alespoň
Pomocí lineární algebry je možné efektivně vypočítat popis jádra modulo Konkrétně to lze provést pomocí Gaussovy eliminace, která funguje při aritmetice modulo stejně jako s reálnými nebo komplexními čísly. Pokud jsou vektory odpovídající a v jádře samy, což nastává s vysokou pravděpodobností, můžeme odvodit z výsledků tohoto výpočtu.
Klasická obtížnost
Kolik dotazů potřebuje klasický dotazovací algoritmus k vyřešení Simonova problému? Odpověď je: obecně hodně.
Existují různá přesná tvrzení, která lze o klasické obtížnosti tohoto problému učinit, a zde je jedno z nich. Pokud máme jakýkoli pravděpodobnostní dotazovací algoritmus a tento algoritmus provede méně než dotazů, což je počet dotazů exponenciální v pak tento algoritmus selže při řešení Simonova problému s pravděpodobností alespoň
Někdy může být dokazování výsledků o nemožnosti velmi náročné, ale tento není příliš obtížný a lze ho dokázat elementární pravděpodobnostní analýzou. Zde však pouze stručně prozkoumáme základní intuici, která za ním stojí.
Snažíme se najít skrytý řetězec ale dokud nezadáme funkci dotaz na dva řetězce se stejnou výstupní hodnotou, získáme o velmi omezené informace. Intuitivně řečeno, vše, co se dozvíme, je, že skrytý řetězec není exkluzivní disjunkcí (XOR) žádných dvou různých řetězců, na které jsme se dotázali. A pokud zadáme dotaz na méně než řetězců, stále bude existovat mnoho možností pro které jsme nevyloučili, protože nemáme dostatek párů řetězců, abychom to dokázali. Toto není formální důkaz, je to jen základní myšlenka.
Takže, shrnuto, Simonův algoritmus nám poskytuje pozoruhodnou výhodu kvantových algoritmů nad klasickými v rámci dotazovacího modelu. Konkrétně Simonův algoritmus řeší Simonův problém s počtem dotazů, který je lineární v počtu vstupních bitů naší funkce, zatímco jakýkoli klasický algoritmus, i pravděpodobnostní, potřebuje provést počet dotazů, který je exponenciální v aby vyřešil Simonův problém s rozumnou pravděpodobností úspěchu.