Algoritmo de dixon

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 28 de mayo de 2021; las comprobaciones requieren 4 ediciones .

El algoritmo de Dixon  es un algoritmo de factorización que utiliza básicamente la idea de Legendre , que consiste en encontrar un par de enteros y tal que y

El método de Dixon es una generalización del método de Fermat .

Historia [1]

En la década de 1920, Maurice Krajczyk (1882-1957), generalizando el teorema de Fermat, sugirió que en lugar de pares de números que satisfagan la ecuación , busquen pares de números que satisfagan una ecuación más general . Krajczyk notó varios hechos útiles para resolver. En 1981, John Dickson publicó un método de factorización que desarrolló utilizando las ideas de Kraitzik y calculó su complejidad computacional. [2]

Descripción del algoritmo [3]

  1. Haz una base factorial que consista en todos los números primos , donde .
  2. Elige al azar
  3. Calcula _
  4. Verifique la uniformidad del número por divisiones de prueba. Si es un número suave , es decir , debe recordar los vectores y : .
  5. Repita el procedimiento de generación de números hasta encontrar los números suaves .
  6. Usando el método de Gauss, encuentre una relación lineal entre los vectores : y pon: .
  7. comprobar _ Si es así, repita el procedimiento de generación. Si no, entonces se encuentra una descomposición no trivial:
Prueba de corrección [4]
  1. Para que la fórmula sea correcta, la suma debe ser par. Vamos a demostrarlo:
  2. se sigue del hecho de que:

Ejemplo

Factoricemos el número .

Todos los números encontrados con los vectores correspondientes se escriben en la tabla.

337 23814 una 5 0 2 0 0
430 5390 una 0 una 2 una 0
519 96 5 una 0 0 0 0
600 980 2 0 una 2 0 0
670 125 0 0 3 0 0 0
817 39204 2 cuatro 0 0 2 0
860 21560 3 0 una 2 una 0

Resolviendo un sistema lineal de ecuaciones, obtenemos que . Después

Como consecuencia,

.

Resultó descomposición

Complejidad computacional [5]

Denotar por el número de enteros tales que y es un número suave, donde . Del teorema de de Bruijn-Erdős , donde . Esto significa que cada número suave, en promedio, se encontrará con intentos. Para comprobar si un número es suave, se deben realizar divisiones . De acuerdo con el algoritmo, es necesario encontrar un número suave. Así que la complejidad computacional de encontrar números

.

Complejidad computacional del método de Gauss a partir de ecuaciones

.

Por lo tanto, la complejidad total del algoritmo de Dixon

.

Teniendo en cuenta que el número de números primos es menor que el estimado por la fórmula , y que simplificando se obtiene

.

se elige de tal manera que sea mínimo. Luego sustituyendo obtenemos

.

La estimación realizada por Pomeranz sobre la base de un teorema más riguroso que el teorema de Bruijn-Erdös [6] da , mientras que la estimación original de complejidad de Dixon da .

Estrategias adicionales [7]

Considere estrategias adicionales que aceleren el funcionamiento del algoritmo.

estrategia LP

La estrategia LP (Large Prime Variation) utiliza números primos grandes para acelerar el procedimiento de generación de números .

Algoritmo

Deje que el número que se encuentra en el punto 4 no sea suave. Entonces se puede representar donde no es divisible por números de la base de factores. Es obvio que . Si además , entonces s es primo y lo incluimos en la base factorial. Esto le permite encontrar números suaves adicionales, pero aumenta la cantidad de números suaves requeridos en 1. Para volver a la base de factores original después del paso 5, haga lo siguiente. Si solo se encuentra un número, cuya expansión está incluida en un grado impar, entonces este número debe eliminarse de la lista y eliminarse de la base de factores. Si, por ejemplo, hay dos números y , entonces deben tacharse y agregarse el número . El indicador entrará en la expansión en un grado uniforme y estará ausente en el sistema de ecuaciones lineales.

Variación de estrategia

Es posible utilizar la estrategia PL con varios números primos que no están contenidos en la base de factores. En este caso , se utiliza la teoría de grafos para descartar números primos adicionales .

Complejidad computacional

La estimación teórica de la complejidad del algoritmo utilizando la estrategia LP, realizada por Pomerants, no difiere de la estimación de la versión original del algoritmo de Dixon:

.

Estrategia EAS

La estrategia EAS (rotura temprana) elimina algunas de las consideraciones al no completar la prueba de suavidad .

Algoritmo

se eligen los fijos . En el algoritmo de Dixon, se factoriza mediante divisiones de prueba por . En la estrategia, se elige EAS y el número se factoriza primero mediante divisiones de prueba por , y si después de la descomposición la parte no descompuesta sigue siendo mayor que , entonces se descarta la dada.

Variación de estrategia

Es posible utilizar una estrategia EAS con múltiples quiebres, es decir, con alguna secuencia ascendente y una secuencia descendente .

Complejidad computacional

Se estima el algoritmo de Dixon usando la estrategia EAS para

.

Estrategia PS

La estrategia PS utiliza el algoritmo de Pollard-Strassen , que para y encuentra el divisor primo mínimo del número de gcds en . [ocho]

Algoritmo

Fijo está seleccionado . En el algoritmo de Dixon, se factoriza mediante divisiones de prueba por . En la estrategia PS, . creemos _ Aplicamos el algoritmo de Pollard-Strassen, eligiendo para la parte no descompuesta, obtenemos la expansión .

Complejidad computacional

La complejidad del algoritmo de Dixon con estrategia PS es mínima en y es igual a

.

Notas

  1. Ishmukhametov, 2011 , pág. 115.
  2. Dixon, J.D.Factorización asintóticamente rápida de enteros  // Math . compensación : diario. - 1981. - vol. 36 , núm. 153 . - P. 255-260 . -doi : 10.1090/ S0025-5718-1981-0595059-1 . — .
  3. Cheryomushkin, 2001 , pág. 77-79.
  4. Vasilenko, 2003 , pág. 79.
  5. Cheryomushkin, 2001 , pág. 79-80.
  6. C. Pomerancia. Análisis y comparación de algunos algoritmos de factorización de enteros  //  HW Lenstra y R. Tijdeman, Eds., Computational Methods in Number Theory, Math Center Tracts —Part 1. Math Centrum, Ámsterdam: artículo. - 1982. - S. 89-139 . Archivado desde el original el 6 de noviembre de 2021.
  7. Vasilenko, 2003 , pág. 81-83.
  8. Cheryomushkin, 2001 , pág. 74-75.

Literatura