Articulo de referencia

Algoritmo de Bernstein-Vazirani

Aplique la función utilizando el oráculo a una superposición de estados y determine la cadena secreta mediante medición. El algoritmo de Bernstein-Vazirani , que resuelve el pro...

Aplique la función utilizando el oráculo a una superposición de estados y determine la cadena secreta mediante medición.

El algoritmo de Bernstein-Vazirani , que resuelve el problema de Bernstein-Vazirani , es un algoritmo cuántico inventado por Ethan Bernstein y Umesh Vazirani en 1997. [ 1 ] Es una versión restringida del algoritmo de Deutsch-Jozsa donde, en lugar de distinguir entre dos clases diferentes de funciones, intenta aprender una cadena codificada en una función. [ 2 ] El algoritmo de Bernstein-Vazirani fue diseñado para demostrar una separación de oráculo entre las clases de complejidad BQP y BPP . [ 1 ]

Planteamiento del problema

Dado un oráculo que implementa una funciónF:{0,1}norte{0,1}{\displaystyle f\colon \{0,1\}^{n}\rightarrow \{0,1\}}en el cualF(incógnita){\displaystyle f(x)}se promete que será el producto escalar entreincógnita{\displaystyle x}y una cadena secretas{0,1}norte{\displaystyle s\in \{0,1\}^{n}}módulo 2,F(incógnita)=incógnitas=incógnita1s1incógnita2s2incógnitanortesnorte{\displaystyle f(x)=x\cdot s=x_{1}s_{1}\oplus x_{2}s_{2}\oplus \cdots \oplus x_{n}s_{n}}, encontrars{\displaystyle s}.

Algoritmo

Clásicamente, el método más eficiente para encontrar la cadena secreta es evaluando la función.norte{\displaystyle n}veces con los valores de entradaincógnita=2i{\displaystyle x=2^{i}}a pesar dei{0,1,,norte1}{\displaystyle i\in \{0,1,\dots ,n-1\}}: [ 2 ]

F(10000norte)=s1F(01000norte)=s2F(00100norte)=s3F(00001norte)=snorte{\displaystyle {\begin{aligned}f(1000\cdots 0_{n})&=s_{1}\\f(0100\cdots 0_{n})&=s_{2}\\f(0010\cdots 0_{n})&=s_{3}\\&\,\,\,\vdots \\f(0000\cdots 1_{n})&=s_{n}\\\end{aligned}}}

A diferencia de la solución clásica que necesita al menosnorte{\displaystyle n}consultas de la función para encontrars{\displaystyle s}, solo se necesita una consulta utilizando computación cuántica. El algoritmo cuántico es el siguiente: [ 2 ]

Aplicar una transformación de Hadamard alnorte{\displaystyle n}estado del cúbit|0norte{\displaystyle |0\rangle ^{\otimes n}}Llegar

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

A continuación, aplique el oráculo.UF{\displaystyle U_{f}}que transforma|incógnita(1)F(incógnita)|incógnita{\displaystyle |x\rangle \to (-1)^{f(x)}|x\rangle }Esto se puede simular mediante el oráculo estándar que transforma|b|incógnita|bF(incógnita)|incógnita{\displaystyle |b\rangle |x\rangle \to |b\oplus f(x)\rangle |x\rangle }aplicando este oráculo a|0|12|incógnita{\displaystyle {\frac {|0\rangle -|1\rangle }{\sqrt {2}}}|x\rangle }. ({\displaystyle \oplus }(denota la suma módulo dos.) Esto transforma la superposición en

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 .}

Se aplica otra transformación de Hadamard a cada cúbit, lo que hace que para los cúbits dondesi=1{\displaystyle s_{i}=1}, su estado se convierte de|{\displaystyle |-\rangle }a|1{\displaystyle |1\rangle }y para cúbits dondesi=0{\displaystyle s_{i}=0}, su estado se convierte de|+{\displaystyle |+\rangle }a|0{\displaystyle |0\rangle }Para obteners{\displaystyle s}, una medición en la base estándar ({|0,|1}{\displaystyle \{|0\rangle ,|1\rangle \}}) se realiza en los cúbits.

Gráficamente, el algoritmo puede representarse mediante el siguiente diagrama, dondeHnorte{\displaystyle H^{\otimes n}}denota la transformada de Hadamard ennorte{\displaystyle n}cúbits:

|0norteHnorte12norteincógnita{0,1}norte|incógnitaUF12norteincógnita{0,1}norte(1)F(incógnita)|incógnitaHnorte12norteincógnita,y{0,1}norte(1)F(incógnita)+incógnitay|y=|s{\displaystyle |0\rangle ^{n}\xrightarrow {H^{\otimes n}} {\frac {1}{\sqrt {2^{n}}}}\sum _{x\in \{0,1\}^{n}}|x\rangle \xrightarrow {U_{f}} {\frac {1}{\sqrt {2^{n}}}}\sum _{x\in \{0,1\}^{n}}(-1)^{f(x)}|x\rangle \xrightarrow {H^{\otimes n}} {\frac {1}{2^{n}}}\sum _{x,y\in \{0,1\}^{n}}(-1)^{f(x)+x\cdot y}|y\rangle =|s\rangle }

