Problem Simona

W teorii złożoności obliczeniowej i obliczeniach kwantowych problem Simona jest problemem obliczeniowym , który, jak udowodniono, jest rozwiązywany wykładniczo szybciej na komputerze kwantowym niż na komputerze klasycznym (czyli tradycyjnym). Algorytm kwantowy rozwiązujący problem Simona, zwykle nazywany algorytmem Simona , posłużył jako inspiracja dla algorytmu Shora . Oba problemy są szczególnymi przypadkami problemu abelowej ukrytej podgrupy , o którym obecnie wiadomo, że ma wydajne algorytmy kwantowe.

Problem jest osadzony w modelu złożoności drzewa decyzyjnego lub złożoności zapytań i został wymyślony przez Daniela Simona w 1994 roku. Simon przedstawił algorytm kwantowy , który rozwiązuje problem Simona wykładniczo szybciej i z wykładniczo mniejszą liczbą zapytań niż najlepszy klasyczny algorytm probabilistyczny (lub deterministyczny). W szczególności algorytm Simona wykorzystuje liniową liczbę zapytań, a każdy klasyczny algorytm probabilistyczny musi wykorzystywać wykładniczą liczbę zapytań.

Ten problem daje wyrocznię separację między klasami złożoności BPP (klasyczna złożoność zapytania z ograniczonym błędem) i BQP (złożoność zapytania kwantowego z ograniczonym błędem). Jest to ta sama separacja, którą algorytm Bernsteina – Vaziraniego , i różni się od separacji zapewnianej przez algorytm Deutscha – Jozsy , który oddziela P i EQP . W przeciwieństwie do algorytmu Bernsteina – Vaziraniego , separacja algorytmu Simona jest wykładnicza .

Ponieważ ten problem zakłada istnienie wysoce ustrukturyzowanej wyroczni „czarnej skrzynki”, aby osiągnąć jego przyspieszenie, problem ten ma niewielką wartość praktyczną. Jednak bez takiej wyroczni nie można łatwo udowodnić przyspieszeń wykładniczych, ponieważ udowodniłoby to, że P różni się od PSPACE .

Opis problemu

Biorąc pod uwagę funkcję (zaimplementowaną przez czarną skrzynkę lub wyrocznię) obietnicą, dla ,

wtedy i tylko wtedy, gdy ,

gdzie XOR. Celem jest zidentyfikowanie jak najmniej zapytań do . Zauważ to

wtedy i tylko wtedy, gdy

Ponadto, dla niektórych i w , wyjątkowy (nie równy ) wtedy i tylko wtedy, gdy . Oznacza to, że dwa do jednego, gdy i fa { jeden do jednego , gdy . również tak, że implikuje , co oznacza, że

co pokazuje, jak .


Powiązanym sformułowaniem problemu decyzyjnego problemu Simona jest rozróżnienie, kiedy jest jeden do jednego), a kiedy ( jest do jednego)

Przykład

Na przykład, jeśli , to następująca funkcja jest przykładem funkcji, która spełnia wymaganą i właśnie wymienioną właściwość: n = 3 {\ displaystyle n = 3}

000 101
001 010
010 000
011 110
100 000
101 110
110 101
111 010

W tym przypadku (czyli rozwiązanie). Można łatwo zweryfikować, że każde wyjście , a dwa łańcuchy wejściowe odpowiadające dowolnemu danemu wyjściu mają bitowy XOR równy .

