Sous-sections

Polynômes univariés

Mots clés : zéro réel, isolation, factorisation, résolution par radicaux, corps fini .



Participants : Ethan Cotterill [stagiaire MIT], Guillaume Hanrot, Fabrice Rouillier, Paul Zimmermann.

Résumé :

Deux types de résultats ont été obtenus sur l'étude des racines des polynômes en une variable. D'une part, nous avons revisité l'algorithme d'USPENSKY mis au point par Collins et Akritas en proposant une nouvelle variante, optimale en occupation mémoire. Nous avons cette année étendu ces résultats en mettant au point une version hybride (utilisant une arithmétique flottante) et généralisé l'utilisation de ces techniques au cas des polynômes à coefficients algébriques réels.

D'autre part, des résultats ont été obtenus sur la factorisation de polynômes sur les extensions algébriques de Q (corps de nombres) ou l'expression de racines d'équations par radicaux quand cela est possible.

Zéros réels

Dans [46], nous proposons une description unifiée de l'ensemble des variantes de l'algorithme d'USPENSKY pour l'isolation des zéros réels (par des intervalles à bornes rationnelles) de polynômes en une variable à coefficients dans un corps archimédien. L'ensemble des outils introduits nous a permis de produire une nouvelle variante de l'algorithme, utilisant le même nombre d'opérations arithmétiques que les variantes les plus efficaces, mais optimale en occupation mémoire. Ce progrès considérable permet de traiter maintenant de nouvelles classes d'exemples jusqu'alors inaccessibles (polynômes orthogonaux de degré 1000, polynômes issus de processus d'élimination).

Nous avons aussi cherché à remplacer l'arithmétique exacte, jusqu'alors utilisée, par une arithmétique d'intervalles multi-précision (MPFI) basée sur la bibliothèque MPFR (voir section 5.1), avec pour objectif de fournir un algorithme plus rapide (arithmétique en faible précision) mais préservant l'exactitude du résultat. Il y avait deux obstacles principaux :

L'utilisation de la règle de Descartes n'impose pas une précision trop grande puisque seuls les signes des coefficients calculés importent. Dans le cadre de l'utilisation d'une arithmétique d'intervalles, il convient donc de rajouter un test d'arrêt dès lors que l'on ne peut calculer cette borne c'est-à-dire en gros dès lors que 0 apparaît dans un intervalle. Les spécifications de l'algorithme résultant sont de ce fait modifiées : il prend en entrée un polynôme et retourne une liste d'intervalles contenant une et une seule racine, et éventuellement une autre liste d'intervalles pour lesquels aucune décision concernant la présence de zéros réels n'a été possible. Lorsque les coefficients des polynômes sont représentés par des intervalles, l'algorithme traite, en quelque sorte, une famille de polynômes. On peut montrer simplement que, dès lors que les arbres de calcul induits par l'application de l'algorithme sur ces polynômes divergent (intervalles actifs différents), le même calcul effectué avec une arithmétique d'intervalles induira des problèmes de décision de signes que l'on pourra traiter comme ci-dessus. En particulier, si une famille de polynômes représentée par un polynôme dont les coefficients sont des intervalles contient un polynôme avec facteurs multiples, un problème de décision de signe apparaîtra nécessairement. Ceci implique que l'algorithme d'Uspensky avec arithmétique d'intervalles muni des spécifications précédentes terminera toujours. Dans le cas où le polynôme d'entrée est à coefficients exacts, on peut alors faire le calcul en précision fixe (arithmétique d'intervalle) pour ne traiter ensuite que les ouverts de la droite réelle pour lesquels aucune décision n'a été possible. Grâce à l'ensemble de fonctions décrites dans [46], le calcul peut alors être repris à l'endroit exact où il a échoué avec une précision plus grande ou une arithmétique exacte, ce qui donne un algorithme adaptatif, utilisant le minimum de précision nécessaire, optimal en mémoire, plus rapide que toutes les versions existantes et fournissant à coup sûr un résultat exact.

Cette nouvelle variante de l'algorithme d'USPENSKY sert de base aux routines de tracé de courbes implicites (TCI), et d'opération terminale dans le processus d'isolation de zéros réels de systèmes zéro-dimensionnels.

Avec un algorithme permettant de traiter, au moins partiellement, des polynômes dont les coefficients sont donnés par des intervalles, il était naturel de s'intéresser à la résolution de polynômes à coefficients algébriques réels (c'est-à-dire de systèmes triangulaires en deux variables), et plus généralement aux solutions réelles de systèmes triangulaires zéro-dimensionnels. A priori, trois méthodes permettent d'appréhender ce type de problèmes :

