El algoritmo Deutsch-Jozsa es un algoritmo cuántico determinista propuesto por David Deutsch y Richard Jozsa en 1992, con mejoras realizadas por Richard Cleve , Artur Ekert , Chiara Macchiavello y Michele Mosca en 1998. [ 1 ] [ 2 ] Aunque de poca utilidad práctica, es uno de los primeros ejemplos de un algoritmo cuántico exponencialmente más rápido que cualquier posible algoritmo clásico determinista. [ 3 ]
El problema de Deutsch-Jozsa está diseñado específicamente para ser fácil para un algoritmo cuántico y difícil para cualquier algoritmo clásico determinista. Es un problema de caja negra que puede ser resuelto eficientemente por una computadora cuántica sin errores, mientras que una computadora clásica determinista necesitaría un número exponencial de consultas a la caja negra para resolver el problema. Formalmente, produce un oráculo con respecto al cual EQP , la clase de problemas que pueden resolverse exactamente en tiempo polinomial en una computadora cuántica, y P son diferentes. [ 4 ]
Dado que el problema es fácil de resolver en una computadora clásica probabilística, no produce una separación de oráculo con BPP , la clase de problemas que se pueden resolver con error acotado en tiempo polinomial en una computadora clásica probabilística. El problema de Simon es un ejemplo de un problema que produce una separación de oráculo entre BQP y BPP .
Planteamiento del problema
En el problema de Deutsch-Jozsa, se nos da una computadora cuántica de caja negra conocida como oráculo que implementa alguna función:
La función toma valores binarios de n bits como entrada y produce un 0 o un 1 como salida para cada uno de dichos valores. Se nos promete que la función es constante (0 en todas las entradas o 1 en todas las entradas) o balanceada (1 para exactamente la mitad del dominio de entrada y 0 para la otra mitad). [ 1 ] La tarea entonces es determinar sies constante o equilibrado mediante el uso del oráculo.
Solución clásica
Para un algoritmo determinista convencional dondees el número de bits,evaluaciones deserá necesario en el peor de los casos. Para demostrar quees constante, poco más de la mitad del conjunto de entradas deben evaluarse y sus salidas deben ser idénticas (porque se garantiza que la función sea equilibrada o constante, no en algún punto intermedio). El mejor caso se da cuando la función está equilibrada y los dos primeros valores de salida son diferentes. Para un algoritmo aleatorio convencional , una constanteLas evaluaciones de la función son suficientes para producir la respuesta correcta con una alta probabilidad (fallar con probabilidadcon). Sin embargo,Las evaluaciones siguen siendo necesarias si queremos una respuesta que no tenga posibilidad de error. El algoritmo cuántico de Deutsch-Jozsa produce una respuesta que siempre es correcta con una sola evaluación de.
Historia
El algoritmo Deutsch-Jozsa generaliza el trabajo anterior (1985) de David Deutsch, que proporcionó una solución para el caso simple donde. Específicamente, averiguar si una función booleana dada cuya entrada es de un bit,, es constante. [ 5 ]
El algoritmo, tal como Deutsch lo propuso originalmente, no era determinista. El algoritmo tenía éxito con una probabilidad de un medio. En 1992, Deutsch y Jozsa produjeron un algoritmo determinista que se generalizó a una función que tomabits para su entrada. A diferencia del algoritmo de Deutsch, este algoritmo requería dos evaluaciones de función en lugar de solo una.
Cleve et al. realizaron mejoras adicionales al algoritmo Deutsch-Jozsa, [ 2 ] dando como resultado un algoritmo que es determinista y requiere solo una única consulta deEste algoritmo aún se conoce como algoritmo de Deutsch-Jozsa en honor a las técnicas innovadoras que emplearon. [ 2 ]
Algoritmo
Para que el algoritmo Deutsch-Jozsa funcione, se requiere la computación de oráculo.deDebe ser un oráculo cuántico que no se decohere.. En su cálculo, no puede hacer una copia de, porque eso violaría el teorema de no clonación . El punto de vista del algoritmo de Deutsch-Jozsa deQue un oráculo actúe como tal significa que no importa lo que haga, ya que simplemente tiene que realizar la transformación prometida.

