Podsumowanie
- Istnieje teoria złożoności problemów wyszukiwania (znana również jako problemy relacji). Teoria ta obejmuje klasy o nazwie FP , FNP i FBQP, które skutecznie rozwiązują problemy wyszukiwania przy użyciu różnego rodzaju zasobów.
- Na podstawie problemów wyszukiwania możesz także zdefiniować problemy decyzyjne, co pozwala powiązać problemy wyszukiwania ze zwykłymi klasami P , NP i BQP .
- Niezależnie od tego, czy rozważasz wersję wyszukiwania wersji decyzji problemu, sposób, w jaki weźmiesz pod uwagę wkład do problemu wyszukiwania nieustrukturyzowanego, określi, jakie górne granice możesz nałożyć na jego złożoność.
Złożoność problemów w relacjach
Jak zauważasz, problem Grovera rozwiązuje problem wyszukiwania , który w literaturze o złożoności jest czasem znany również jako problem relacji . Oznacza to, że jest to następujący problem:
Struktura ogólnego problemu wyszukiwania.
Biorąc pod uwagę wejściowy i relację binarną R , znajdź y takie, które utrzymuje R ( x , y ) .xRyR(x,y)
Klasy złożoności FP i FNP są zdefiniowane w kategoriach takich problemów, gdzie szczególnie interesuje się przypadek, w którym ma długość co najwyżej funkcję wielomianową długości x , i gdzie relacja R ( x , y ) może sama w sobie być obliczana w czasie ograniczonym przez wielomian o długości ( x , y ) .yxR(x,y)(x,y)
W szczególności: przykład problemu „wyszukiwania w bazie danych”, do którego zwykle stosuje się wyszukiwanie Grovera, można opisać w następujący sposób.
Wyszukiwanie nieustrukturyzowane.
Biorąc pod uwagę wyrocznię wejściową takie, że O | ⟩ | b ⟩ = | ⟩ | b ⊕ f ( a ) ⟩ dla funkcji f : { 0 , 1 } m → { 0 , 1 } , znajdź y takie, że O | y ⟩ | 0 ⟩ = | y ⟩ | 1O : H⊗ m + 12)→ H.⊗ m + 12)O | ⟩| b⟩=| ⟩| b⊕f( a ) ⟩fa:{0,1}m→{0,1}y .O|y⟩|0⟩=|y⟩|1⟩
Tutaj sama wyrocznia jest wkładem do problemu: odgrywa rolę , a relacją, którą obliczamy, jest
R ( O , y )x
R(O,y)≡[O|y⟩|0⟩=|y⟩|1⟩]≡[f(y)=1].
Załóżmy, że zamiast wyroczni mamy określone wejście które opisuje sposób obliczenia funkcji f , możemy następnie rozważyć, do której klasy złożoności należy ten problem. Jak wskazano , odpowiednia klasa złożoności, którą otrzymujemy, zależy od sposobu wprowadzania danych wejściowych.xfpyramids
Załóżmy, że funkcja wejściowa jest zapewniona jako baza danych (jak czasami opisywany jest problem), gdzie każda pozycja w bazie danych ma pewną długość . Jeśli n oznacza długość łańcucha x używane do opisania całą bazę danych , baza danych jest następnie N = n / £ -l pozycji. Następnie można wyczerpująco przeszukać całą bazę danych, sprawdzając kolejno każdy z N wpisów i zatrzymać, jeśli znajdziemy wpis y taki, że f ( y ) = 1 . Załóżmy, że każde zapytanie do bazy danych wymaga czegoś takiego jak O (ℓnxN=n/ℓNyf(y)=1 , ta procedura zatrzymuje się w czasie O ( N log N ) ⊆ O ( n log n ) , więc problem występuje wFP.O(logN)⊆O(logn)O(NlogN)⊆O(nlogn)
Zakładając, że wyszukiwanie bazy danych można przeprowadzić w spójnej superpozycji, algorytm Grovera pozwala na ten problem w FBQP . Jednak, ponieważ FP ⊆ FBQP , klasyczne wyczerpujące poszukiwanie dowodzi również, że ten problem dotyczy FBQP . Wszystko, co uzyskujemy (do współczynników logu), to kwadratowe przyspieszenie dzięki oszczędności w liczbie zapytań do bazy danych.
Załóżmy, że funkcja wejściowa jest zwięźle opisana przez algorytm wielomianowy, który przyjmuje specyfikację oraz argument y ∈ { 0 , 1 } mi oblicza O : H m + 1 2x∈{0,1}ny∈{0,1}mO:Hm+12→Hm+12w standardowym stanie , w którym m może być znacznie większa niż Ohm ( log n ) . Przykładem może być gdzie x określa postać CNF jakiejś funkcji boolowskiej f : { 0 , 1 } m → { 0 , 1 } dla m ∈ O ( n ) , w którym to przypadku możemy efektywnie ocenić f ( y ) na wejściu y ∈|y⟩|b⟩mΩ(logn)xf:{0,1}m→{0,1}m∈O(n)f(y) tym samym wydajnie oceni O na standardowych stanach bazowych. To stawia problem wFNP.y∈{0,1}mO
Biorąc pod uwagę procedurę oceny z ( x , y ) w czasie O ( p ( n ) ) dla n = | x | , Algorytm Grovera rozwiązuje problem nieustrukturyzowanego poszukiwania O w czasie O ( p ( n ) √f(y)(x,y)O(p(n))n=|x|O⊆O(p(n)√O(p(n)2m−−−√) . To nie jest wielomianemn, a więc nie wystarczy umieścić ten problem wFBQP: Tylko uzyskania kwadratowego przyspieszenie - mimo to nadal jest potencjalnie ogromne oszczędności czasu obliczeń, przy założeniu, że korzyści, które zapewnia Algorytm Grovera nie jest stracone na narzut wymagany do obliczeń kwantowych odpornych na uszkodzenia.⊆O(p(n)2n−−√)n
W obu przypadkach, złożoność jest określana w kategoriach długości łańcucha x *, która określa, jak obliczyć wyroczni O . W przypadku, gdy x reprezentuje tablicę przeglądową, mamy N = n / ℓ , w którym to przypadku wydajność jako funkcja N jest podobna do wydajności jako funkcja n ; ale w przypadku, gdy x zwięźle określa O , a N ∈ O ( 2 n / 2 ) , wiadomość z dużym obrazem, że Grover rozwiązuje problem w OnxOxN=n/ℓNnxON∈O(2n/2)zapytania zasłaniają drobiazgową wiadomość, że ten algorytm wciąż ma czas wykładniczy dla komputera kwantowego.O(N−−√)
Złożoność decyzji wynikająca z problemów w relacjach
Istnieje prosty sposób na uzyskanie problemów decyzyjnych z problemów relacji, co jest dobrze znane z teorii problemów NP- zupełnych : przekształcenie problemu wyszukiwania na pytanie o istnienie prawidłowego rozwiązania.
Wersja decyzyjna ogólnego problemu wyszukiwania.
Biorąc pod uwagę wejście i relację binarną R , określ, czy ∃ y : R ( x , y ) jest ważne.xR∃y:R(x,y)
Klasę złożoności NP można zasadniczo zdefiniować w kategoriach takich problemów, gdy relację można skutecznie obliczyć: najsłynniejsze problemy z NP -zupełnością (CNF-SAT, HAMCYCLE, 3-COLORING) dotyczą jedynie istnienia prawidłowego rozwiązania skutecznie weryfikowalny problem w relacjach. To przejście od tworzenia rozwiązań do zwykłego stwierdzania istnienia rozwiązań pozwala nam również opisywać wersje faktoryzacji liczb całkowitych, które znajdują się w BQP (pytając, czy istnieją czynniki nietrywialne, zamiast pytać o wartości czynników nietrywialnych) .R
W przypadku wyszukiwania nieustrukturyzowanego, która klasa złożoności najlepiej opisuje problem, zależy od struktury danych wejściowych. Ustalenie, czy istnieje rozwiązanie problemu relacji, można sprowadzić do znalezienia i zweryfikowania rozwiązania tego problemu. Zatem w przypadku, gdy dane wejściowe są ciągiem określającym wyrocznię jako tabelę przeglądową, problem nieustrukturyzowanego wyszukiwania występuje w P ; i bardziej ogólnie, jeśli x określa skuteczny sposób oceny wyroczni, problem dotyczy NP . Możliwe jest również, że istnieje sposób ustalenia, czy istniejexx rozwiązanie dla wyszukiwania nieustrukturyzowanego, które dokonuje tego bez faktycznego znalezienia rozwiązania, chociaż ogólnie nie jest jasne, jak to zrobić w sposób, który zapewniłby przewagę nad faktycznym znalezieniem rozwiązania.
Złożoność Oracle
Mam widoczny był przesuwając się od rozmowy o wyroczni , do sposobów, które wprowadzisz x mogą być używane do określenia (i oceny) Wyrocznia O . Ale oczywiście głównym sposobem, w jaki bierzemy pod uwagę algorytm Grovera, jest wyrocznia, w której ocena wyroczni zajmuje jeden krok czasowy i nie wymaga sprecyzowania. Jak oceniamy złożoność problemu w tym przypadku?OxO
W tym przypadku mamy do czynienia ze relatywizowanym modelem obliczeń, w którym ocena tej jednej konkretnej wyroczni (która, pamiętaj, jest wkładem do problemu) jest operacją prymitywną. Wyrocznia jest zdefiniowana dla wszystkich rozmiarów wejściowych: aby wziąć pod uwagę problem związany z wyszukiwaniem ciągów o długości n , musisz określić, że zastanawiasz się, w jaki sposób wyrocznia O działa na dane wejściowe o długości n , co ponownie byłoby możliwe, biorąc pod uwagę długość ciąg logiczny x przyjęty jako dane wejściowe. W takim przypadku sposób przedstawienia problemu może wyglądać następująco.OnOnx
Niestrukturalnych Szukaj względem Oracle . O
Przy danych wejściowych długości n ,x = 11 ⋯ 1n
znajdź (problem z relacją) luby∈ { 0 , 1 }n
ustalić, czy istnieje (problem decyzyjny)y∈ { 0 , 1 }n
takie, że .O|y⟩|0⟩=|y⟩|1⟩
Ten problem występuje w (w przypadku problemu decyzyjnego) lub F N P O (w przypadku problemu relacji), w zależności od wersji problemu, którą chcesz rozważyć. Ponieważ algorytm Grover nie jest algorytmem wielomianowego czas, problem ten nie jest znany w B Q P O lub F B, Q, P O . W rzeczywistości możemy powiedzieć coś mocniejszego, co wkrótce zobaczymy.NPOFNPOBQPOFBQPO
Powodem, dla którego omówiłem rzeczywisty, oparty na wyroczni opis Nieustrukturyzowanego Wyszukiwania, było dotknięcie twojego punktu złożoności, a w szczególności kwestia rozmiaru danych wejściowych . Złożoność problemów zależy w dużej mierze od sposobu określania danych wejściowych: jako zwięzłej specyfikacji (w przypadku sposobu określania funkcji w CNF-SAT), jako wyraźnej specyfikacji (w przypadku tabeli przeglądowej dla funkcja), a nawet jako liczba całkowita określona w unarnym, tj. jako długość ciągu 1s jak powyżej (jak w „Wyszukiwanie nieustrukturyzowane względem Oracle ” powyżej).O
Jak widzimy w tym drugim przypadku, jeśli traktujemy dane wejściowe tylko jako wyrocznię, sytuacja wygląda nieco nieintuicyjnie iz pewnością uniemożliwia rozmowę o sposobach realizacji „bazy danych”. Ale jedną z zalet rozważenia relatywizowanej wersji problemu z rzeczywistą wyrocznią jest to, że możemy udowodnić rzeczy, których w przeciwnym razie nie mamy pojęcia, jak to udowodnić. Gdybyśmy mogli udowodnić, że wersja decyzyjna zwięzłego problemu nieustrukturyzowanego wyszukiwania była w BQP , moglibyśmy osiągnąć ogromny przełom w praktycznych obliczeniach; i gdybyśmy mogli udowodnić, że problem decyzyjny nie był w rzeczywistości w BQP , to pokazalibyśmy, że P ≠ PSPACE, co byłoby ogromnym przełomem w złożoności obliczeniowej. Nie wiemy też, jak to zrobić. Ale dla zrelatywizować problemu, możemy pokazać, że istnieją wyrocznie , dla których wersja decyzja „niestrukturalnych Search względem O ” jest w N P O , ale nie w B Q P O . To pozwala nam pokazać, że chociaż obliczenia kwantowe są potencjalnie potężne, istnieją powody, aby oczekiwać, że BQP prawdopodobnie nie zawiera NP , i że w szczególności wersja powiązana wyszukiwania nieustrukturyzowanego prawdopodobnie nie zostanie zawarta w FBQP bez narzucania silnych ograniczeń dotyczących sposobu, w jaki wejście jest reprezentowane.OONPOBQPO
\text{}
do pisania nazw klas złożoności. Na przykład\text{NP}
lub\text{BQP}