Usuario:Emil1996/Taller

En computación cuántica, el algoritmo de Shor es un algoritmo cuántico para descomponer en factores un número N en tiempo O((log N)3) y espacio O(logN), así nombrado por Peter Shor.

El algoritmo de Shor es un procedimiento que permite encontrar factores de un número de una manera eficiente. La implementación de este algoritmo se puede llevar a cabo de manera clásica o utilizando circuitos cuánticos (que no han sido llevados a la práctica todavía). Esta última implementación es (por supuesto) la más conveniente cuando se desea encontrar el orden, un parámetro muy necesario a la hora de encontrar los factores primos de un cierto número. En todo este proceso se supondrá que ya se ha implementado un circuito cuántico para encontrar ese orden. ( es conocido).

El problema de la factorización. editar

Sea . Entonces, encontrar un factor , es encontrar una solución para la ecuación:

Es decir, se necesita encontrar un , tal que al dividir su cuadrado entre se tenga como resto 1.

A la hora de intentar abordar este problema, existen un par de teoremas que son útiles:

Teorema 1 editar

Sea , y sea una solución de la ecuación (*) (solución no trivial) donde es claro . Entonces: Ó ó es un factor no trivial del número .[1]

Teorema 2 editar

Sea impar con descomposición en factores primos . Sea además (aleatorio) que es coprimo con () y el orden de ese número entero, es decir, aquel tal que: . ( De este último paso, esto es, hallar r, se encarga el circuito cuántico correspondiente). Entonces:

Con estos dos teoremas en mente, ya se puede empezar a plantear la secuencia en la que está basada el algoritmo de factorización de Shor.

Notas:

La notación que se utiliza es, en todo momento coherente, en el sentido de que las variables que aparecen en los teoremas y fuera de ellos o en cualquier otro contexto de a continuación son las mismas.

Por otro lado, la relación que presentan las variables e es:. Como se va a poder ver en la siguiente sección.[1]

El algoritmo de Shor. editar

Este algoritmo sirve para factorizar números enteros de gran tamaño. Se exponen y se comentan todas las fases de este algoritmo. En todo momento, el algoritmo va a devolver un factor del número que se desea descomponer. Los tres primeros casos corresponden a una implementación clásica, en el sentido de que no es necesaria la presencia de ningún circuito cuántico. Corresponden por tanto a la eliminación de casos de tipo trivial o que una implementación clásica puede realizar con suficientemente buena eficiencia.

1) Si N es par. editar

En efecto, la primera comprobación que se realiza al número es el caso trivial de que su última cifra sea un número par. En tal caso, el algoritmo devuelve 2, y el programa podrá continuar con .

2) N es de la forma . editar

La siguiente fase, es implementar una comprobación para los números enteros mayores o iguales a 1 y números mayores o iguales a 2. Se ha de tener en cuenta este tipo de números para que (como se verá en el paso 4) al utilizar el teorema 2 la probabilidad de obtener un buen candidato a factor sea más alta del 75%. En este caso, el algoritmo, devuelve el factor a.

3) Procedimiento aleatorio. editar

Se toma un número tal que . Si , entonces el programa devuelve precisamente este número. Esto se hace solo para comprobar si el número elegido comparte factores con . En caso de que los dos números sean coprimos se sigue con el siguiente paso de la serie.

En este punto, dado el número natural anterior, se utilizan los algoritmos de estimación de fase y en concreto de orden, para hallar precisamente (el orden). Estos algoritmos como se puede ver en los enlaces, dependen de la implementación del circuito cuántico en cuestión.

4) Cálculo de y aplicación de los teoremas. editar

Como ya se dijo antes, partimos de que se conoce el orden. Ahora, se aplican los teoremas anteriores para intentar hallar este factor.

La primera parte de este último paso, consiste en la comprobación de si se cumplen los requisitos que el teorema 2 impone para asegurar una alta probabilidad. Esto ya se hizo en los procedimientos anteriores, pues se sabe que; es impar, tiene al menos dos factores primos distintos y es coprimo con . Bajo estas condiciones, es posible asegurar que existe una alta probabilidad de que el número x sea no trivial, esto es:

y que por supuesto es par.

Y habiendo comprobado esto, se está en disposición de aplicar el teorema 1 pues se cumplen a su vez todas las condiciones necesarias para poder aplicarlo y de esta forma obtener con alta probabilidad un factor de . Bien ó .

Como se ve todo este proceso depende de una cierta probabilidad de éxito. Si en algún punto el algoritmo falla, comienza de nuevo.[1][2][3]


Véase también editar

encontrar el orden para el algoritmo de Shor

Referencias editar

  1. a b c 1974-, Nielsen, Michael A., (2000). Quantum computation and quantum information. Cambridge University Press. ISBN 0521632358. OCLC 43641333. 
  2. Shor, Peter W. (1999-01). «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer». SIAM Review 41 (2): 303-332. ISSN 0036-1445. doi:10.1137/s0036144598347011. 
  3. «Un poco de computación cuántica. Algoritmos más comunes. Guillermo Morales Luna».