El algoritmo comienza con elestado de bits. Es decir, los primeros n bits están cada uno en el estadoy la parte final esSe aplica una puerta Hadamard a cada bit para obtener el estado.
dóndecorre por todas partescadenas de bits, cada una de las cuales puede estar representada por un número deaTenemos la funciónimplementado como un oráculo cuántico. El oráculo mapea su estado de entrada.a, dóndedenota la suma módulo 2. Aplicando el oráculo cuántico se obtiene:
Para cadaes 0 o 1. Al probar estas dos posibilidades, vemos que el estado anterior es igual a
En este punto el último cúbitpuede ignorarse y queda lo siguiente:
A continuación, haremos que cada cúbit pase por una puerta de Hadamard . La transformación total sobre todosLos cúbits se pueden expresar con la siguiente identidad:
(es la suma del producto bit a bit). Esto da como resultado
A partir de esto, podemos ver que la probabilidad de un estadoser medido es
La probabilidad de medir, correspondiente a, es
que se evalúa a 1 sies constante ( interferencia constructiva ) y 0 siestá equilibrado ( interferencia destructiva ). En otras palabras, la medición final será(todo ceros) si y solo sies constante y producirá algún otro estado siestá equilibrado.
El algoritmo de Deutsch
El algoritmo de Deutsch es un caso especial del algoritmo general de Deutsch-Jozsa donde n = 1, de modo queNecesitamos comprobar la condiciónEs equivalente a comprobar(dóndees la suma módulo 2, que también puede verse como una puerta XOR cuántica implementada como una puerta NOT controlada ), si es cero, entonceses constante, de lo contrariono es constante.
Comenzamos con el estado de dos cúbitsy aplicar una puerta Hadamard a cada cúbit. Esto produce
Se nos proporciona una implementación cuántica de la función.que mapasaAplicando esta función a nuestro estado actual obtenemos
Ignoramos el segundo cúbit y la fase global y por lo tanto tenemos el estado
Aplicando una puerta Hadamard a este estado tenemos
si y solo si medimosysi y solo si medimos. Entonces, con certeza sabemos sies constante o equilibrado.
Implementación de Qiskit del algoritmo Deutsch-Jozsa
El circuito cuántico que se muestra aquí es un ejemplo sencillo de cómo se puede implementar el algoritmo de Deutsch-Jozsa en Python utilizando Qiskit , un marco de desarrollo de software de computación cuántica de código abierto de IBM.

Véase también
Referencias
- 1 2 David Deutsch y Richard Jozsa (1992). "Soluciones rápidas de problemas mediante computación cuántica". Actas de la Royal Society de Londres A. 439 ( 1907): 553– 558. Bibcode : 1992RSPSA.439..553D . CiteSeerX 10.1.1.655.5997 . doi : 10.1098/rspa.1992.0167 . S2CID 121702767 .
- 1 2 3 R. Cleve; A. Ekert; C. Macchiavello; M. Mosca (1998). "Algoritmos cuánticos revisados". Actas de la Royal Society de Londres A . 454 (1969): 339– 354. arXiv : quant-ph/9708016 . Bibcode : 1998RSPSA.454..339C . doi : 10.1098/rspa.1998.0164 . S2CID 16128238 .
- ↑ Simon, Daniel (noviembre de 1994). «Sobre el poder de la computación cuántica» . Actas del 35.º Simposio Anual sobre Fundamentos de la Informática . págs. 116-123 . doi : 10.1109/SFCS.1994.365701 . ISBN 0-8186-6580-7. S2CID 7457814 .
- ↑ Johansson, N.; Larsson, JÅ. (2017). "Simulación clásica eficiente de los algoritmos de Deutsch-Jozsa y Simon". Quantum Inf Process (2017) . 16 (9): 233. arXiv : 1508.05027 . Bibcode : 2017QuIP...16..233J . doi : 10.1007/s11128-017-1679-7 . S2CID 28670540 .
- ↑ David Deutsch (1985). "Teoría cuántica, el principio de Church-Turing y la computadora cuántica universal". Actas de la Royal Society de Londres A. 400 ( 1818): 97–117 . Bibcode : 1985RSPSA.400...97D . CiteSeerX 10.1.1.41.2382 . doi : 10.1098/rspa.1985.0070 . S2CID 1438116 .
Enlaces externos
- Conferencia de Deutsch sobre el algoritmo de Deutsch-Jozsa
- Algoritmos cuánticos