La razón por la que el último estado es|s{\displaystyle |s\rangle }es porque, para un caso particulary{\displaystyle y},

12norteincógnita{0,1}norte(1)F(incógnita)+incógnitay=12norteincógnita{0,1}norte(1)incógnitas+incógnitay=12norteincógnita{0,1}norte(1)incógnita(sy)=1 si sy=0,0 de lo contrario.{\displaystyle {\frac {1}{2^{n}}}\sum _{x\in \{0,1\}^{n}}(-1)^{f(x)+x\cdot y}={\frac {1}{2^{n}}}\sum _{x\in \{0,1\}^{n}}(-1)^{x\cdot s+x\cdot y}={\frac {1}{2^{n}}}\sum _{x\in \{0,1\}^{n}}(-1)^{x\cdot (s\oplus y)}=1{\text{ si }}s\oplus y={\vec {0}},\,0{\text{ en caso contrario}}.}

Desdesy=0{\displaystyle s\oplus y={\vec {0}}}es cierto solo cuandos=y{\displaystyle s=y}, esto significa que la única amplitud distinta de cero está en|s{\displaystyle |s\rangle }. Por lo tanto, al medir la salida del circuito en la base computacional se obtiene la cadena secreta.s{\displaystyle s}.

Se ha propuesto una generalización del problema de Bernstein-Vazirani que consiste en encontrar una o más claves secretas utilizando un oráculo probabilístico. [ 3 ] Este es un problema interesante para el cual un algoritmo cuántico puede proporcionar soluciones eficientes con certeza o con un alto grado de confianza, mientras que los algoritmos clásicos no logran resolver el problema en el caso general.

Complejidad clásica frente a complejidad cuántica

El problema de Bernstein-Vazirani se suele plantear en su versión sin decisión . En esta forma, es un ejemplo de un problema resoluble por una máquina de Turing cuántica (QTM) conO(1){\displaystyle O(1)}consultas al oráculo del problema, pero para las cuales cualquier algoritmo de máquina de Turing probabilística (PTM) debe realizarΩ(norte){\displaystyle \Omega (n)}consultas.

Para proporcionar una separación entre BQP y BPP , el problema debe reformularse como un problema de decisión (ya que estas clases de complejidad se refieren a problemas de decisión). Esto se logra con una construcción recursiva y la inclusión de un segundo oráculo aleatorio. [ 1 ] [ 4 ] El problema de decisión resultante es resoluble por un QTM conO(norte){\displaystyle O(n)}consultas al oráculo del problema, mientras que un PTM debe realizarΩ(norteregistronorte){\displaystyle \Omega (n^{\log n})}consultas para resolver el mismo problema. Por lo tanto, Bernstein-Vazirani proporciona una separación superpolinómica entre BPP y BQP.

Implementación de Qiskit del algoritmo de Bernstein-Vazirani

El circuito cuántico que se muestra aquí es un ejemplo sencillo de cómo se puede implementar el algoritmo de Bernstein-Vazirani en Python utilizando Qiskit , un marco de desarrollo de software de computación cuántica de código abierto de IBM.

Circuito cuántico de Bernstein-Vazirani

Véase también

Referencias

  1. 1 2 3 Ethan Bernstein y Umesh Vazirani (1997). "Teoría de la complejidad cuántica". SIAM Journal on Computing . 26 (5): 1411– 1473. doi : 10.1137/S0097539796300921 .
  2. 1 2 3 S D Fallek, CD Herold, BJ McMahon, KM Maller, KR Brown y JM Amini (2016). "Implementación de transporte del algoritmo de Bernstein-Vazirani con cúbits iónicos" . New Journal of Physics . 18. arXiv : 1710.01378 . doi : 10.1088/1367-2630/aab341 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  3. Alok Shukla y Prakash Vedula (2023). "Una generalización del algoritmo de Bernstein-Vazirani con múltiples claves secretas y un oráculo probabilístico". Procesamiento de información cuántica . 22:244 (6): 1– 18. arXiv : 2301.10014 . Bibcode : 2023QuIP...22..244S . doi : 10.1007/s11128-023-03978-3 .
  4. Bacon, Dave (2006). "CSE 599d - Computación cuántica: El algoritmo recursivo y no recursivo de Bernstein-Vazirani" (PDF) . Archivado del original (PDF) el 1 de diciembre de 2024. Consultado el 17 de enero de 2025 .