En computación cuántica , el algoritmo de Grover , también conocido como algoritmo de búsqueda cuántica , es un algoritmo cuántico para búsqueda no estructurada que encuentra con alta probabilidad la entrada única a una función de caja negra que produce un valor de salida particular, utilizando soloevaluaciones de la función, dondees el tamaño del dominio de la función . Fue ideado por el científico informático indio - estadounidense Lov Grover en 1996. [ 1 ]
El problema análogo en computación clásica tendría una complejidad de consulta.(es decir, la función tendría que ser evaluada)veces: no hay mejor enfoque que probar todos los valores de entrada uno tras otro, lo que, en promedio, llevapasos). [ 1 ]
Charles H. Bennett , Ethan Bernstein, Gilles Brassard y Umesh Vazirani demostraron que cualquier solución cuántica al problema necesita evaluar la funciónveces, por lo que el algoritmo de Grover es asintóticamente óptimo . [ 2 ] Dado que los algoritmos clásicos para problemas NP-completos requieren exponencialmente muchos pasos, y el algoritmo de Grover proporciona como máximo una aceleración cuadrática sobre la solución clásica para la búsqueda no estructurada, esto sugiere que el algoritmo de Grover por sí solo no proporcionará soluciones de tiempo polinomial para problemas NP-completos (ya que la raíz cuadrada de una función exponencial sigue siendo una función exponencial, no una función polinomial). [ 3 ]
A diferencia de otros algoritmos cuánticos, que pueden proporcionar una aceleración exponencial sobre sus contrapartes clásicas, el algoritmo de Grover proporciona solo una aceleración cuadrática. Sin embargo, incluso una aceleración cuadrática es considerable cuandoes grande, y el algoritmo de Grover se puede aplicar para acelerar amplias clases de algoritmos. [ 3 ] El algoritmo de Grover podría descifrar por fuerza bruta una clave criptográfica simétrica de 128 bits en aproximadamente 2 64 iteraciones, o una clave de 256 bits en aproximadamente 2 128 iteraciones. Sin embargo, puede que no sea cierto que el algoritmo de Grover suponga un riesgo significativamente mayor para el cifrado que los algoritmos clásicos existentes. [ 4 ]
Aplicaciones y limitaciones
El algoritmo de Grover, junto con variantes como la amplificación de amplitud , puede utilizarse para acelerar una amplia gama de algoritmos. [ 5 ] [ 6 ] [ 7 ] En particular, los algoritmos para problemas NP-completos que contienen búsqueda exhaustiva como subrutina pueden acelerarse mediante el algoritmo de Grover. [ 6 ] El mejor algoritmo teórico actual, en términos de complejidad en el peor de los casos, para 3SAT es un ejemplo de ello. Los problemas genéricos de satisfacción de restricciones también experimentan aceleraciones cuadráticas con Grover. [ 8 ] Estos algoritmos no requieren que la entrada se proporcione en forma de oráculo, puesto que el algoritmo de Grover se aplica con una función explícita, por ejemplo, la función que comprueba que un conjunto de bits satisface una instancia de 3SAT. Sin embargo, no está claro si el algoritmo de Grover podría acelerar los mejores algoritmos prácticos para estos problemas.
El algoritmo de Grover también puede proporcionar aceleraciones demostrables para problemas de caja negra en complejidad de consulta cuántica , incluyendo la distinción de elementos [ 9 ] y el problema de colisión [ 10 ] (resuelto con el algoritmo de Brassard-Høyer-Tapp ). En este tipo de problemas, se trata la función oráculo f como una base de datos, y el objetivo es usar la consulta cuántica a esta función la menor cantidad de veces posible.
Criptografía
El algoritmo de Grover resuelve esencialmente la tarea de inversión de funciones . En términos generales, si tenemos una funciónque se puede evaluar en una computadora cuántica, el algoritmo de Grover nos permite calcularcuando se daEn consecuencia, el algoritmo de Grover proporciona amplias aceleraciones asintóticas a muchos tipos de ataques de fuerza bruta contra la criptografía de clave simétrica , incluidos los ataques de colisión y los ataques de preimagen . [ 11 ] Sin embargo, este no es necesariamente el algoritmo más eficiente, ya que, por ejemplo, el algoritmo rho de Pollard es capaz de encontrar una colisión en SHA-2 de forma más eficiente que el algoritmo de Grover. [ 12 ]
Limitaciones
El artículo original de Grover describía el algoritmo como un algoritmo de búsqueda en bases de datos, y esta descripción sigue siendo común. En esta analogía, la base de datos es una tabla con todas las salidas de la función, indexadas por la entrada correspondiente. Sin embargo, esta base de datos no se representa explícitamente. En su lugar, se invoca un oráculo para evaluar un elemento mediante su índice. Leer una base de datos completa elemento por elemento y convertirla a dicha representación puede llevar mucho más tiempo que la búsqueda de Grover. Para tener en cuenta estos efectos, el algoritmo de Grover puede considerarse como la resolución de una ecuación o la satisfacción de una restricción . En tales aplicaciones, el oráculo es una forma de verificar la restricción y no está relacionado con el algoritmo de búsqueda. Esta separación suele impedir las optimizaciones algorítmicas, mientras que los algoritmos de búsqueda convencionales a menudo dependen de dichas optimizaciones y evitan la búsqueda exhaustiva. [ 13 ] Afortunadamente, es posible una implementación rápida del oráculo de Grover para muchos problemas de satisfacción de restricciones y optimización. [ 14 ]
La principal barrera para implementar una mejora de velocidad a partir del algoritmo de Grover es que la mejora de velocidad cuadrática lograda es demasiado modesta para superar la gran sobrecarga de las computadoras cuánticas de corto plazo. [ 15 ] Sin embargo, las generaciones posteriores de computadoras cuánticas tolerantes a fallos con un mejor rendimiento de hardware podrían lograr estas mejoras de velocidad para casos prácticos de datos.
Descripción del problema
Como entrada para el algoritmo de Grover, supongamos que tenemos una función. En la analogía de la "base de datos no estructurada", el dominio representa los índices de una base de datos, ysi los datos queapunta a satisfacer el criterio de búsqueda. Además, asumimos que solo un índice satisfacey a esto lo llamamos índiceNuestro objetivo es identificar.
Podemos accedercon una subrutina (a veces llamada oráculo ) en forma de operador unitarioque actúa de la siguiente manera:
Esto utiliza elespacio de estados dimensional, que es suministrado por un registro concúbits . Esto se suele escribir como
Resultados del algoritmo de Grovercon probabilidad al menosusandoaplicaciones deEsta probabilidad puede hacerse arbitrariamente grande ejecutando el algoritmo de Grover varias veces. Si se ejecuta el algoritmo de Grover hastaSe encuentra, el número esperado de solicitudes aún es, ya que, en promedio, solo se ejecutará dos veces.
Definición alternativa de oráculo
Esta sección compara el oráculo anteriorcon un oráculo.
es diferente del oráculo cuántico estándar para una función. Este oráculo estándar, denominado aquí como, utiliza un sistema de cúbits auxiliar . La operación representa entonces una inversión ( puerta NOT ) en el sistema principal condicionada por el valor de f ( x ) del sistema auxiliar:
o brevemente,
Estos oráculos se realizan típicamente mediante la no computación .
Si se nos dacomo nuestro oráculo, entonces también podemos implementar, desdeescuando el cúbit auxiliar está en el estado:
Por lo tanto, el algoritmo de Grover se puede ejecutar independientemente del oráculo que se proporcione. [ 3 ] SiSi se da, entonces debemos mantener un cúbit adicional en el estado.y aplicaren lugar de.
Algoritmo

