🔍 Algorytm wyszukiwania Grovera
Przejdź krok po kroku przez wzmacnianie amplitudy Grovera na rejestrze 4-kubitowym (N=16). Fazy wyroczni i dyfuzji na żywym histogramie. O(√N)≈3 iteracje wobec klasycznego O(N).
O tej symulacji
Ta symulacja krok po kroku przedstawia kwantowy algorytm wyszukiwania Grovera na rejestrze N = 16 stanów bazowych. Układ zaczyna w jednorodnej superpozycji, w której każda amplituda wynosi 1/√16. Każda iteracja stosuje wyrocznię (oracle), która odwraca znak amplitudy oznaczonego celu, a następnie operator dyfuzji, który odbija wszystkie amplitudy względem ich średniej (D = 2|s⟩⟨s| − I). Razem wykonują one obrót, który stopniowo koncentruje prawdopodobieństwo na celu. Wybierasz element docelowy z 16-elementowej listy rozwijanej, a następnie używasz Step, aby wykonać jedną iterację Grovera, Auto, aby uruchomić iteracje automatycznie, i Reset, aby wrócić do stanu jednorodnego. Histogram amplitud pokazuje rosnący słupek celu, podczas gdy pozostałe maleją, osiągając szczyt po około π/4·√N ≈ 3 iteracjach. To kwadratowe przyspieszenie O(√N) leży u podstaw szybszego wyszukiwania siłowego, kryptoanalizy i zadań przeszukiwania baz danych na sprzęcie kwantowym.
🔬 Co pokazuje
Algorytm Grovera wykorzystuje dwie operacje na iterację: wyrocznię, która odwraca znak amplitudy celu, oraz operator dyfuzji, który odbija amplitudy względem ich średniej. Po ~√N iteracjach prawdopodobieństwo celu zbliża się do 1.
🎮 Jak korzystać
Wybierz element docelowy w 16-elementowym rejestrze. Przechodź krok po kroku przez iteracje i obserwuj histogram amplitud. Słupek celu rośnie, podczas gdy pozostałe maleją. Porównaj kwantowe O(√N) = 3 iteracje z klasycznym O(N) = 16.
💡 Czy wiesz, że?
Algorytm Grovera zapewnia dowiedzione optymalne kwadratowe przyspieszenie dla wyszukiwania nieustrukturyzowanego — żaden algorytm kwantowy nie może zrobić tego lepiej. Dla bazy danych złożonej z 1 miliona elementów znajduje odpowiedź w ~1000 zapytaniach zamiast 500 000.
Najczęściej zadawane pytania
Co pokazuje ta symulacja?
Wizualizuje algorytm Grovera przeszukujący nieustrukturyzowany rejestr N = 16 elementów w poszukiwaniu jednego oznaczonego celu. Amplituda każdego elementu jest rysowana jako słupek, a słupek celu rośnie w kierunku niemal pewności w miarę stosowania kolejnych iteracji Grovera.
Jak działa algorytm Grovera?
Każda iteracja łączy dwa kroki. Wyrocznia odwraca znak amplitudy celu, oznaczając go; operator dyfuzji następnie odbija wszystkie amplitudy względem ich średniej. To „odwrócenie względem średniej” podnosi cel, obniżając resztę, obracając wektor stanu w kierunku rozwiązania.
Co robią elementy sterujące?
Lista rozwijana celu wybiera, który z 16 elementów (pokazanych jako |0000⟩ do |1111⟩) jest oznaczonym rozwiązaniem. Step wykonuje jedną iterację wyrocznia+dyfuzja, Auto uruchamia iteracje co 0,9 sekundy, a Reset przywraca jednorodną superpozycję 1/√16 z zerową liczbą iteracji.
Ile iteracji jest optymalnych?
Optymalna liczba to w przybliżeniu π/4·√N. Dla N = 16 zaokrągla się to do 3 iteracji, przy których prawdopodobieństwo celu jest bliskie maksimum. Pasek informacyjny wyświetla to jako „π/4·√16 ≈ 3”.
Dlaczego jest szybszy niż wyszukiwanie klasyczne?
Klasycznie przeszukanie nieposortowanej listy N elementów wymaga średnio około N/2 porównań (8 dla N = 16). Grover znajduje cel w zaledwie O(√N) iteracjach — kwadratowe przyspieszenie. Dla miliona elementów to około 1000 zapytań zamiast 500 000.
Co się stanie, jeśli będę kontynuować kroki poza optimum?
Iteracje Grovera to obrót, więc mogą go przekroczyć. Po punkcie optymalnym prawdopodobieństwo celu ponownie spada, gdy stan obraca się poza rozwiązanie. Symulacja oznacza to jako „nadmierny obrót”, pokazując, że więcej iteracji nie zawsze jest lepsze.
Czym jest operator dyfuzji?
Jest to macierz unitarna D = 2|s⟩⟨s| − I, gdzie |s⟩ to jednorodna superpozycja. W praktyce odbija każdą amplitudę względem średniej wszystkich amplitud, co wzmacnia każdą wartość, którą wyrocznia zepchnęła poniżej średniej — czyli oznaczony cel.
Czy to fizycznie dokładny model?
Arytmetyka amplitud jest dokładna dla wyidealizowanego, bezszumowego komputera kwantowego z rzeczywistymi amplitudami, co jest wszystkim, czego wymaga algorytm Grovera. Pomija rzeczywiste efekty, takie jak dekoherencja, błędy bramek i kolaps pomiarowy, więc jest to wierny model matematyczny, a nie emulacja sprzętu.
Dlaczego wszystkie amplitudy są równe na początku?
Algorytm zaczyna od umieszczenia rejestru w jednorodnej superpozycji, zwykle za pomocą bramek Hadamarda, więc każdy element ma amplitudę 1/√N = 1/4 i prawdopodobieństwo 1/16 (6,25%). Ten równy punkt startowy odzwierciedla brak wcześniejszej wiedzy o tym, gdzie znajduje się cel.
Czy algorytm Grovera można ulepszyć?
Nie. Dla wyszukiwania nieustrukturyzowanego skalowanie O(√N) jest dowiedzione optymalne; żaden algorytm kwantowy nie może znaleźć oznaczonego elementu przy mniejszej liczbie zapytań do wyroczni. Ta optymalność, udowodniona przez Bennetta, Bernsteina, Brassarda i Vaziraniego, czyni Grovera punktem odniesienia dla wyszukiwania kwantowego.
Jakie są zastosowania w świecie rzeczywistym?
Wzmacnianie amplitudy w stylu Grovera przyspiesza zadania brute-force: przeszukiwanie nieustrukturyzowanych baz danych, odwracanie funkcji, rozwiązywanie problemów ograniczeń i SAT oraz atakowanie kryptografii symetrycznej (zmniejszając efektywną siłę klucza o połowę), dlatego wytyczne postkwantowe zalecają większe rozmiary kluczy.