Sous-sections
Participants : Frédéric Chyzak,
François Morain, Bruno Salvy.
Mots clés : échelles asymptotiques,
génération aléatoire, fonctions spéciales, élimination
polynomiale, bases de Gröbner, courbes elliptiques .
Résumé :
Le projet ALGO développe des
algorithmes de calcul formel qui permettent : le
traitement de modèles combinatoires récursifs ;
l'analyse asymptotique automatique de nombreuses classes de
problèmes ; le traitement de fonctions spéciales et de
suites combinatoires de manière unifiée, et notamment leur
intégration ou leur sommation ; une arithmétique
efficace en très grande précision. Ces algorithmes sont
dans la plupart des cas validés par des implantations. Leur
développement est motivé par l'automatisation d'une
approche combinatoire à l'analyse d'algorithmes.
Les trois étapes fondamentales de
l'analyse d'algorithmes telle qu'elle est pratiquée au
projet ALGO sont la modélisation
combinatoire, la manipulation de séries génératrices et
l'analyse asymptotique. Chacune de ces étapes requiert des
capacités de calcul symbolique importantes, tant pour
l'application des méthodes symboliques que pour
l'expérimentation. Ce besoin explique l'importance de
l'activité en calcul formel au sein du projet. L'objectif à
long terme est de systématiser et d'automatiser ces trois
étapes.
Au cours des années ont été élaborés de nombreux
algorithmes et programmes. Les domaines mathématiques
permettant l'expression et la preuve de nos algorithmes sont
la combinatoire, l'analyse asymptotique, l'algèbre
différentielle (corps de Hardy et anneaux de polynômes non
commutatifs) ou les propriétés des courbes elliptiques sur
les corps finis. Notre travail en calcul formel est ainsi
complémentaire de celui des projets SAGA et
CAFE consacrés aux systèmes polynomiaux et aux
équations différentielles.
Comme pour l'analyse d'algorithmes, l'approche du projet
aux algorithmes du calcul formel est globalisante et
unificatrice. La résolution de problèmes appliqués mettant en
oeuvre des cryptosystèmes, de la combinatoire ou de l'analyse
d'algorithmes est abordée à un niveau de généralité qui
permet le développement d'une algorithmique de portée large.
Ainsi, les travaux sur les cryptosystèmes mettent en jeu des
courbes elliptiques et ont des retombées sur la factorisation
d'entiers et les tests de primalité ; les travaux sur la
combinatoire fournissent des générateurs aléatoires efficaces
susceptibles de nombreuses applications ; les travaux
sur l'analyse d'algorithmes ont abouti au développement d'une
algorithmique d'échelles asymptotiques très générale, dont le
besoin s'était fait sentir en intégration numérique et en
physique mathématique. Les outils développés dans le projet
touchent maintenant un public assez large d'utilisateurs du
calcul formel intéressés tant par la combinatoire que par les
manipulations de séries ou par l'analyse asymptotique. La
diversité de ce public est encore accrue par la présence de
certains de nos programmes dans les bibliothèques du système
de calcul formel MAPLE, l'un des deux
principaux systèmes généralistes actuellement
disponibles.
On peut distinguer quatre grandes directions de travail
dans notre activité en calcul formel: les structures
combinatoires, les suites et fonctions spéciales,
l'asymptotique automatique et l'algorithmique en
arithmétique.
Un langage de description généralisant les grammaires
context-free permet d'exprimer des objets aussi
divers que permutations, arbres binaires, arbres généraux,
partitions d'entiers ou d'ensembles, graphes fonctionnels ou
molécules chimiques, par exemple carbures ou alcools. À
partir d'une description de structure décomposable, il est
possible de (i) compter efficacement le nombre
d'objets d'une certaine taille répondant à la
spécification ; (ii) produire des
fonctions de génération aléatoire uniforme de faible
complexité -- utiles pour des tests
statistiques ; (iii) produire des
fonctions de génération exhaustive de ces
objets -- utiles pour des tests de robustesse de
procédures ; (iv) produire des itérateurs,
c'est-à-dire des fonctions permettant d'accéder
successivement à tous les objets d'une certaine taille, mais
sans les stocker tous en mémoire ;
(v) calculer des équations satisfaites par les
séries génératrices d'énumération de ces
objets -- utiles pour la phase d'analyse
asymptotique.
Le programme 
em
réalisé au début des années 90 par
B. Salvy et P. Zimmermann fournissait une partie de
ces fonctionnalités, mais sa portabilité et ses
fonctionnalités étaient limités par l'usage de
CAML en conjonction avec MAPLE.
L'objectif poursuivi depuis plusieurs années est de tirer
parti de l'expérience acquise avec 
em
pour réaliser une
version (COMBSTRUCT) entièrement intégrée en
MAPLE, en mettant l'accent sur la modularité,
la robustesse et la souplesse d'emploi.
Selon l'origine combinatoire du problème, les séries
génératrices que l'on est amené à étudier peuvent être
données sous des formes diverses. Elles peuvent être connues
sous forme explicite mais elles ne sont le plus souvent que
décrites sous forme implicite par une ou plusieurs équations,
fonctionnelles, différentielles ou aux différences. De même,
leurs coefficients peuvent vérifier des récurrences de
natures diverses. Manipuler ces fonctions définies
implicitement nécessite des innovations théoriques, ainsi
qu'un important effort d'implantation. Ce thème de recherche
touche aux fondements du calcul symbolique, où il apparaît
qu'il est paradoxalement souvent plus facile de traiter une
fonction lorsqu'elle est représentée comme solution
d'équations que lorsqu'elle est représentée sous forme close.
En particulier, les questions de simplification et de formes
normales qui sont une des difficultés majeures rencontrées
par l'utilisateur trouvent une bien meilleure réponse dans ce
contexte.
Le cas des solutions d'équations différentielles ou de
récurrences linéaires attire beaucoup l'attention de la
communauté de combinatoire et de calcul formel. De nombreuses
suites et fonctions spéciales sont définies par de telles
équations, qui bénéficient d'une algorithmique très riche,
implantée en grande partie dans le package
GFUN développé par B. Salvy et
P. Zimmermann (projet POLKA). Le pendant
multivarié de ces travaux est extrêmement prometteur,
puisqu'il permet d'envisager une approche algorithmique de
nombreux calculs avec des polynômes orthogonaux, des
fonctions spéciales, ou plus généralement des fonctions,
suites, séries ou distributions définies par un
système d'équations linéaires à coefficients
polynomiaux. Le travail mené par F. Chyzak considère des
systèmes d'opérateurs linéaires qui peuvent être
différentiels, aux différences, aux q-différences, ou de nombreux autres
types. Il s'avère que les opérations d'addition, de produit,
d'intégration ou de sommation peuvent s'effectuer
algorithmiquement par le biais de techniques d'élimination
sophistiquées dans des algèbres non commutatives d'opérateurs
linéaires. Le package MGFUN développé
par F. Chyzak valide et motive les recherches théoriques
correspondantes.
Les besoins de la combinatoire analytique en matière de
développements asymptotiques dépassent les capacités
actuelles des systèmes de calcul formel. En effet, les
calculs de coûts moyens et plus encore de variance donnent
systématiquement lieu à des annulations non seulement dans
les premiers termes des développements mais aussi dans
l'ordre de grandeur exponentiel des croissances. La
construction automatique des échelles asymptotiques
nécessaires et le calcul avec ces échelles pose de nombreux
problèmes sur lesquels le calcul formel est en progrès
rapide. Les premiers travaux sur ce sujet datent des
années 90. En 1988, G. Gonnet et
K. Geddes (créateurs du système MAPLE)
proposent un modèle permettant de traiter des formules de
complexité proche de la formule de Stirling. Puis
en 1990, John Shackell (University of Canterbury)
publie un algorithme qui permet de déterminer de manière
garantie la limite des fonctions exp-log (fonctions de
base de l'asymptotique). L'année suivante, la thèse de
B. Salvy propose une première implantation de
développements asymptotiques dans des échelles asymptotiques
générales. Depuis lors, grâce à une série de travaux en
commun de B. Salvy et J. Shackell, des classes de
plus en plus vastes de fonctions ont reçu un algorithme
permettant le calcul asymptotique de manière garantie. Ces
progrès n'ont pas toujours été suivi d'implantation, mais une
nouvelle structure de données pour les développements
asymptotiques, les multiséries, a vu le jour récemment.
L'algorithmisation de cette structure de données conduit à
revisiter et prolonger les algorithmes anciens, et mène à la
réalisation de prototypes permettant déjà de résoudre des
problèmes du niveau de la recherche. Cette structure de
données a fait l'objet d'une proposition aux développeurs du
système MAPLE. Là encore, on s'attaque à une
brique essentielle des systèmes de calcul formel, puisque les
séries sont la structure de données efficace utilisée pour
manipuler les polynômes, eux-mêmes à la base de nombreuses
structures de données.
La cryptologie à clefs
publiques repose principalement sur l'arithmétique des grands
nombres. C'est un thème de base de l'algorithmique, et elle
bénéficie de l'apport d'autres branches, comme par exemple la
complexité intrinsèque et l'analyse d'algorithmes.
Un axe de recherche récent étudié par F. Morain
concerne les aspects algorithmiques liés à l'utilisation des
courbes elliptiques sur les corps finis. Ces objets prennent
une importance grandissante dans les applications
industrielles liées à la cryptologie et au commerce
électronique. Une des retombées intéressantes des progrès
faits dans les domaines évoqués précédemment, hors la
cryptologie, concerne le calcul formel. Tous les systèmes de
calcul symbolique disposent d'une arithmétique entière en
précision arbitraire sur laquelle est ensuite développée tout
un empilement de couches logicielles de plus en plus
complexes. Un des exemples récents concerne la factorisation
de polynômes dans les corps finis, qui a bénéficié de
découvertes récentes de Shoup, faites en relation avec des
algorithmes puissants traitant des courbes elliptiques.
F. Morain a pour rattachement principal le LIX (École
Polytechnique) dans le cadre duquel sont développés et
valorisés les aspects cryptographiques de son action (voir le
rapport d'activité du LIX). Il participe à l'Action de
Recherche Coordonnée (ARC) Courbes où les compétences sont
mises en commun (avec le Projet CODES et
l'Université de Limoges) pour traiter des problèmes liés à
l'utilisation des courbes elliptiques et hyperelliptiques en
cryptographie.