Factorisation de Dixon
En arithmétique modulaire, la méthode de factorisation de Dixon (aussi connue comme l'algorithme de Dixon) est un algorithme de décomposition en produit de facteurs premiers à but général. Le crible quadratique est une modification de l'idée de base utilisée dans la méthode de Dixon. L'algorithme a été proposé par John D. Dixon, un mathématicien de l'université Carleton, et publié en 1981[1].
Idée de base
La méthode de Dixon est basée sur la recherche d'une congruence de carrés. La méthode naïve de recherche d'une telle congruence est la sélection aléatoire de valeurs et espérer que cela satisfait la congruence :
où est l'entier naturel à factoriser. Dans la pratique, sélectionner aléatoirement les valeurs de x prendra un long temps impraticable pour trouver une congruence de carrés. La méthode de Dixon est basée sur la satisfaction d'une condition plus faible plusieurs fois, les résultats de ces valeurs peuvent être combinées en une congruence de carrés.
Méthode
Premièrement, un ensemble de nombres premiers inférieurs à une certaine borne B est choisi. Cet ensemble de nombres premiers est appelé la base de facteurs. Alors, en utilisant le polynôme
plusieurs valeurs de sont testées pour voir si se factorise complètement sur la base des facteurs. S'il le fait, la paire est stockée. Une telle paire est appelée une relation. Puis, une fois que le nombre de relations collectées dépasse la taille de la base de facteurs, nous pouvons entrer au niveau suivant.
Les valeurs sont factorisées (ceci est facile car nous sommes certains qu'ils se factorisent complètement sur la base des facteurs) et les exposants des facteurs premiers sont convertis dans un vecteur d'exposant mod 2. Par exemple, si la base de facteurs est {2, 3, 5, 7} et la valeur de est 30 870, nous avons :
Ceci donne un vecteur d'exposants de :
ou plus généralement :
Si nous pouvons trouver une certaine manière pour ajouter ces vecteurs d'exposants ensemble (équivalent à la multiplication des relations correspondantes ensemble) pour produire le vecteur nul (mod 2), alors nous pouvons obtenir une congruence de carrés. Ainsi nous pouvons placer les vecteurs d'exposants ensemble dans une matrice, et formuler une équation :
Ceci peut être converti en une équation matricielle :
Cette équation matricielle est alors résolue (en utilisant, par exemple, l'élimination de Gauss) pour trouver le vecteur c. Alors :
où les produits sont pris sur tous les pour lesquels . À cause de la manière utilisée pour la résolution de c, la partie droite de la congruence ci-dessus est un carré. Nous avons, alors, une congruence de carrés.
Optimisations
Le crible quadratique est une optimisation de la méthode de Dixon. Il résout une congruence quadratique pour trouver des valeurs de x plus rapidement qu'une simple sélection aléatoire.
D'autres manières pour optimiser la méthode de Dixon incluent l'usage d'un meilleur algorithme pour résoudre l'équation matricielle. En pratique, l'algorithme de Lanczos est souvent utilisé. Aussi, la taille de la base de facteurs doit être choisie avec précaution. Si elle est trop petite, il sera difficile de trouver les nombres qui se factoriseront complètement sur elle. Si elle est trop grande, trop de relations devront être collectées.
Notes et références
- John D. Dixon, « Asymptotically fast factorization of integers », Mathematics of Computation, vol. 36, no 153, , p. 255-260 (DOI 10.1090/S0025-5718-1981-0595059-1, JSTOR 2007743).