Sous-sections
Participants : Frédéric Chyzak,
Marni Mishna, Bruno Salvy.
Mots clés : échelles asymptotiques,
génération aléatoire, fonctions spéciales, élimination
polynomiale, bases de Gröbner .
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. 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). 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 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
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 trois grandes directions de travail
dans notre activité en calcul formel: les structures
combinatoires, les suites et fonctions spéciales et
l'asymptotique automatique.
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ées 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 sont le plus souvent 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 fructueux,
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, Gaston Gonnet et
Keith 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é suivis 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.