Na stronie Wikipedii dotyczącej algorytmu Grovera wspomniano, że:
„Algorytm Grovera można również wykorzystać do oszacowania średniej i mediany zbioru liczb”
Do tej pory wiedziałem tylko, jak można go wykorzystać do przeszukiwania bazy danych. Ale nie jestem pewien, jak wdrożyć tę technikę, aby oszacować średnią i medianę zbioru liczb. Co więcej, nie ma cytatu (o ile zauważyłem) na tej stronie, która wyjaśnia technikę.
algorithm
grovers-algorithm
Sanchayan Dutta
źródło
źródło
Odpowiedzi:
Pomysł oszacowania średniej jest mniej więcej następujący:
Dla każdego który daje dane wyjściowe w liczbach rzeczywistych, zdefiniuj przeskalowany F ( x ), który daje dane wyjściowe w zakresie od 0 do 1. Naszym celem jest oszacowanie średniej F ( x ) .fa( x ) fa( x ) fa( x )
Zdefiniuj jednostkowy którego operacją jest U a : | 0 ⟩ | 0 ↦ ↦ 1Uza Ważne jest, aby pamiętać, że ten unit jest łatwy do wdrożenia. Zaczynasz od transformacji Hadamarda w pierwszym rejestrze, wykonujesz obliczeniaf(x)w rejestrze ancilla, używasz go do implementacji kontrolowanego obrotu drugiego rejestru, a następnie odliczasz rejestr ancilla.
Określić jednolity .G = Uza( I - 2 | 0 ⟩ ⟨ 0 | ⊗ | 0 ⟩ ⟨ 0 | ) U†zaI ⊗Z
Począwszy od stanu użyj G podobnie jak byłoby użyć Grover iterator oszacować liczbę rozwiązań problemu wyszukiwania.Uza| 0⟩ | 0⟩ sol
Główną częścią tego algorytmu jest wzmocnienie amplitudy, jak opisano tutaj . Główną ideą jest to, że możesz zdefiniować dwa stany a to określa podprzestrzeń dla ewolucji. Stan początkowy toUa| 0⟩| 0⟩=( √
Nawiasem mówiąc, jest to interesujące w porównaniu z „mocą jednego czystego kubita”, znanego również jako DQC1. Tam, jeśli zastosujesz do IUza , prawdopodobieństwo otrzymania 1 odpowiedzi jest dokładnie takie samo jak w przypadku wersji nieprzyspieszonej i daje oszacowanie średniej.ja2)n⊗ | 0 ⟩ ⟨ 0 |
Oczywiście pomijam niektóre szczegóły dotyczące dokładnych czasów działania, szacunków błędów itp.
źródło