Wprowadzenie :
Problem kolizji najczęściej odnosi się do wersji 2 do 1, którą opisał Scott Aaronson w swojej rozprawie doktorskiej. Zakładając, że jest równe i funkcja f : { 1 , . . . , N } → { 1 , . . . , n } wiemy z góry, że albo f wynosi 1 do 1, albo 2 do 1. Możemy zadawać pytania tylko o wartość f ( i ) dla dowolnego i ∈ { 1 , 2 ,nf:{1,...,n}→{1,...,n}ff(i) . Następniepojawia siępytanie, ile zapytań musimy zadać, aby z całą pewnością ustalić, czy f jest 1 do 1, czy 2 do 1.i∈{1,2,...,n}f
Deterministyczne rozwiązanie wersji 2-do-1 wymaga zapytań, a ogólnie rozróżnienie funkcji r-to-1 od funkcji 1-do-1 wymaga n / r + 1 zapytań.n/2+1n/r+1
Deterministyczne klasyczne rozwiązanie :
Jest to proste zastosowanie zasady szufladki: jeśli funkcja jest r-do-1, to po zapytaniach mamy gwarancję znalezienia kolizji. Jeśli funkcja ma wartość od 1 do 1, kolizja nie istnieje. Jeśli będziemy mieli pecha, zapytania n / r mogą zwrócić różne odpowiedzi. Tak n / R + 1 zapytania są konieczne.n/r+1n/rn/r+1
Randomizowane klasyczne rozwiązanie :
Jeśli pozwolimy na losowość, problem będzie łatwiejszy. Według paradoksu urodzinowego, jeśli wybieramy (odrębne) zapytania losowo, wówczas z dużym prawdopodobieństwem znajdujemy kolizję w dowolnej stałej funkcji 2 do 1 po
zapytania.Θ(n−−√)
Rozwiązanie Quantum BHT :
Intuicyjnie algorytm łączy przyspieszenie pierwiastka kwadratowego z
paradoksu urodzinowego
przy użyciu (klasycznej) losowości z przyspieszeniem pierwiastka kwadratowego z algorytmu Grovera (kwantowego).
Pierwszy wejścia do F są wybierane losowo i F są odpytywane w każdym z nich. Jeśli między tymi danymi wejściowymi występuje kolizja, zwracamy kolidującą parę danych wejściowych. W przeciwnym razie wszystkie te dane wejściowe zostaną odwzorowane na różne wartości przez f . Następnie algorytm Grovera jest używany do znalezienia nowego wejścia do f, które koliduje. Ponieważ tylko
n 2 / 3 takie środki do f algorytm Grover może odnaleźć jeden (jeżeli istnieje), dokonując jedynie
O ( √n1/3ffffn2/3fzapytania dof.O(n2/3−−−−√)=O(n1/3)f