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 .
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]
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
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 .
Considere estrategias adicionales que aceleren el funcionamiento del algoritmo.
La estrategia LP (Large Prime Variation) utiliza números primos grandes para acelerar el procedimiento de generación de números .
AlgoritmoDeje 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 estrategiaEs 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 computacionalLa 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:
.La estrategia EAS (rotura temprana) elimina algunas de las consideraciones al no completar la prueba de suavidad .
Algoritmose 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 estrategiaEs posible utilizar una estrategia EAS con múltiples quiebres, es decir, con alguna secuencia ascendente y una secuencia descendente .
Complejidad computacionalSe estima el algoritmo de Dixon usando la estrategia EAS para
.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]
AlgoritmoFijo 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 computacionalLa complejidad del algoritmo de Dixon con estrategia PS es mínima en y es igual a
.