Articulo de referencia

Algoritmo de Deutsch-Jozsa

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 , Ch...

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:

F:{0,1}norte{0,1}{\displaystyle f\colon \{0,1\}^{n}\to \{0,1\}}

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 siF{\displaystyle f}es constante o equilibrado mediante el uso del oráculo.

Solución clásica

Para un algoritmo determinista convencional dondenorte{\displaystyle n}es el número de bits,2norte1+1{\displaystyle 2^{n-1}+1}evaluaciones deF{\displaystyle f}será necesario en el peor de los casos. Para demostrar queF{\displaystyle f}es 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 constantek{\displaystyle k}Las evaluaciones de la función son suficientes para producir la respuesta correcta con una alta probabilidad (fallar con probabilidadϵ1/2k{\displaystyle \epsilon \leq 1/2^{k}}conk1{\displaystyle k\geq 1}). Sin embargo,k=2norte1+1{\displaystyle k=2^{n-1}+1}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 deF{\displaystyle f}.

Historia

El algoritmo Deutsch-Jozsa generaliza el trabajo anterior (1985) de David Deutsch, que proporcionó una solución para el caso simple dondenorte=1{\displaystyle n=1}. Específicamente, averiguar si una función booleana dada cuya entrada es de un bit,F:{0,1}{0,1}{\displaystyle f:\{0,1\}\to \{0,1\}}, 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 tomanorte{\displaystyle n}bits 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 deF{\displaystyle f}Este 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.F(incógnita){\displaystyle f(x)}deincógnita{\displaystyle x}Debe ser un oráculo cuántico que no se decohere.incógnita{\displaystyle x}. En su cálculo, no puede hacer una copia deincógnita{\displaystyle x}, porque eso violaría el teorema de no clonación . El punto de vista del algoritmo de Deutsch-Jozsa deF{\displaystyle f}Que un oráculo actúe como tal significa que no importa lo que haga, ya que simplemente tiene que realizar la transformación prometida.

Circuito cuántico del algoritmo Deutsch-Jozsa

El algoritmo comienza con elnorte+1{\displaystyle n+1}estado de bits|0norte|1{\displaystyle |0\rangle ^{\otimes n}|1\rangle }. Es decir, los primeros n bits están cada uno en el estado|0{\displaystyle |0\rangle }y la parte final es|1{\displaystyle |1\rangle }Se aplica una puerta Hadamard a cada bit para obtener el estado.

12norte+1incógnita=02norte1|incógnita(|0|1),{\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}|x\rangle (|0\rangle -|1\rangle ),}

dóndeincógnita{\displaystyle x}corre por todas partesnorte{\displaystyle n}cadenas de bits, cada una de las cuales puede estar representada por un número de0{\displaystyle 0}a2norte1{\displaystyle 2^{n}-1}Tenemos la funciónF{\displaystyle f}implementado como un oráculo cuántico. El oráculo mapea su estado de entrada.|incógnita|y{\displaystyle |x\rangle |y\rangle }a|incógnita|yF(incógnita){\displaystyle |x\rangle |y\oplus f(x)\rangle }, dónde{\displaystyle \oplus }denota la suma módulo 2. Aplicando el oráculo cuántico se obtiene:

12norte+1incógnita=02norte1|incógnita(|0F(incógnita)|1F(incógnita)).{\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}|x\rangle (|0\oplus f(x)\rangle -|1\oplus f(x)\rangle ).}

Para cadaincógnita,F(incógnita){\displaystyle x,f(x)}es 0 o 1. Al probar estas dos posibilidades, vemos que el estado anterior es igual a

12norte+1incógnita=02norte1(1)F(incógnita)|incógnita(|0|1).{\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}|x\rangle (|0\rangle -|1\rangle ).}

En este punto el último cúbit|0|12{\displaystyle {\frac {|0\rangle -|1\rangle }{\sqrt {2}}}}puede ignorarse y queda lo siguiente:

12norteincógnita=02norte1(1)F(incógnita)|incógnita.{\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}|x\rangle .}

A continuación, haremos que cada cúbit pase por una puerta de Hadamard . La transformación total sobre todosnorte{\displaystyle n}Los cúbits se pueden expresar con la siguiente identidad:

Hnorte|k=12nortej=02norte1(1)kj|j{\displaystyle H^{\otimes n}|k\rangle ={\frac {1}{\sqrt {2^{n}}}}\sum _{j=0}^{2^{n}-1}(-1)^{k\cdot j}|j\rangle }

(jk=j0k0j1k1jnorte1knorte1{\displaystyle j\cdot k=j_{0}k_{0}\oplus j_{1}k_{1}\oplus \cdots \oplus j_{n-1}k_{n-1}}es la suma del producto bit a bit). Esto da como resultado

12norteincógnita=02norte1(1)F(incógnita)[12nortey=02norte1(1)incógnitay|y]=y=02norte1[12norteincógnita=02norte1(1)F(incógnita)(1)incógnitay]|y.{\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}\left[{\frac {1}{\sqrt {2^{n}}}}\sum _{y=0}^{2^{n}-1}{\left(-1\right)}^{x\cdot y}|y\rangle \right]=\sum _{y=0}^{2^{n}-1}\left[{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}(-1)^{x\cdot y}\right]|y\rangle .}

