fbpx
Wikipedia

Algoritmo de Grover

En computación cuántica, el algoritmo de Grover es un algoritmo cuántico para la búsqueda en una secuencia no ordenada de datos con N componentes en un tiempo O (N1/2), y con una necesidad adicional de espacio de almacenamiento de O(logN) (véase notación O). Fue inventado por Lov K. Grover en 1996.

En una búsqueda normal de un dato, si tenemos una secuencia desordenada se debe realizar una inspección lineal, que necesita un tiempo de O (N), por lo que el algoritmo de Grover es una mejora bastante sustancial, evitando, además, la necesidad de la ordenación previa. La ganancia obtenida es "sólo" de la raíz cuadrada, lo que contrasta con otras mejoras de los algoritmos cuánticos que obtienen mejoras de orden exponencial sobre sus contrapartidas clásicas.

Al igual que otros algoritmos de naturaleza cuántica, el algoritmo de Grover es un algoritmo de carácter probabilístico, por lo que produce la respuesta correcta con una determinada probabilidad de error, que, no obstante, puede obtenerse tan baja como se desee por medio de iteraciones.

Aplicaciones

Aunque el propósito del algoritmo es, como ha sido indicado, la búsqueda en una secuencia, se podría describir de una manera más adecuada como la "inversión de una función". Así, si tenemos la función y=f (x), que puede ser evaluada en un computador cuántico, este algoritmo nos permite calcular el valor de x cuando se nos da como entrada el valor de y. Invertir una función puede relacionarse con la búsqueda en una secuencia, si consideramos que la misma es una función que produce el valor de y como la posición ocupada por el valor x en dicha secuencia.

El algoritmo de Grover también se puede utilizar para el cálculo de la media y la mediana de un conjunto de números, y para resolver otros problemas de naturaleza análoga. También se puede utilizar para resolver algunos problemas de naturaleza NP-completa, por medio de inspecciones exhaustivas en un espacio de posibles soluciones. Esto resulta en una apreciable mejora sobre soluciones clásicas.

Descripción

Inicialización

Se considera una secuencia desordenada con N componentes. El algoritmo requiere un espacio de estados N-dimensional H, que puede ser modelado con log2N qubits.

Numeremos las entradas de la secuencia con 0, 1,... (N-1); y seleccionemos un observable Ω, actuando sobre H, con N autovalores distintos conocidos. Cada uno de los autovalores de Ω codifica una de las entradas de la secuencia, de una forma que se describirá más adelante. Denotaremos los autoestados utilizando la notación bra-ket en la forma:

 

y los autovalores correspondientes como

 

Ahora tomamos un operador unario, Uω, que actúa como una subrutina que compara las diferentes entradas de acuerdo al criterio de búsqueda. El algoritmo no especifica como funciona la subrutina, pero debe ser una subrutina cuántica que trabaje bajo una superposición de estados. Además, debe actuar de manera especial sobre uno de los autoestados, |ω>, que corresponderá con la entrada que satisface el criterio de búsqueda. Más precisamente, requeriremos Uω con los siguientes efectos:

 
 

En concreto,

 .
 .
 .
 .

Nuestro objetivo es identificar el autoestado |ω>, o de manera equivalente, el autovalor ω, tal que Uω actúa especialmente sobre él.

Iteraciones del algoritmo

Los pasos del algoritmo de Grover son los siguientes:

  1. Inicializar el sistema al estado
     
  2. Realizar la siguiente iteración r (N) veces. Donde la función r (N) se describe más adelante.
    1. Aplicar el operador  
    2. Aplicar el operador  .
  3. Realizar la medida Ω. La medida corresponderá al valor λω con una cierta probabilidad que se puede aproximar a 1, para un cierto N>>1. A partir de λω, se puede obtener ω.

Podemos escribir las operaciones realizadas:

 .
 .
 .
 
 
 
 

Después de aplicar los dos operadores (   y   ), la amplitud del elemento buscado se ve incrementado. Y esta es una iteración de Grover.

Número de iteraciones

Ahora consideramos el plano definido por |s> y |ω>. Sea |ω×> que es perpendicular a |ω>. Entonces |ω> es uno de los vectores base, y tenemos

 

En términos geométricos, hay un ángulo (π/2 - θ) entre |ω> y |s>, donde θ dado por:

 
 

El operador Uω es un reflejo del hiperplano ortogonal a |ω> para los vectors en el plano definido por |s> y |ω>, además, actúa como un reflejo de la línea |ω×>. El operador Us es un reflejo de la línea |s>.