Los pasos del algoritmo de Grover se describen a continuación:
- Inicializa el sistema a la superposición uniforme sobre todos los estados.
- Realice la siguiente "iteración de Grover".veces:
- Aplicar el operador
- Aplicar el operador de difusión de Grover
- Medir el estado cuántico resultante en la base computacional.
Para el valor de elegido correctamente, el resultado serácon una probabilidad que se aproxima a 1 para N ≫ 1. El análisis muestra que este valor eventual paraSatisface.
La implementación de los pasos de este algoritmo se puede realizar utilizando un número de compuertas lineal en el número de cúbits. [ 3 ] Por lo tanto, la complejidad de compuertas de este algoritmo es, opor iteración.
Demostración geométrica

Existe una interpretación geométrica del algoritmo de Grover, que se deriva de la observación de que el estado cuántico del algoritmo de Grover permanece en un subespacio bidimensional después de cada paso. Consideremos el plano generado pory; equivalentemente, el plano abarcado pory el ket perpendicular.
El algoritmo de Grover comienza con el ket inicial, que se encuentra en el subespacio. El operadores una reflexión en el hiperplano ortogonal apara vectores en el plano generado pory, es decir, actúa como un reflejo a través deEsto se puede ver escribiendoen forma de reflexión de un miembro de la familia Householder :
El operadores un reflejo a través deAmbos operadoresytomar estados en el plano abarcado porya estados en el plano. Por lo tanto, el algoritmo de Grover permanece en este plano durante todo el proceso.
Es sencillo comprobar que el operadorEn cada paso de iteración de Grover se rota el vector de estado en un ángulo de. Por lo tanto, con suficientes iteraciones, se puede rotar desde el estado inicial.al estado de salida deseado. El ket inicial está cerca del estado ortogonal a:
En términos geométricos, el ánguloentreyes dado por
Necesitamos detenernos cuando el vector de estado pase cerca de; después de esto, las iteraciones subsiguientes rotan el vector de estado alejándolo de, reduciendo la probabilidad de obtener la respuesta correcta. La probabilidad exacta de medir la respuesta correcta es
donde r es el número (entero) de iteraciones de Grover. Por lo tanto, el tiempo más temprano en el que obtenemos una medición casi óptima es.
Demostración algebraica
Para completar el análisis algebraico, necesitamos averiguar qué sucede cuando aplicamos repetidamente. Una forma natural de hacerlo es mediante el análisis de valores propios de una matriz. Nótese que durante todo el cálculo, el estado del algoritmo es una combinación lineal deyPodemos escribir la acción deyen el espacio abarcado porcomo:
Entonces, en base(que no es ni ortogonal ni una base de todo el espacio) la acciónde aplicarseguido deviene dada por la matriz
Esta matriz tiene una forma de Jordan muy conveniente . Si definimos, es
dónde
De ello se deduce que la r -ésima potencia de la matriz (correspondiente a r iteraciones) es
Utilizando esta forma, podemos usar identidades trigonométricas para calcular la probabilidad de observar ω después de r iteraciones mencionadas en la sección anterior,
Alternativamente, uno podría imaginar razonablemente que un momento casi óptimo para distinguir sería cuando los ángulos 2 rt y −2 rt estén lo más separados posible, lo que corresponde a, oEntonces el sistema está en estado
Un cálculo sencillo muestra ahora que la observación arroja la respuesta correcta ω con error..
Extensiones y variantes
Múltiples entradas coincidentes
Si, en lugar de 1 entrada coincidente, hay k entradas coincidentes, el mismo algoritmo funciona, pero el número de iteraciones debe seren lugar de.
Hay varias maneras de manejar el caso si k es desconocido. [ 16 ] Una solución simple funciona de manera óptima hasta un factor constante: ejecutar el algoritmo de Grover repetidamente para valores cada vez más pequeños de k , por ejemplo, tomando k = N , N /2, N /4, ..., y así sucesivamente, tomandopara la iteración t hasta que se encuentre una entrada coincidente.
Con una probabilidad suficientemente alta, se encontrará una entrada marcada mediante iteración.para alguna constante c . Por lo tanto, el número total de iteraciones tomadas es como máximo
Otro enfoque, si k es desconocido, es derivarlo mediante el algoritmo de conteo cuántico previo.
Si(o el tradicional marcado como estado Algoritmo de Grover si se ejecuta con), el algoritmo no proporcionará ninguna amplificación. Si, aumentar k comenzará a aumentar el número de iteraciones necesarias para obtener una solución. [ 17 ] Por otro lado, si, una ejecución clásica del oráculo de verificación sobre una única elección aleatoria de entrada dará, con mucha probabilidad, una solución correcta.
Se utiliza una versión de este algoritmo para resolver el problema de colisión . [ 18 ] [ 19 ]
Búsqueda parcial cuántica
Grover y Radhakrishnan describieron en 2004 una modificación del algoritmo de Grover llamada búsqueda parcial cuántica. [ 20 ] En la búsqueda parcial, no interesa encontrar la dirección exacta del elemento objetivo, sino solo los primeros dígitos de la dirección. De forma equivalente, podemos pensar en "fragmentar" el espacio de búsqueda en bloques y luego preguntar "¿en qué bloque está el elemento objetivo?". En muchas aplicaciones, dicha búsqueda proporciona suficiente información si la dirección objetivo contiene la información deseada. Por ejemplo, para usar el ejemplo dado por LK Grover, si se tiene una lista de estudiantes organizados por clasificación de clase, es posible que solo nos interese saber si un estudiante está en el percentil inferior del 25%, 25-50%, 50-75% o 75-100%.
Para describir la búsqueda parcial, consideramos una base de datos separada enbloques, cada uno de tamañoEl problema de búsqueda parcial es más sencillo. Consideremos el enfoque que adoptaríamos clásicamente: elegimos un bloque al azar y luego realizamos una búsqueda normal a través del resto de los bloques (en el lenguaje de la teoría de conjuntos, el complemento). Si no encontramos el objetivo, sabemos que está en el bloque que no buscamos. El número promedio de iteraciones disminuye dea.
El algoritmo de Grover requiereiteraciones. La búsqueda parcial será más rápida por un factor numérico que depende del número de bloques.La búsqueda parcial utilizaiteraciones globales yiteraciones locales. El operador global de Grover está designadoy el operador local de Grover es designado.
El operador global de Grover actúa sobre los bloques. Básicamente, se define de la siguiente manera:
- Llevar a caboIteraciones estándar de Grover en toda la base de datos.
- Llevar a caboIteraciones locales de Grover. Una iteración local de Grover es la suma directa de las iteraciones de Grover realizadas sobre cada bloque.
- Realiza una iteración estándar de Grover.
Los valores óptimos deyEstos temas se discuten en el artículo de Grover y Radhakrishnan. También cabe preguntarse qué sucede si se aplican búsquedas parciales sucesivas en diferentes niveles de "resolución". Esta idea fue estudiada en detalle por Vladimir Korepin y Xu, quienes la denominaron búsqueda cuántica binaria. Demostraron que, de hecho, no es más rápida que realizar una única búsqueda parcial.
Optimalidad
El algoritmo de Grover es óptimo salvo factores subconstantes. Es decir, cualquier algoritmo que acceda a la base de datos únicamente mediante el operador U ω debe aplicar U ω al menos unafracciona tantas veces como el algoritmo de Grover. [ 21 ] La extensión del algoritmo de Grover a k entradas coincidentes, π ( N / k ) 1/2 /4, también es óptima. [ 18 ] Este resultado es importante para comprender los límites de la computación cuántica.
Si el problema de búsqueda de Grover se pudiera resolver con log c N aplicaciones de U ω , eso implicaría que NP está contenido en BQP , al transformar problemas de NP en problemas de búsqueda de tipo Grover. La optimalidad del algoritmo de Grover sugiere que las computadoras cuánticas no pueden resolver problemas NP-completos en tiempo polinomial, y por lo tanto, NP no está contenido en BQP.
Se ha demostrado que una clase de computadoras cuánticas de variables ocultas no locales podría implementar una búsqueda de una-base de datos de elementos en como máximopasos. Esto es más rápido que elpasos dados por el algoritmo de Grover. [ 22 ]
Véase también
- Amplificación de amplitud
- Algoritmo de Brassard-Høyer-Tapp (para resolver el problema de colisión )
- Algoritmo de Shor (para factorización)
- Búsqueda de paseo cuántico
Notas
- 1 2 Grover, Lov K. (1996-07-01). "Un algoritmo mecánico cuántico rápido para la búsqueda en bases de datos" . Actas del vigésimo octavo simposio anual de la ACM sobre Teoría de la Computación - STOC '96 . Filadelfia, Pensilvania, EE. UU.: Association for Computing Machinery. págs. 212–219 . arXiv : quant-ph/9605043 . Bibcode : 1996quant.ph..5043G . doi : 10.1145/237814.237866 . ISBN 978-0-89791-785-8. S2CID 207198067 .
- ↑ Bennett, CH; Bernstein, E.; Brassard, G.; Vazirani, U. (1997). "Las fortalezas y debilidades de la computación cuántica" . SIAM Journal on Computing . 26 (5): 1510– 1523. arXiv : quant-ph/9701001 . doi : 10.1137/s0097539796300933 . S2CID 13403194 .
- 1 2 3 4 Nielsen, Michael A.; Chuang, Isaac L. (2010). Computación cuántica e información cuántica . Cambridge: Cambridge University Press. págs. 276–305 . ISBN 978-1-107-00217-3OCLC 665137861
- ↑ Bernstein, Daniel J. (2010). "Grover vs. McEliece" (PDF) . En Sendrier, Nicolas (ed.). Criptografía postcuántica, Tercer taller internacional, PQCrypto 2010, Darmstadt, Alemania, 25-28 de mayo de 2010. Actas . Lecture Notes in Computer Science. Vol. 6061. Springer. pp. 73–80 . doi : 10.1007/978-3-642-12929-2_6 . ISBN 978-3-642-12928-5.
- ↑ Grover, Lov K. (1998). «Un marco para algoritmos mecánicos cuánticos rápidos». En Vitter, Jeffrey Scott (ed.). Actas del Trigésimo Simposio Anual de la ACM sobre la Teoría de la Computación, Dallas, Texas, EE. UU., 23-26 de mayo de 1998. Association for Computing Machinery. págs. 53-62 . arXiv : quant-ph/9711043 . doi : 10.1145/276698.276712 . ISBN 0-89791-962-9.
- 1 2 Ambainis, A. (2004-06-01). "Algoritmos de búsqueda cuántica". ACM SIGACT News . 35 (2): 22– 35. arXiv : quant-ph/0504012 . doi : 10.1145/992287.992296 . ISSN 0163-5700 . S2CID 11326499 .
- ↑ Jordan, Stephen. "Quantum Algorithm Zoo" . quantumalgorithmzoo.org . Consultado el 21 de abril de 2021 .
- ↑ Cerf, Nicolas J.; Grover, Lov K.; Williams, Colin P. (2000-05-01). "Búsqueda cuántica anidada y problemas NP-difíciles". Applicable Algebra in Engineering, Communication and Computing . 10 (4): 311– 338. doi : 10.1007/s002000050134 . ISSN 1432-0622 . S2CID 311132 .
- ↑ Ambainis, Andris (2007-01-01). "Algoritmo de paseo cuántico para la distinción de elementos" . SIAM Journal on Computing . 37 (1): 210– 239. arXiv : quant-ph/0311001 . doi : 10.1137/S0097539705447311 . ISSN 0097-5397 . S2CID 6581885 .
- ↑ Brassard, Gilles; Høyer, Peter; Tapp, Alain (1998). "Criptoanálisis cuántico de funciones hash y libres de garras". En Lucchesi, Claudio L.; Moura, Arnaldo V. (eds.). LATIN '98: Informática teórica, Tercer Simposio Latinoamericano, Campinas, Brasil, 20-24 de abril de 1998, Actas . Lecture Notes in Computer Science. Vol. 1380. Springer. pp. 163–169 . arXiv : quant-ph/9705002 . doi : 10.1007/BFb0054319 . ISBN 978-3-540-64275-6.
- ↑ Criptografía poscuántica . Daniel J. Bernstein, Johannes Buchmann, Erik, Dipl.-Math Dahmén. Berlín: Springer. 2009.ISBN 978-3-540-88702-7OCLC 318545517
{{cite book}}: CS1 mantenimiento: otros ( enlace ) - ↑ Bernstein, Daniel J. (21 de abril de 2021). "Análisis de costos de colisiones de hash: ¿Dejarán obsoletos los ordenadores cuánticos a SHARCS?" (PDF) . Actas de la conferencia sobre hardware de propósito especial para atacar sistemas criptográficos (SHARCS '09) . 09 : 105–117 .
- ↑ Viamontes GF; Markov IL; Hayes JP (2005), "¿Es práctica la búsqueda cuántica?" (PDF) , Computing in Science and Engineering , 7 (3): 62–70 , arXiv : quant-ph/0405001 , Bibcode : 2005CSE.....7c..62V , doi : 10.1109/mcse.2005.53 , S2CID 8929938
- ↑ Sinitsyn NA; Yan B. (2023). "Oráculo de Grover protegido topológicamente para el problema de partición". Physical Review A . 108 (2) 022412. arXiv : 2304.10488 . Bibcode : 2023PhRvA.108b2412S . doi : 10.1103/PhysRevA.108.022412 . S2CID 258236417 .
- ↑ Babbush, Ryan; McClean, Jarrod R.; Newman, Michael; Gidney, Craig; Boixo, Sergio; Neven, Hartmut (2021-03-29). "Focus beyond Quadratic Speedups for Error-Corrected Quantum Advantage" . PRX Quantum . 2 (1) 010103. arXiv : 2011.04149 . doi : 10.1103/PRXQuantum.2.010103 .
- ↑ Aaronson, Scott (19 de abril de 2021). "Introducción a las notas de clase de la ciencia de la información cuántica" (PDF) .
- ^ Nielsen-Chuang
- ^ Boyer , Michel; Brassard, Gilles; Hoyer, Peter; Tapp, Alain (1998), "Límites estrictos en la búsqueda cuántica", Fortschritte der Physik , vol. 46, págs. 493–506 , arXiv : quant-ph/9605034 , Bibcode : 1998ForPh..46..493B , doi : 10.1002/3527603093.ch10 , ISBN 978-3-527-60309-1
- ↑ Ambainis, Andris (2004), "Algoritmos de búsqueda cuántica", SIGACT News , 35 (2): 22–35 , arXiv : quant-ph/0504012 , Bibcode : 2005quant.ph..4012A , doi : 10.1145/992287.992296 , S2CID 11326499
- ↑ Grover, LK; Radhakrishnan, J. (2005-02-07). "¿Es más fácil la búsqueda cuántica parcial en una base de datos?". arXiv : quant-ph/0407122v4 .
- ↑ Zalka, Christof (1999-10-01). "El algoritmo de búsqueda cuántica de Grover es óptimo" . Physical Review A. 60 ( 4): 2746– 2751. arXiv : quant-ph/9711070 . Bibcode : 1999PhRvA..60.2746Z . doi : 10.1103/PhysRevA.60.2746 . S2CID 1542077 .
- ↑ Aaronson, Scott. "Computación cuántica y variables ocultas" (PDF) .
Referencias
- Grover LK: Un algoritmo mecánico cuántico rápido para la búsqueda en bases de datos , Actas del 28.º Simposio Anual de la ACM sobre la Teoría de la Computación (mayo de 1996), pág. 212.
- Grover LK: De la ecuación de Schrödinger al algoritmo de búsqueda cuántica , American Journal of Physics, 69(7): 769–777, 2001. Revisión pedagógica del algoritmo y su historia.
- Grover LK: COMPUTACIÓN CUÁNTICA: Cómo la extraña lógica del mundo subatómico podría permitir que las máquinas calculen millones de veces más rápido que en la actualidad. The Sciences , julio/agosto de 1999, págs. 24-30.
- Nielsen, MA y Chuang, IL Computación cuántica e información cuántica . Cambridge University Press, 2000. Capítulo 6.
- ¿Qué es una guía telefónica cuántica?, Lov Grover, Lucent Technologies
Enlaces externos
- Davy Wybiral. "Simulador de circuitos cuánticos" . Archivado del original el 16 de enero de 2017. Consultado el 13 de enero de 2017 .
- Craig Gidney (5 de marzo de 2013). "Algoritmo de búsqueda cuántica de Grover" . Archivado del original el 17 de noviembre de 2020. Consultado el 8 de marzo de 2013 .
- François Schwarzentruber (18 de mayo de 2013). "El algoritmo de Grover" .
- Alexander Prokopenya. "Circuito cuántico que implementa el algoritmo de búsqueda de Grover" . Wolfram Alpha .
- "Computación cuántica, teoría de" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
- Roberto Maestre (11 de mayo de 2018). "Algoritmo de Grover implementado en R y C" . GitHub .
- Bernhard Ömer. "QCL - Un lenguaje de programación para computadoras cuánticas" . Consultado el 30 de abril de 2022.
Implementado en /qcl-0.6.4/lib/grover.qcl
- Algoritmos cuánticos
- Algoritmos de búsqueda
- Criptografía postcuántica