La version (I) est la plus simple mais également la moins efficace puisqu'elle concentre toute l'information sur le système en un seul polynôme, parfois délicat à calculer. La version (III) ne permet pas de conclure assurément puisque le polynôme à traiter ne sera jamais connu exactement. Enfin, la version (II) pose un problème puisqu'on ne peut, a priori, traiter que des polynômes sans facteur carré. Cette difficulté peut cependant être facilement contournée en assurant certaines propriétés : ensemble triangulaire régulier séparable dont le premier polynôme (en une variable) est sans facteur carré.

Comme l'illustre le travail effectué par E. Cotterill durant son stage au LORIA, la bonne façon de résoudre le problème consiste à débuter avec la méthode (III) et de basculer sur (II) en cas d'échec. Cette stratégie a été employée avec succès sur plusieurs séries d'intersections de quadriques proposées par le projet ISA (INRIA Lorraine) : la rapidité des calculs engendrés et l'exactitude des résultats fournis semblent montrer que cet outil de calcul est bien adapté pour le traitement d'applications réelles.

Résolution par radicaux

La section précédente explique l'étude de la recherche de solutions numériques de polynômes en une variable. Il arrive que l'on soit intéressé par les solutions formelles exprimées comme une imbrication de radicaux. Un résultat théorique dû à Galois et dans le principe effectif explique à quelle condition cela est possible (i.e., que le groupe de Galois de l'équation soit résoluble).

G. Hanrot et François Morain (LIX, École Polytechnique) ont repris le travail de Galois et ont complètement explicité comment, à partir d'approximations numériques des racines dans une clôture algébrique complexe ou p-adique et d'une description de l'action du groupe de Galois comme permutation sur les racines, il est possible de construire la suite d'extensions dont la théorie de Galois prédit l'existence, et de résoudre chacune des équations relatives correspondantes par radicaux. Ce travail a été publié dans les actes de la conférence ISSAC'01 [34]. Notons que ce travail pourrait avoir des applications dans le cadre des preuves de primalité utilisant l'algorithme ECPP (Elliptic Curve Primality Proving), dû à Atkin et Morain.

Factorisation sur les corps de nombres

Un des problèmes importants du calcul formel est la factorisation des polynômes en une variable sur un corps donné. Un algorithme récent de van Hoeij [vH] a nettement amélioré la situation dans le cas où le corps de base est Q. Un travail de Belabas (Université Paris XI), Hanrot et Zimmermann [43] montre comment résoudre les problèmes qui se posent quand on essaie d'étendre ces méthodes au cas des extensions algébriques de Q.

Notons que le travail du paragraphe précédent nécessite en particulier la factorisation de polynômes cyclotomiques sur les corps de nombres (polynômes dont les racines sont les racines primitives de l'unité d'un certain ordre).

Avec D. Lin (Académie des Sciences de Chine, Pékin), D. Wang [24] a présenté une méthode pour la factorisation de polynômes sur des extensions algébriques de corps, méthode qu'il a introduite et implantée en 1992.

Factorisation de trinômes sur GF(2)

Les polynômes creux sont très intéressants pour les applications car ils donnent lieu à des calculs plus rapides. Sur le corps fini GF(2) à deux éléments, les polynômes creux les plus intéressants sont les trinômes xr + xs + 1. Une des applications importantes est la génération aléatoire : un polynôme primitif de degré r sur GF(2) permet de construire un générateur aléatoire de période 2r - 1. Avec R. Brent (Oxford) et Samuli Larvala (Helsinki), nous nous sommes intéressés aux trinômes sur GF(2) dont le degré r est un exposant de Mersenne, c'est-à-dire tels que 2r - 1 est premier. Cela permet de ramener le test de primitivité à celui (plus simple) d'irreductibilité. Dans [44], un nouvel algorithme est proposé pour tester l'irreductibilité d'un trinôme sur GF(2) ; cet algorithme apporte à la fois un gain en mémoire et en temps de calcul. Une implantation en C de cet algorithme nous a permis de vérifier les calculs effectués par Kumada et al.[*], et de trouver un trinôme « oublié » par ces auteurs, à savoir x859433 + x170340 + 1. Nous avons effectué une recherche complète pour r = 3021377 [44], et la recherche pour r = 6972593 (plus grand exposant de Mersenne connu) est en cours, grâce notamment au soutien du CINES.