Entonces, el vector de estado permanece en el plano de |s> y |ω> tras cada aplicación de Us y tras cada aplicación de Uω, y se puede comprobar que el operador UsUω de cada paso de iteración rota el vector de estado en un ángulo de 2θ hacia |ω>.

El algoritmo se detendrá cuando el vector de estado se acerca a |ω> tras esto, las siguientes iteraciones rotan el vector de estado fuera de |ω>, reduciendo la probabilidad de obtener la respuesta correcta. El número de iteraciones necesarias es dado por r. Para alinear correctamente el vector de estado con |ω>, necesitamos:

 
 

Una consideración es que r debe ser entero, por lo que, en general, r será el entero más cercano a (π/θ - 2)/4. Entonces, el ángulo entre |ω> y el vector de estado final es O(θ), y la probabilidad de obtener una respuesta incorrecta es O(1 - cos2θ) = O (sin2θ).

Entonces, para N>>1, θ ≈ N-1/2, tenemos

 

Además, la probabilidad de obtener una respuesta incorrecta será O(1/N), que tiende a 0 para un valor de N suficientemente elevado.

Implementación

A continuación presentamos una implementación concreta del algoritmo de Grover. Supongamos que tenemos una secuencia de 2n elementos que vamos a referenciar por su índice x. Supongamos también que disponemos de una función f (x) que nos dice si el valor almacenado en la posición x es el que estamos buscando. En concreto sea f (x)=1 para el valor buscado y f (x)=0 para el resto.

Oráculo

 
Oráculo.

A partir de la función f (x) vamos a construir un oráculo, tal como se muestra en la figura de la derecha. El funcionamiento de este bloque es el mismo que el correspondiente del algoritmo de Deutsch-Jozsa. La operación de este bloque es:

 

Puesto que el último estado no se modifica, vamos a ignorarlo y escribiremos:

 

Inversión sobre la media

 
Inversión sobre la media.

El bloque que lo realiza se muestra en la figura de la derecha. Esta operación puede escribirse:

 

con  .

Esta operación se interpreta como inversión sobre la media, pues si lo aplicamos sobre un estado genérico  , obtenemos:

 ,

en donde  

Iteración de Grover

 
Algoritmo de Grover. En detalle se muestra una de las iteraciones.

Una iteración de Grover se compone de dos pasos:

  1. Aplicación del oráculo
  2. Inversión sobre la media

Por tanto, la iteración de Grover puede escribirse:

 .

El algoritmo completo se muestra en la figura de la derecha.

Interpretación

Hagamos las cuentas para la primera iteración de Grover. Preparamos un estado haciendo pasar el qubit |0> (realmente compuesto de n ceros) a través de una puerta de Hadamard:

 

Este estado pasa a través del oráculo, obteniendo:

 

A continuación, aplicamos la inversión sobre la media, y obtenemos:

 
 
 

Interpretemos ahora este resultado. Supongamos que en la posición xi se encuentra el valor buscado, esto es, f (xi)=1 y para el resto, f (x)=0, obtenemos:

 
 

Como puede observarse, el término que nos interesa aumenta su amplitud en comparación con los demás términos. Repitiendo esta operación en varias iteraciones, este efecto se verá incrementado. Si al final del algoritmo hacemos una medición, muy probablemente obtendremos el valor buscado.

Referencias

  1. Grover L.K.: A fast quantum mechanical algorithm for database search. Presentación original del algoritmo (en inglés).
  2. Grover L.K.: From Schrödinger's equation to quantum search algorithm. Versión pedagógica del algoritmo e historia (en inglés).
  3. .
  4. Michael A. Nielsen e Isaac L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Reino Unido, 2000, ISBN 0-521-63503-9.
  •   Datos: Q1028292