A partir de esto, podemos ver que la probabilidad de un estadok{\displaystyle k}ser medido es

|12norteincógnita=02norte1(1)F(incógnita)(1)incógnitak|2{\displaystyle \left|{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}{\left(-1\right)}^{f(x)}{\left(-1\right)}^{x\cdot k}\right|^{2}}

La probabilidad de medirk=0{\displaystyle k=0}, correspondiente a|0norte{\displaystyle |0\rangle ^{\otimes n}}, es

|12norteincógnita=02norte1(1)F(incógnita)|2{\displaystyle {\bigg |}{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}{\bigg |}^{2}}

que se evalúa a 1 siF(incógnita){\displaystyle f(x)}es constante ( interferencia constructiva ) y 0 siF(incógnita){\displaystyle f(x)}está equilibrado ( interferencia destructiva ). En otras palabras, la medición final será|0norte{\displaystyle |0\rangle ^{\otimes n}}(todo ceros) si y solo siF(incógnita){\displaystyle f(x)}es constante y producirá algún otro estado siF(incógnita){\displaystyle f(x)}está equilibrado.

El algoritmo de Deutsch

El algoritmo de Deutsch es un caso especial del algoritmo general de Deutsch-Jozsa donde n = 1, de modo queF:{0,1}{0,1}{\displaystyle f\colon \{0,1\}\rightarrow \{0,1\}}Necesitamos comprobar la condiciónF(0)=F(1){\displaystyle f(0)=f(1)}Es equivalente a comprobarF(0)F(1){\displaystyle f(0)\oplus f(1)}(dónde{\displaystyle \oplus }es 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, entoncesF{\displaystyle f}es constante, de lo contrarioF{\displaystyle f}no es constante.

Comenzamos con el estado de dos cúbits|0|1{\displaystyle |0\rangle |1\rangle }y aplicar una puerta Hadamard a cada cúbit. Esto produce 12(|0+|1)(|0|1).{\displaystyle {\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle -|1\rangle ).}

Se nos proporciona una implementación cuántica de la función.F{\displaystyle f}que mapas|incógnita|y{\displaystyle |x\rangle |y\rangle }a|incógnita|F(incógnita)y{\displaystyle |x\rangle |f(x)\oplus y\rangle }Aplicando esta función a nuestro estado actual obtenemos 12(|0(|F(0)0|F(0)1)+|1(|F(1)0|F(1)1))=12((1)F(0)|0(|0|1)+(1)F(1)|1(|0|1))=(1)F(0)12(|0+(1)F(0)F(1)|1)(|0|1).{\displaystyle {\begin{aligned}&{\frac {1}{2}}(|0\rangle (|f(0)\oplus 0\rangle -|f(0)\oplus 1\rangle )+|1\rangle (|f(1)\oplus 0\rangle -|f(1)\oplus 1\rangle ))\\&={\frac {1}{2}}((-1)^{f(0)}|0\rangle (|0\rangle -|1\rangle )+(-1)^{f(1)}|1\rangle (|0\rangle -|1\rangle ))\\&=(-1)^{f(0)}{\frac {1}{2}}\left(|0\rangle +(-1)^{f(0)\oplus f(1)}|1\rangle \right)(|0\rangle -|1\rangle ).\end{aligned}}}

Ignoramos el segundo cúbit y la fase global y por lo tanto tenemos el estado 12(|0+(1)F(0)F(1)|1).{\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle +(-1)^{f(0)\oplus f(1)}|1\rangle ).}

Aplicando una puerta Hadamard a este estado tenemos 12(|0+|1+(1)F(0)F(1)|0(1)F(0)F(1)|1)=12((1+(1)F(0)F(1))|0+(1(1)F(0)F(1))|1).{\displaystyle {\begin{aligned}&{\frac {1}{2}}(|0\rangle +|1\rangle +(-1)^{f(0)\oplus f(1)}|0\rangle -(-1)^{f(0)\oplus f(1)}|1\rangle )\\&={\frac {1}{2}}((1+(-1)^{f(0)\oplus f(1)})|0\rangle +(1-(-1)^{f(0)\oplus f(1)})|1\rangle ).\end{aligned}}}

F(0)F(1)=0{\displaystyle f(0)\oplus f(1)=0}si y solo si medimos|0{\displaystyle |0\rangle }yF(0)F(1)=1{\displaystyle f(0)\oplus f(1)=1}si y solo si medimos|1{\displaystyle |1\rangle }. Entonces, con certeza sabemos siF(incógnita){\displaystyle f(x)}es 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.

Circuito cuántico equilibrado de Deutsch-Jozsa

Véase también

Referencias

  1. 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 .  
  2. 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 . 
  3. 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 . 
  4. 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 . 
  5. 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 .  
  • Conferencia de Deutsch sobre el algoritmo de Deutsch-Jozsa