En computación cuántica , un algoritmo cuántico es un algoritmo que se ejecuta en un modelo realista de computación cuántica , siendo el modelo más comúnmente utilizado el modelo de circuito cuántico de computación. [1] [2] Un algoritmo clásico (o no cuántico) es una secuencia finita de instrucciones, o un procedimiento paso a paso para resolver un problema, donde cada paso o instrucción se puede realizar en una computadora clásica . De manera similar, un algoritmo cuántico es un procedimiento paso a paso, donde cada uno de los pasos se puede realizar en una computadora cuántica . Aunque todos los algoritmos clásicos también se pueden realizar en una computadora cuántica, [3] : 126 el término algoritmo cuántico generalmente se reserva para algoritmos que parecen inherentemente cuánticos, o utilizan alguna característica esencial de la computación cuántica como la superposición cuántica o el entrelazamiento cuántico .
Los problemas que son indecidibles usando computadoras clásicas siguen siendo indecidibles usando computadoras cuánticas. [4] : 127 Lo que hace que los algoritmos cuánticos sean interesantes es que podrían resolver algunos problemas más rápido que los algoritmos clásicos porque la superposición cuántica y el entrelazamiento cuántico que explotan los algoritmos cuánticos generalmente no se pueden simular de manera eficiente en computadoras clásicas (ver Supremacía cuántica ).
Los algoritmos más conocidos son el algoritmo de Shor para factorización y el algoritmo de Grover para buscar en una base de datos no estructurada o en una lista desordenada. El algoritmo de Shor se ejecuta mucho (casi exponencialmente) más rápido que el algoritmo clásico más conocido para factorización, el tamiz de cuerpos numéricos generales . [5] El algoritmo de Grover se ejecuta cuadráticamente más rápido que el mejor algoritmo clásico posible para la misma tarea, [6] una búsqueda lineal .
Los algoritmos cuánticos se describen habitualmente, en el modelo de circuito de computación cuántica comúnmente utilizado, mediante un circuito cuántico que actúa sobre algunos cúbits de entrada y termina con una medición . Un circuito cuántico consta de puertas cuánticas simples , cada una de las cuales actúa sobre un número finito de cúbits. Los algoritmos cuánticos también pueden enunciarse en otros modelos de computación cuántica, como el modelo de oráculo hamiltoniano. [7]
Los algoritmos cuánticos se pueden clasificar según las técnicas principales que se utilizan en el algoritmo. Algunas técnicas o ideas que se utilizan habitualmente en los algoritmos cuánticos incluyen el retroceso de fase, la estimación de fase , la transformada cuántica de Fourier , los recorridos cuánticos , la amplificación de amplitud y la teoría cuántica de campos topológica . Los algoritmos cuánticos también se pueden agrupar según el tipo de problema resuelto; véase, por ejemplo, la encuesta sobre algoritmos cuánticos para problemas algebraicos. [8]
La transformada cuántica de Fourier es el análogo cuántico de la transformada discreta de Fourier y se utiliza en varios algoritmos cuánticos. La transformada de Hadamard también es un ejemplo de una transformada cuántica de Fourier sobre un espacio vectorial n-dimensional sobre el campo F 2 . La transformada cuántica de Fourier se puede implementar de manera eficiente en una computadora cuántica utilizando solo un número polinomial de puertas cuánticas . [ cita requerida ]
El algoritmo Deutsch–Jozsa resuelve un problema de caja negra que requiere exponencialmente muchas consultas a la caja negra para cualquier computadora clásica determinista, pero que puede resolverse con una sola consulta en una computadora cuántica. Sin embargo, al comparar algoritmos clásicos y cuánticos de error acotado, no hay aceleración, ya que un algoritmo probabilístico clásico puede resolver el problema con una cantidad constante de consultas con una pequeña probabilidad de error. El algoritmo determina si una función f es constante (0 en todas las entradas o 1 en todas las entradas) o equilibrada (devuelve 1 para la mitad del dominio de entrada y 0 para la otra mitad).
El algoritmo de Bernstein-Vazirani es el primer algoritmo cuántico que resuelve un problema de manera más eficiente que el algoritmo clásico más conocido. Fue diseñado para crear una separación oracular entre BQP y BPP .
El algoritmo de Simon resuelve un problema de caja negra exponencialmente más rápido que cualquier algoritmo clásico, incluidos los algoritmos probabilísticos de error acotado. Este algoritmo, que logra una aceleración exponencial con respecto a todos los algoritmos clásicos que consideramos eficientes, fue la motivación para el algoritmo de Shor para la factorización.
El algoritmo de estimación de fase cuántica se utiliza para determinar la fase propia de un vector propio de una compuerta unitaria, dado un estado cuántico proporcional al vector propio y el acceso a la compuerta. El algoritmo se utiliza con frecuencia como subrutina en otros algoritmos.
El algoritmo de Shor resuelve el problema del logaritmo discreto y el problema de factorización de números enteros en tiempo polinomial, [9] mientras que los algoritmos clásicos más conocidos requieren tiempo superpolinomial. No se sabe que estos problemas se produzcan en tiempo P o NP-completo . También es uno de los pocos algoritmos cuánticos que resuelve un problema que no es de caja negra en tiempo polinomial, mientras que los algoritmos clásicos más conocidos se ejecutan en tiempo superpolinomial.
El problema del subgrupo oculto abeliano es una generalización de muchos problemas que pueden ser resueltos por un ordenador cuántico, como el problema de Simon, la solución de la ecuación de Pell , la prueba del ideal principal de un anillo R y la factorización . Existen algoritmos cuánticos eficientes conocidos para el problema del subgrupo oculto abeliano. [10] El problema del subgrupo oculto más general, donde el grupo no es necesariamente abeliano, es una generalización de los problemas mencionados anteriormente, así como del isomorfismo de grafos y de ciertos problemas de red . Se conocen algoritmos cuánticos eficientes para ciertos grupos no abelianos. Sin embargo, no se conocen algoritmos eficientes para el grupo simétrico , que daría un algoritmo eficiente para el isomorfismo de grafos [11] y el grupo diedro , que resolvería ciertos problemas de red. [12]
Una suma de Gauss es un tipo de suma exponencial . El algoritmo clásico más conocido para estimar estas sumas requiere un tiempo exponencial. Dado que el problema del logaritmo discreto se reduce a la estimación de la suma de Gauss, un algoritmo clásico eficiente para estimar sumas de Gauss implicaría un algoritmo clásico eficiente para calcular logaritmos discretos, lo que se considera poco probable. Sin embargo, las computadoras cuánticas pueden estimar sumas de Gauss con precisión polinómica en tiempo polinómico. [13]
Considere un oráculo que consta de n funciones booleanas aleatorias que asignan cadenas de n bits a un valor booleano, con el objetivo de encontrar n cadenas de n bits z 1 ,..., z n tales que para la transformada de Hadamard-Fourier, al menos 3/4 de las cadenas satisfacen
y al menos 1/4 satisface
Esto se puede hacer en tiempo polinomial cuántico de error acotado (BQP). [14]
La amplificación de amplitud es una técnica que permite la amplificación de un subespacio elegido de un estado cuántico. Las aplicaciones de la amplificación de amplitud suelen dar lugar a aceleraciones cuadráticas con respecto a los algoritmos clásicos correspondientes. Puede considerarse como una generalización del algoritmo de Grover. [ cita requerida ]
El algoritmo de Grover busca una entrada marcada en una base de datos no estructurada (o una lista desordenada) con N entradas, utilizando solo consultas en lugar de las consultas requeridas clásicamente. [15] Clásicamente, se requieren consultas incluso permitiendo algoritmos probabilísticos de error acotado.
Los teóricos han considerado una generalización hipotética de una computadora cuántica estándar que podría acceder a las historias de las variables ocultas en la mecánica de Bohm . (Una computadora de este tipo es completamente hipotética y no sería una computadora cuántica estándar, o incluso posible bajo la teoría estándar de la mecánica cuántica). Una computadora hipotética de este tipo podría implementar una búsqueda en una base de datos de N elementos en, como máximo, pasos. Esto es ligeramente más rápido que los pasos tomados por el algoritmo de Grover . Sin embargo, ninguno de los métodos de búsqueda permitiría a ninguno de los modelos de computadora cuántica resolver problemas NP-completos en tiempo polinomial. [16]
El conteo cuántico resuelve una generalización del problema de búsqueda. Resuelve el problema de contar el número de entradas marcadas en una lista desordenada, en lugar de simplemente detectar si existe una. Específicamente, cuenta el número de entradas marcadas en una lista de elementos con un error de como máximo haciendo solo consultas, donde es el número de elementos marcados en la lista. [17] [18] Más precisamente, el algoritmo genera una estimación para , el número de entradas marcadas, con una precisión de .
Un paseo cuántico es el análogo cuántico de un paseo aleatorio clásico . Un paseo aleatorio clásico puede describirse mediante una distribución de probabilidad sobre algunos estados, mientras que un paseo cuántico puede describirse mediante una superposición cuántica sobre estados. Se sabe que los paseos cuánticos brindan aceleraciones exponenciales para algunos problemas de caja negra. [19] [20] También brindan aceleraciones polinómicas para muchos problemas. Existe un marco para la creación de algoritmos de paseo cuántico y es una herramienta versátil. [21]
El problema de muestreo de bosones en una configuración experimental supone [22] una entrada de bosones (por ejemplo, fotones) de número moderado que se dispersan aleatoriamente en una gran cantidad de modos de salida, restringidos por una unitaridad definida . Cuando se utilizan fotones individuales, el problema es isomorfo a un paseo cuántico de múltiples fotones. [23] El problema es entonces producir una muestra justa de la distribución de probabilidad de la salida que depende de la disposición de entrada de los bosones y la unitaridad. [24] Resolver este problema con un algoritmo informático clásico requiere calcular la permanente de la matriz de transformación unitaria, lo que puede llevar un tiempo prohibitivamente largo o ser directamente imposible. En 2014, se propuso [25] que la tecnología existente y los métodos probabilísticos estándar de generación de estados de un solo fotón podrían usarse como entrada en una red óptica lineal computable cuántica adecuada y que el muestreo de la distribución de probabilidad de salida sería demostrablemente superior utilizando algoritmos cuánticos. En 2015, una investigación predijo [26] que el problema de muestreo tenía una complejidad similar para entradas distintas de los fotones del estado de Fock e identificó una transición en la complejidad computacional desde clásicamente simulable a tan difícil como el problema de muestreo de bosones, dependiendo del tamaño de las entradas de amplitud coherente.
El problema de distinción de elementos es el problema de determinar si todos los elementos de una lista son distintos. Clásicamente, se requieren consultas para una lista de tamaño ; sin embargo, se puede resolver en consultas en una computadora cuántica. El algoritmo óptimo fue propuesto por Andris Ambainis [ 27] y Yaoyun Shi fue el primero en demostrar un límite inferior estricto cuando el tamaño del rango es suficientemente grande. [28] Ambainis [29] y Kutin [30] de forma independiente (y mediante diferentes pruebas) extendieron ese trabajo para obtener el límite inferior para todas las funciones.
El problema de búsqueda de triángulos es el problema de determinar si un gráfico dado contiene un triángulo (una camarilla de tamaño 3). El límite inferior más conocido para los algoritmos cuánticos es , pero el mejor algoritmo conocido requiere O( N 1.297 ) consultas, [31] una mejora con respecto a las mejores consultas anteriores O( N 1.3 ). [21] [32]
Una fórmula es un árbol con una puerta en cada nodo interno y un bit de entrada en cada nodo de hoja. El problema es evaluar la fórmula, que es la salida del nodo raíz, dado el acceso del oráculo a la entrada.
Una fórmula bien estudiada es el árbol binario balanceado con solo puertas NAND. [33] Este tipo de fórmula requiere consultas que utilicen aleatoriedad, [34] donde . Sin embargo, con un algoritmo cuántico, se puede resolver en consultas. No se conocía un mejor algoritmo cuántico para este caso hasta que se encontró uno para el modelo de oráculo hamiltoniano no convencional. [7] Pronto se obtuvo el mismo resultado para la configuración estándar. [35]
También se conocen algoritmos cuánticos rápidos para fórmulas más complicadas. [36]
El problema consiste en determinar si un grupo de caja negra , dado por k generadores, es conmutativo . Un grupo de caja negra es un grupo con una función de oráculo, que debe utilizarse para realizar las operaciones del grupo (multiplicación, inversión y comparación con identidad). El interés en este contexto radica en la complejidad de la consulta, que es el número de llamadas de oráculo necesarias para resolver el problema. Las complejidades de consulta determinista y aleatoria son y , respectivamente. [37] Un algoritmo cuántico requiere consultas, mientras que el algoritmo clásico más conocido utiliza consultas. [38]
La clase de complejidad BQP (tiempo polinomial cuántico de error acotado) es el conjunto de problemas de decisión que puede resolver una computadora cuántica en tiempo polinomial con una probabilidad de error de como máximo 1/3 para todas las instancias. [39] Es el análogo cuántico de la clase de complejidad clásica BPP .
Un problema es BQP -completo si está en BQP y cualquier problema en BQP puede reducirse a él en tiempo polinomial . Informalmente, la clase de problemas BQP -completos son aquellos que son tan difíciles como los problemas más difíciles en BQP y son ellos mismos solucionables eficientemente por una computadora cuántica (con error acotado).
Witten había demostrado que la teoría cuántica de campos topológicos de Chern-Simons (TQFT) se puede resolver en términos de polinomios de Jones . Una computadora cuántica puede simular una TQFT y, por lo tanto, aproximarse al polinomio de Jones, [40] que, hasta donde sabemos, es difícil de calcular de manera clásica en el peor de los casos. [ cita requerida ]
La idea de que las computadoras cuánticas podrían ser más poderosas que las computadoras clásicas se originó en la observación de Richard Feynman de que las computadoras clásicas parecen requerir un tiempo exponencial para simular sistemas cuánticos de muchas partículas, pero los sistemas cuánticos de muchos cuerpos son capaces de "resolverse a sí mismos". [41] Desde entonces, la idea de que las computadoras cuánticas pueden simular procesos físicos cuánticos exponencialmente más rápido que las computadoras clásicas se ha desarrollado y elaborado en gran medida. Se han desarrollado algoritmos cuánticos eficientes (es decir, de tiempo polinomial) para simular sistemas bosónicos y fermiónicos, [42] así como la simulación de reacciones químicas más allá de las capacidades de las supercomputadoras clásicas actuales utilizando solo unos pocos cientos de qubits. [43] Las computadoras cuánticas también pueden simular eficientemente teorías de campos cuánticos topológicos. [44] Además de su interés intrínseco, este resultado ha llevado a algoritmos cuánticos eficientes para estimar invariantes topológicos cuánticos como los polinomios de Jones [45] y HOMFLY , [46] y el invariante de Turaev-Viro de variedades tridimensionales. [47]
En 2009, Aram Harrow , Avinatan Hassidim y Seth Lloyd formularon un algoritmo cuántico para resolver sistemas lineales . El algoritmo estima el resultado de una medición escalar en el vector solución de un sistema lineal de ecuaciones dado. [48]
Siempre que el sistema lineal sea escaso y tenga un número de condición bajo , y que el usuario esté interesado en el resultado de una medición escalar en el vector solución (en lugar de los valores del vector solución en sí), entonces el algoritmo tiene un tiempo de ejecución de , donde es el número de variables en el sistema lineal. Esto ofrece una aceleración exponencial sobre el algoritmo clásico más rápido, que se ejecuta en (o para matrices semidefinidas positivas).
Los algoritmos híbridos cuánticos/clásicos combinan la preparación y medición del estado cuántico con la optimización clásica. [49] Estos algoritmos generalmente apuntan a determinar el vector propio y el valor propio del estado fundamental de un operador hermítico.
El algoritmo de optimización cuántica aproximada se inspira en el recocido cuántico y realiza una aproximación discretizada del recocido cuántico mediante un circuito cuántico. Puede utilizarse para resolver problemas de teoría de grafos. [50] El algoritmo utiliza la optimización clásica de operaciones cuánticas para maximizar una "función objetivo".
El algoritmo de resolución de propiedades cuánticas variacionales (VQE) aplica optimización clásica para minimizar el valor esperado de energía de un estado ansatz para encontrar el estado fundamental de un operador hermítico, como el hamiltoniano de una molécula. [51] También se puede extender para encontrar energías excitadas de hamiltonianos moleculares. [52]
El algoritmo de resolución de eigens cuánticos contraídos (CQE) minimiza el residuo de una contracción (o proyección) de la ecuación de Schrödinger sobre el espacio de dos (o más) electrones para encontrar la energía del estado fundamental o excitado y la matriz de densidad reducida de dos electrones de una molécula. [53] Se basa en métodos clásicos para resolver energías y matrices de densidad reducida de dos electrones directamente a partir de la ecuación de Schrödinger contraída antihermítica. [54]