algoritmo, grover, computación, cuántica, algoritmo, grover, algoritmo, cuántico, para, búsqueda, secuencia, ordenada, datos, componentes, tiempo, necesidad, adicional, espacio, almacenamiento, logn, véase, notación, inventado, grover, 1996, búsqueda, normal, . En computacion cuantica el algoritmo de Grover es un algoritmo cuantico para la busqueda en una secuencia no ordenada de datos con N componentes en un tiempo O N1 2 y con una necesidad adicional de espacio de almacenamiento de O logN vease notacion O Fue inventado por Lov K Grover en 1996 En una busqueda normal de un dato si tenemos una secuencia desordenada se debe realizar una inspeccion lineal que necesita un tiempo de O N por lo que el algoritmo de Grover es una mejora bastante sustancial evitando ademas la necesidad de la ordenacion previa La ganancia obtenida es solo de la raiz cuadrada lo que contrasta con otras mejoras de los algoritmos cuanticos que obtienen mejoras de orden exponencial sobre sus contrapartidas clasicas Al igual que otros algoritmos de naturaleza cuantica el algoritmo de Grover es un algoritmo de caracter probabilistico por lo que produce la respuesta correcta con una determinada probabilidad de error que no obstante puede obtenerse tan baja como se desee por medio de iteraciones Indice 1 Aplicaciones 2 Descripcion 2 1 Inicializacion 2 2 Iteraciones del algoritmo 2 3 Numero de iteraciones 3 Implementacion 3 1 Oraculo 3 2 Inversion sobre la media 3 3 Iteracion de Grover 3 4 Interpretacion 4 ReferenciasAplicaciones EditarAunque el proposito del algoritmo es como ha sido indicado la busqueda en una secuencia se podria describir de una manera mas adecuada como la inversion de una funcion Asi si tenemos la funcion y f x que puede ser evaluada en un computador cuantico este algoritmo nos permite calcular el valor de x cuando se nos da como entrada el valor de y Invertir una funcion puede relacionarse con la busqueda en una secuencia si consideramos que la misma es una funcion que produce el valor de y como la posicion ocupada por el valor x en dicha secuencia El algoritmo de Grover tambien se puede utilizar para el calculo de la media y la mediana de un conjunto de numeros y para resolver otros problemas de naturaleza analoga Tambien se puede utilizar para resolver algunos problemas de naturaleza NP completa por medio de inspecciones exhaustivas en un espacio de posibles soluciones Esto resulta en una apreciable mejora sobre soluciones clasicas Descripcion EditarInicializacion Editar Se considera una secuencia desordenada con N componentes El algoritmo requiere un espacio de estados N dimensional H que puede ser modelado con log2N qubits Numeremos las entradas de la secuencia con 0 1 N 1 y seleccionemos un observable W actuando sobre H con N autovalores distintos conocidos Cada uno de los autovalores de W codifica una de las entradas de la secuencia de una forma que se describira mas adelante Denotaremos los autoestados utilizando la notacion bra ket en la forma 0 1 N 1 displaystyle 0 rangle 1 rangle cdots N 1 rangle y los autovalores correspondientes como l 0 l 1 l N 1 displaystyle lambda 0 lambda 1 cdots lambda N 1 Ahora tomamos un operador unario Uw que actua como una subrutina que compara las diferentes entradas de acuerdo al criterio de busqueda El algoritmo no especifica como funciona la subrutina pero debe ser una subrutina cuantica que trabaje bajo una superposicion de estados Ademas debe actuar de manera especial sobre uno de los autoestados w gt que correspondera con la entrada que satisface el criterio de busqueda Mas precisamente requeriremos Uw con los siguientes efectos U w w w displaystyle U omega omega rangle omega rangle U w x x para todo x w displaystyle U omega x rangle x rangle qquad mbox para todo x neq omega En concreto w w 1 displaystyle langle omega omega rangle 1 w x x w 0 displaystyle langle omega x rangle langle x omega rangle 0 U w w I 2 w w w w 2 w w w w displaystyle U omega omega rangle I 2 omega rangle langle omega omega rangle omega rangle 2 omega rangle langle omega omega rangle omega rangle U w x I 2 w w x x 2 w w x x displaystyle U omega x rangle I 2 omega rangle langle omega x rangle x rangle 2 omega rangle langle omega x rangle x rangle Nuestro objetivo es identificar el autoestado w gt o de manera equivalente el autovalor w tal que Uw actua especialmente sobre el Iteraciones del algoritmo Editar Los pasos del algoritmo de Grover son los siguientes Inicializar el sistema al estado s 1 N x x displaystyle s rangle frac 1 sqrt N sum x x rangle dd Realizar la siguiente iteracion r N veces Donde la funcion r N se describe mas adelante Aplicar el operador U w displaystyle U omega Aplicar el operador U s 2 s s I displaystyle U s 2 left s right rangle left langle s right I Realizar la medida W La medida correspondera al valor lw con una cierta probabilidad que se puede aproximar a 1 para un cierto N gt gt 1 A partir de lw se puede obtener w Podemos escribir las operaciones realizadas s s 1 displaystyle langle s s rangle 1 w s s w 1 N displaystyle langle omega s rangle langle s omega rangle frac 1 sqrt N U w s I 2 w w s s 2 w w s s 2 N w displaystyle U omega s rangle I 2 omega rangle langle omega s rangle s rangle 2 omega rangle langle omega s rangle s rangle frac 2 sqrt N omega rangle U s s 2 N w 2 s s I s 2 N w displaystyle U s s rangle frac 2 sqrt N omega rangle 2 left s right rangle left langle s right I s rangle frac 2 sqrt N omega rangle 2 s s s s 4 N s s w 2 N w displaystyle 2 left s right rangle left langle s right s rangle s rangle frac 4 sqrt N left s right rangle left langle s right omega rangle frac 2 sqrt N omega rangle 2 s s 4 N 1 N s 2 N w N 4 N s 2 N w displaystyle 2 s rangle s rangle frac 4 sqrt N cdot frac 1 sqrt N s rangle frac 2 sqrt N omega rangle frac N 4 N s rangle frac 2 sqrt N omega rangle 1 N N N 4 x w x 3 N 4 w displaystyle frac 1 N sqrt N left N 4 sum x neq w x rangle 3N 4 omega rangle right dd Despues de aplicar los dos operadores U w displaystyle U omega y U s displaystyle U s la amplitud del elemento buscado se ve incrementado Y esta es una iteracion de Grover Numero de iteraciones Editar Ahora consideramos el plano definido por s gt y w gt Sea w gt que es perpendicular a w gt Entonces w gt es uno de los vectores base y tenemos w s 1 N displaystyle langle omega s rangle frac 1 sqrt N En terminos geometricos hay un angulo p 2 8 entre w gt y s gt donde 8 dado por cos p 2 8 1 N displaystyle cos left frac pi 2 theta right frac 1 sqrt N sin 8 1 N displaystyle sin theta frac 1 sqrt N El operador Uw es un reflejo del hiperplano ortogonal a w gt para los vectors en el plano definido por s gt y w gt ademas actua como un reflejo de la linea w gt El operador Us es un reflejo de la linea s gt Entonces el vector de estado permanece en el plano de s gt y w gt tras cada aplicacion de Us y tras cada aplicacion de Uw y se puede comprobar que el operador UsUw de cada paso de iteracion rota el vector de estado en un angulo de 28 hacia w gt El algoritmo se detendra cuando el vector de estado se acerca a w gt tras esto las siguientes iteraciones rotan el vector de estado fuera de w gt reduciendo la probabilidad de obtener la respuesta correcta El numero de iteraciones necesarias es dado por r Para alinear correctamente el vector de estado con w gt necesitamos p 2 8 2 8 r displaystyle frac pi 2 theta 2 theta r r p 8 2 4 displaystyle r frac frac pi theta 2 4 Una consideracion es que r debe ser entero por lo que en general r sera el entero mas cercano a p 8 2 4 Entonces el angulo entre w gt y el vector de estado final es O 8 y la probabilidad de obtener una respuesta incorrecta es O 1 cos28 O sin28 Entonces para N gt gt 1 8 N 1 2 tenemos r p N 4 displaystyle r rightarrow frac pi sqrt N 4 Ademas la probabilidad de obtener una respuesta incorrecta sera O 1 N que tiende a 0 para un valor de N suficientemente elevado Implementacion EditarA continuacion presentamos una implementacion concreta del algoritmo de Grover Supongamos que tenemos una secuencia de 2n elementos que vamos a referenciar por su indice x Supongamos tambien que disponemos de una funcion f x que nos dice si el valor almacenado en la posicion x es el que estamos buscando En concreto sea f x 1 para el valor buscado y f x 0 para el resto Oraculo Editar Oraculo A partir de la funcion f x vamos a construir un oraculo tal como se muestra en la figura de la derecha El funcionamiento de este bloque es el mismo que el correspondiente del algoritmo de Deutsch Jozsa La operacion de este bloque es U f x 0 1 1 f x x 0 1 displaystyle U f x rangle 0 rangle 1 rangle 1 f x x rangle 0 rangle 1 rangle Puesto que el ultimo estado no se modifica vamos a ignorarlo y escribiremos U f x 1 f x x displaystyle U f x rangle 1 f x x rangle Inversion sobre la media Editar Inversion sobre la media El bloque que lo realiza se muestra en la figura de la derecha Esta operacion puede escribirse H n 2 0 0 I H n 2 ps ps I displaystyle H oplus n 2 0 rangle langle 0 I H oplus n 2 psi rangle langle psi I con ps 1 2 n x 0 2 n 1 x displaystyle textstyle psi frac 1 sqrt 2 n sum x 0 2 n 1 x rangle Esta operacion se interpreta como inversion sobre la media pues si lo aplicamos sobre un estado generico a x 0 2 n 1 a x x displaystyle textstyle a sum x 0 2 n 1 a x x rangle obtenemos 2 ps ps I x 0 2 n 1 a x x x 0 2 n 1 2 a a x x displaystyle 2 psi rangle langle psi I sum x 0 2 n 1 a x x rangle sum x 0 2 n 1 left 2 langle a rangle a x right x rangle en donde a 1 2 n x 0 2 n 1 a x displaystyle textstyle langle a rangle 1 2 n sum x 0 2 n 1 a x Iteracion de Grover Editar Algoritmo de Grover En detalle se muestra una de las iteraciones Una iteracion de Grover se compone de dos pasos Aplicacion del oraculo Inversion sobre la mediaPor tanto la iteracion de Grover puede escribirse G f 2 ps ps I U f displaystyle G f 2 psi rangle langle psi I U f El algoritmo completo se muestra en la figura de la derecha Interpretacion Editar Hagamos las cuentas para la primera iteracion de Grover Preparamos un estado haciendo pasar el qubit 0 gt realmente compuesto de n ceros a traves de una puerta de Hadamard a H n 0 1 2 n x 0 2 n 1 x displaystyle a rangle H oplus n 0 rangle frac 1 sqrt 2 n sum x 0 2 n 1 x rangle Este estado pasa a traves del oraculo obteniendo b U f a 1 2 n x 0 2 n 1 1 f x x displaystyle b rangle U f a rangle frac 1 sqrt 2 n sum x 0 2 n 1 1 f x x rangle A continuacion aplicamos la inversion sobre la media y obtenemos c 2 ps ps I b 1 2 n x 0 2 n 1 2 lt b gt b x x displaystyle c rangle 2 psi rangle langle psi I b rangle frac 1 sqrt 2 n sum x 0 2 n 1 2 lt b gt b x x rangle 1 2 n 2 n x 0 2 n 1 2 y 0 2 n 1 b y 2 n b x x displaystyle frac 1 2 n sqrt 2 n sum x 0 2 n 1 left 2 left sum y 0 2 n 1 b y right 2 n b x right x rangle dd 1 2 n 2 n x 0 2 n 1 2 y 0 2 n 1 1 f y 2 n 1 f x x displaystyle frac 1 2 n sqrt 2 n sum x 0 2 n 1 left 2 left sum y 0 2 n 1 1 f y right 2 n 1 f x right x rangle dd Interpretemos ahora este resultado Supongamos que en la posicion xi se encuentra el valor buscado esto es f xi 1 y para el resto f x 0 obtenemos c 1 2 n 2 n x 0 2 n 1 2 2 n 1 1 1 2 n 1 f x x displaystyle c rangle frac 1 2 n sqrt 2 n sum x 0 2 n 1 left 2 left 2 n 1 1 1 right 2 n 1 f x right x rangle 2 n 1 2 n 4 2 n 2 n x i 2 n 1 2 n 4 2 n 2 n x 0 x x i 2 n 1 x displaystyle frac 2 n 1 2 n 4 2 n sqrt 2 n x i rangle frac 2 n 1 2 n 4 2 n sqrt 2 n sum x 0 x neq x i 2 n 1 x rangle dd Como puede observarse el termino que nos interesa aumenta su amplitud en comparacion con los demas terminos Repitiendo esta operacion en varias iteraciones este efecto se vera incrementado Si al final del algoritmo hacemos una medicion muy probablemente obtendremos el valor buscado Referencias EditarGrover L K A fast quantum mechanical algorithm for database search Presentacion original del algoritmo en ingles Grover L K From Schrodinger s equation to quantum search algorithm Version pedagogica del algoritmo e historia en ingles https web archive org web 20140201230754 http www bell labs com user feature archives lkgrover Notas de las Charlas Introductorias a la Computacion Cuantica Alejandro Diaz Caro Michael A Nielsen e Isaac L Chuang Quantum Computation and Quantum Information Cambridge University Press Reino Unido 2000 ISBN 0 521 63503 9 Datos Q1028292Obtenido de https es wikipedia org w index php title Algoritmo de Grover amp oldid 119987644, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos