V teorie výpočetní složitosti a kvantové výpočty, Simonův problém je výpočetní problém které lze vyřešit exponenciálně rychleji na a kvantový počítač než na klasickém (nebo tradičním) počítači. Simonův problém zahrnuje použití černé skříňky. Problémy černé skříňky poskytují kvantovým algoritmům výhodu oproti klasickým algoritmům.
Samotný problém má malou praktickou hodnotu, protože existuje jen málo představitelných realistických nastavení, která by vyžadovala řešení Simonova problému. Problém je však stále důležitý, protože je lze prokázat že a kvantový algoritmus může tento problém vyřešit exponenciálně rychleji než jakýkoli známý klasický algoritmus. Toto je první příklad kvantového výpočetního problému, který lze vyřešit v polynomiálním čase na kvantovém počítači.
Problém je nastaven v modelu složitost rozhodovacího stromu nebo složitost dotazu a byla vytvořena Daniel Simon v roce 1994. Simon vystavoval a kvantový algoritmus, obvykle volal Simonův algoritmus, který řeší problém exponenciálně rychleji než jakýkoli deterministický nebo pravděpodobnostní klasický algoritmus, vyžadující exponenciálně kratší výpočetní čas (nebo přesněji dotazy) než nejlepší klasický pravděpodobnostní algoritmus. V Simonově algoritmu je pro kvantový algoritmus zapotřebí spíše lineární počet dotazů než exponenciální počet dotazů, které jsou potřebné pro klasický pravděpodobnostní algoritmus. Tento problém přináší věštecké oddělení mezi třídami složitosti BPP a BQP, na rozdíl od oddělení poskytovaného Algoritmus Deutsch – Jozsa, který odděluje P a EQP. Separace je exponenciální (vzhledem k věštci) mezi kvantovou a omezenou chybou složitosti klasického dotazu. Simonův problém se neprokazuje, spíše ukazuje, že existuje věštec, ve vztahu ke kterému. Věštec použitý v Simonově problému je černá skříňka, kterou bereme v úvahu při výpočtu.
Inspirací byl také Simonův algoritmus Shorův algoritmus. Oba problémy jsou zvláštními případy Abelianů skrytý problém s podskupinou, o kterém je nyní známo, že má efektivní kvantové algoritmy.
Popis problému
Vzhledem k funkci (implementované a Černá skříňka nebo věštce) , slíbil uspokojit vlastnost, že pro některé nenulové a všechno ,
- kdyby a jen kdyby nebo
Cílem je identifikovat sa a zjistit, zda nebo dotazem f (x).
Tady, klasifikuje funkci jedna k jedné.
Li , funkce je funkce dvou ku jedné taková
Jinými slovy, je funkce dvou na jednoho taková , pro všechny kde není známo.
Fotbalová branka
Je důležité si uvědomit, že cílem Simonova problému je snížit počet dotazů na černou skříňku, abychom mohli určit s exponenciálně rychle.
Příklad
Například pokud , pak je následující funkce příkladem funkce, která splňuje požadovanou a právě zmíněnou vlastnost:
| |
---|
000 | 101 |
001 | 010 |
010 | 000 |
011 | 110 |
100 | 000 |
101 | 110 |
110 | 101 |
111 | 010 |
V tomto případě, (tj. řešení). Lze snadno ověřit, že každý výstup z se vyskytuje dvakrát a dva vstupní řetězce odpovídající libovolnému danému výstupu mají bitový XOR rovný .
Například vstupní řetězce a jsou oba mapovány (uživatelem ) na stejný výstupní řetězec . a . Pokud použijeme XOR na 010 a 100, získáme 110, to znamená lze také ověřit pomocí vstupních řetězců 001 a 111, které jsou oba mapovány (pomocí f) na stejný výstupní řetězec 010. Pokud použijeme XOR na 001 a 111, získáme 110, tj. . To dává stejné řešení jsme vyřešili dříve.
V tomto příkladu je funkce f skutečně funkcí dvou ku jedné, kde .
U funkce 1: 1 takhle
Problémová tvrdost
Intuitivně se jedná o velmi těžký problém vyřešit „klasickým“ způsobem, i když člověk používá náhodnost a přijímá malou pravděpodobnost chyby. Intuice za tvrdostí je rozumně jednoduchá: pokud chcete problém vyřešit klasicky, musíte najít dva různé vstupy a pro který . Ve funkci nemusí být nutně žádná struktura to by nám pomohlo najít dva takové vstupy: konkrétněji můžeme něco objevit (nebo co dělá) pouze tehdy, když pro dva různé vstupy získáme stejný výstup. V každém případě bychom museli hádat různé vstupy, než je pravděpodobné, že najdete pár, na kterém bere stejný výstup podle narozeninový problém. Vzhledem k tomu, klasicky najít s se 100% jistotou by to vyžadovalo kontrolu až vstupů, Simonův problém se snaží najít s použitím méně dotazů než tato klasická metoda.
Přehled Simonova algoritmu
Idea
Myšlenkou na vysoké úrovni za Simonovým algoritmem je „dostatečně dlouho“ zkoumat (nebo „zkoumat“) kvantový obvod (viz obrázek níže) (lineárně nezávislé ) n-bitové řetězce, to je
tak, aby byly splněny následující rovnice
kde je modulo-2 Tečkovaný produkt; to je , a , pro a pro .
Tento lineární systém tedy obsahuje lineární rovnice v neznámé (tj. kousky ), a cílem je jej vyřešit za účelem získání , a je pevná pro danou funkci . Ne vždy existuje (jedinečné) řešení.
Simonův kvantový obvod
Kvantový obvod představující / implementující Simonův algoritmus
Kvantový obvod (viz obrázek) je implementací (a vizualizací) kvantové části Simonova algoritmu.
Nejprve je připraven kvantový stav všech nul (to lze snadno provést). Stát představuje kde je počet qubitů. Polovina tohoto stavu se poté transformuje pomocí Hadamardovy transformace. Výsledek se poté přenese do věštce (neboli „černé skříňky“), který umí počítat . Kde působí na dva registry jako . Poté se část výstupu produkovaného věšteckem transformuje pomocí další Hadamardovy transformace. Nakonec je provedeno měření celkového výsledného kvantového stavu. Během tohoto měření získáme n-bitové řetězce, , zmíněno v předchozím pododdíle.
Simonův algoritmus lze považovat za iterativní algoritmus (který využívá kvantový obvod) následovaný (případně) klasickým algoritmem k nalezení řešení lineárního systému rovnic.
Simonův algoritmus
V této části je podrobně vysvětlena každá část Simonova algoritmu. Může být užitečné podívat se na obrázek Simonova kvantového obvodu výše při čtení každé z následujících podsekcí.
Vstup
Simonův algoritmus začíná vstupem , kde je kvantový stav s nuly.
(Symbol je typický symbol používaný k označení tenzorový produkt. Aby nedošlo k přeplnění notace, symbolu je někdy vynechán: například v předchozí větě je ekvivalentní k . V tomto článku se (často) používá k odstranění nejednoznačnosti nebo k předcházení nejasnostem.)
Příklad
Například, pokud , pak je počáteční vstup
- .
První Hadamardova transformace
Poté se vstup (jak je popsán v předchozí podkapitole) transformuje pomocí a Hadamardova transformace. Konkrétně Hadamardova transformace (dále jen tenzorový produkt lze použít i na matice) se použije na první qubits, tedy do „částečného“ stavu , takže složený stav po této operaci je
kde označuje libovolný n-bitový řetězec (tj. součet je přes jakýkoli n-bitový řetězec). Termín lze ze součtu započítat, protože na tom nezávisí (tj. je to konstanta vzhledem k ), a .
Příklad
Předpokládejme (znovu) , pak je vstup a Hadamardova transformace je
Pokud nyní použijeme na první , tj. státu
získáváme
Abychom získali konečný složený kvantový stav, můžeme nyní tenzorovat součin s , to je
Věštec
Potom zavoláme věštbu nebo černou skříňku ( na obrázku výše) pro výpočet funkce na transformovaném vstupu , získat stát
Druhá Hadamardova transformace
Poté použijeme Hadamardovu transformaci do států prvního qubits státu , získat
kde může být nebo , záleží na , kde , pro . Například, pokud a , pak , což je sudé číslo. V tomto případě tedy , a je vždy nezáporné číslo.
Intuici za touto inverzní Hadamardovou transformací, která se zde používá, lze nalézt na Učební poznámky CMU
Pojďme nyní přepsat
jak následuje
Tato manipulace bude vhodná k pochopení vysvětlení v následujících částech. Pořadí součtů bylo obráceno.
Měření
Po provedení všech dříve popsaných operací se na konci obvodu a měření se provádí.
Nyní existují dva možné případy, které musíme zvážit samostatně
- nebo
- , kde .
První případ
Nejprve analyzujme (speciální) případ , což znamená, že je (podle požadavku) a jedna ku jedné funkce (jak je vysvětleno výše v „popisu problému“).
Mějte na paměti, že kvantový stav před měřením je
Nyní pravděpodobnost, že výsledky měření budou v každém řetězci je
To vyplývá z
protože dva vektory se liší pouze v pořadí jejich záznamů, vzhledem k tomu je jedna ku jedné.
Hodnota pravé strany, to znamená
je snáze vidět .
Takže kdy , výsledek je prostě a rovnoměrně rozloženo -bitový řetězec.
Druhý případ
Pojďme nyní analyzovat případ , kde . V tomto případě, je funkce dvou na jednoho, to znamená, že existují dva vstupy, které se mapují na stejný výstup .
Analýza provedená v prvním případě je stále platná pro tento druhý případ, tj. Pravděpodobnost měření daného řetězce stále lze reprezentovat jako
V tomto druhém případě však stále musíme zjistit, o jakou hodnotu jde je. Podívejme se proč v následujících vysvětleních.
Nechat , obraz uživatele . Nechat (tj. je nějaký výstup funkce ), pak pro každého , existuje jeden (a pouze jeden) , takový, že ; navíc máme také , což odpovídá (přehled tohoto konceptu naleznete výše v části „popis problému“).
Proto máme
Vzhledem k tomu , pak můžeme přepsat koeficient jak následuje
Vzhledem k tomu , pak můžeme dále napsat výše uvedený výraz jako
Tak, lze dále psát jako
Liché číslo
Teď když je tedy liché číslo . V tom případě,
V důsledku toho máme
Vzhledem k tomu , pak nikdy nemáme tento případ, tedy žádný řetězec je v tomto případě vidět (po měření).
(To je případ, kdy máme ničivé rušení.)
Sudé číslo
Pokud místo toho je sudé číslo (např. nula) . V tom případě,
Takže máme
Je případ konstruktivní interference,
Stručně řečeno, pro tento druhý případ máme následující pravděpodobnosti