Introducción :
El problema de colisión se refiere con mayor frecuencia a la versión 2 a 1 que fue descrita por Scott Aaronson en su tesis doctoral. Dado que es par y una función f : { 1 , . . . , N } → { 1 , . . . , n } sabemos de antemano que f es 1 a 1 o 2 a 1. Solo se nos permite hacer consultas sobre el valor de f ( i ) para cualquier i ∈ { 1 , 2 ,nF: { 1 , ... , N } → { 1 , . . . , n }FF( i ) . El problema luego pregunta cuántas consultas debemos hacer para determinar con certeza si f es 1 a 1 o 2 a 1.i ∈ { 1 , 2 , . . . , n }F
Resolver la versión 2-a-1 de manera determinista requiere consultas, y en general distinguir las funciones r-a-1 de las funciones 1-a-1 requiere n / r + 1 consultas.n/2+1n/r+1
Solución determinista clásica :
Esta es una aplicación directa del principio de casillero: si una función es r-a-1, entonces después de consultas, se garantiza que hemos encontrado una colisión. Si una función es 1 a 1, entonces no existe colisión. Si no tenemos suerte, entonces las consultas n / r podrían devolver respuestas distintas. Por lo tanto, n / r + 1 consultas son necesarias.n/r+1n/rn/r+1
Solución clásica aleatorizada :
Si permitimos la aleatoriedad, el problema es más fácil. Según la paradoja del cumpleaños, si elegimos consultas (distintas) al azar, entonces con alta probabilidad encontramos una colisión en cualquier función fija 2 a 1 después de
consultas.Θ(n−−√)
Solución Quantum BHT :
Intuitivamente, el algoritmo combina la aceleración de la raíz cuadrada de la paradoja del
cumpleaños
usando aleatoriedad (clásica) con la aceleración de la raíz cuadrada del algoritmo de Grover (cuántico).
En primer lugar, entradas a f se seleccionan al azar y f se consulta a todos ellos. Si hay una colisión entre estas entradas, entonces devolvemos el par de entradas en colisión. De lo contrario, todas estas entradas se asignan a valores distintos por f . Luego, el algoritmo de Grover se usa para encontrar una nueva entrada para f que colisiona. Dado que sólo hay
n 2 / 3 tales entradas a f , el algoritmo de Grover puede encontrar uno (si existe) haciendo solamente
O ( √n1/3ffffn2/3fO(n2/3−−−−√)=O(n1/3)f
El algoritmo de Grover también se usa ampliamente en criptografía cuántica. Se puede utilizar para resolver problemas como el problema del logaritmo trascendental, el problema de la búsqueda de raíces polinómicas, etc.
fuente
El algoritmo de Grover se puede usar para resolver cualquier problema de optimización numérica más rápido que la búsqueda de fuerza bruta, porque cualquier problema de optimización se puede formular como un problema de búsqueda (donde está buscando una salida de función mayor / menor que alguna fijaMETRO dentro de cada ejecución, y repite para un número logarítmico de ejecuciones utilizando la búsqueda binaria para llegar al punto óptimo METRO ): https://epubs.siam.org/doi/abs/10.1137/040605072?journalCode=sjope8 .
De hecho, el algoritmo de Grover es el algoritmo cuántico más conocido para muchos problemas de optimización difíciles (como los que completan NP) que no tienen mucha estructura que sea capaz de un algoritmo clásico más inteligente que la búsqueda de fuerza bruta: https: // link.springer.com/chapter/10.1007/978-3-540-78773-0_67 .
fuente