przykład ciągi wejściowe i są odwzorowywane (przez sam ciąg . i . Jeśli zastosujemy XOR do 010 i 100 otrzymamy 110, czyli

można również zweryfikować za pomocą ciągów wejściowych 001 i 111, które są odwzorowane (przez f) na ten sam ciąg wyjściowy 010. Jeśli zastosujemy XOR do 001 i 111, otrzymamy 110, to znaczy . samo rozwiązanie, wcześniej.

W tym przykładzie funkcja f jest rzeczywiście funkcją dwa do jednego, gdzie .

Problematyczna twardość

Intuicyjnie jest to bardzo trudny problem do rozwiązania w „klasyczny” sposób, nawet jeśli zastosuje się losowość i zaakceptuje małe prawdopodobieństwo błędu. Intuicja stojąca dość prosta: jeśli chcesz rozwiązać problem , musisz znaleźć dwa różne dane wejściowe, których . Funkcja niekoniecznie ma jakąkolwiek strukturę które pomogłyby nam znaleźć dwa takie dane wejściowe: dokładniej, możemy dowiedzieć się czegoś o wtedy, gdy dla dwóch różnych danych wejściowych otrzymamy ten sam wynik. W każdym razie musielibyśmy zgadnąć na daje taki sam wynik, jak w przypadku problemu z urodzinami . Ponieważ klasycznie znaleźć s sprawdzenia Simona polega na znalezieniu s przy użyciu mniejszej liczby niż ta klasyczna metoda

Algorytm Simona

Obwód kwantowy reprezentujący/implementujący algorytm Simona

Algorytm jako całość wykorzystuje ten podprogram w następujących dwóch krokach:

  1. Uruchom podprogram kwantowy oczekiwaną aby uzyskać listę liniowo łańcuchów .
  2. Każdy spełnia układ równań, który tworzy, aby uzyskać .

Podprogram kwantowy

Obwód kwantowy (patrz rysunek) jest implementacją kwantowej części algorytmu Simona. Podprogram kwantowy algorytmu wykorzystuje transformatę Hadamarda

gdzie , gdzie oznacza XOR .


Po pierwsze, algorytm rozpoczyna się od dwóch rejestrów, zainicjowanych jako . Następnie stosujemy transformatę Hadamarda do pierwszego rejestru, który daje stan

wyrocznię, uzyskać

.

Zastosuj kolejną transformatę Hadamarda do pierwszego rejestru. To stworzy państwo

Na koniec mierzymy pierwszy rejestr (algorytm działa również wtedy, gdy drugi rejestr jest mierzony przed pierwszym, ale jest to niepotrzebne). Prawdopodobieństwo pomiaru stanu jest

Wynika to z faktu, że obliczenie wielkości tego wektora i podniesienie go do kwadratu sumuje wszystkie prawdopodobieństwa wszystkich możliwych pomiarów drugiego rejestru, który musi mieć pierwszy rejestr jako . Nasz pomiar ma dwa przypadki:
  1. i jest jeden do jednego.
  2. i to dwa do jednego.

W pierwszym przypadku od

ponieważ w tym przypadku } n , co oznacza, że ​​sumowanie odbywa się po każdym wektorze bazowym. istnieją dwa ciągi takie że , gdzie . Tak możemy napisać
Ponadto, ponieważ wiemy, że , wiemy, że i tak dalej
To wyrażenie jest teraz łatwe do oszacowania. Przypomnijmy, że mierzymy . Kiedy jot , to wyrażenie to zostanie ocenione jako kiedy , to wyrażenie to być .

Tak więc, zarówno gdy jak i kiedy , nasz zmierzony spełnia .

Klasyczna obróbka końcowa

uzyskamy liniowo każdy spełnia . W ten sposób możemy skutecznie rozwiązać ten układ równań klasycznie, aby znaleźć .

Prawdopodobieństwo, że są liniowo niezależne, wynosi co najmniej

rozwiążemy układ równań i stworzymy rozwiązanie , możemy sprawdzić, czy . to wiemy ponieważ . Jeśli jest tak, że , oznacza to, że i jest jeden do jednego.

Możemy powtarzać algorytm Simona stałą liczbę razy, aby arbitralnie zwiększyć prawdopodobieństwo sukcesu, zachowując jednocześnie tę samą złożoność czasową.

Jawne przykłady algorytmu Simona dla kilku kubitów

Rozważ najprostszą instancję algorytmu, gdzie . W tym przypadku ewolucja stanu wejściowego przez bramkę Hadamarda i wyrocznię daje stan (aż do renormalizacji):

Jeśli znaczy , pomiar drugiego rejestru zawsze i zawsze powoduje załamanie pierwszego rejestru do stanu (aż do renormalizacji):

Zatem zastosowanie Hadamarda i zmierzenie pierwszego rejestru zawsze daje wynik . Z drugiej strony, jeśli do jednego, to znaczy , rejestru po drugim Hadamarda może dać oba i z równym prawdopodobieństwem.

Odzyskujemy pomiarów, sprawdzając, czy zawsze mierzyliśmy , w takim przypadku lub zmierzyliśmy oba i z równym prawdopodobieństwem, w takim przypadku wnioskujemy, że . Ten schemat się nie powiedzie, jeśli , ale mimo to zawsze znaleźliśmy wynik , ale prawdopodobieństwo tego zdarzenia wynosi liczbą pomiarów, a zatem może być wykładniczo małe zwiększając statystyki.

Rozważmy teraz przypadek z . Wynikiem początkowej części algorytmu jest stan (do renormalizacji):,

Jeśli , co oznacza, , to znalezienie w drugim rejestrze zawsze zwija pierwszy rejestr do , dla wszystkich . Innymi i mierząc pierwszy rejestr, cztery wyniki w ten sposób

Załóżmy z drugiej strony , na przykład . Następnie pomiar w drugim rejestrze zwija pierwszy rejestr do stanu . A bardziej ogólnie, mierzenie daje rejestrze . Zastosowanie bramek Hadamada i pomiar na pierwszym rejestrze może więc dać wynik i z równymi prawdopodobieństwami.

innych przypadków: jeśli , możliwe wyniki to { , podczas gdy jeśli możliwe wyniki to i , zgodne z reguła omówiona w przypadku ogólnym.

Aby odzyskać więc tylko rozróżnić te cztery przypadki, zbierając wystarczającą liczbę statystyk, aby zapewnić, że prawdopodobieństwo pomylenia jednego rozkładu prawdopodobieństwa wyniku z innym jest wystarczająco małe.

Złożoność

Algorytm Simona wymaga klasyczny wymagałby co najmniej zapytania. Wiadomo również, że algorytm Simona jest optymalny w tym sensie, że rozwiązania tego problemu wymaga .

Zobacz też