Projet : ALGO

previous up next contents
Précédent : Analyse d'algorithmes Remonter : Fondements scientifiques Suivant : Algorithmiques des séquences


Sous-sections


   
Calcul formel



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 du projet SAFIR consacré aux systèmes polynomiaux.

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 MAPLE.

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 des nombres.

Structures combinatoires

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 $ \Lambda$$ \Upsilon$$ \Omega$ 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 $ \Lambda$$ \Upsilon$$ \Omega$ 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. La possibilité de produire des visualisations de grandes structures décomposables est par ailleurs étudiée au projet  POLKA par P. Zimmermann.

Suites et fonctions spéciales

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 dans sa thèse 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.

Séries et échelles asymptotiques

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.

Arithmétique en très grande précision

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 symboliques 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.



previous up next contents
Précédent : Analyse d'algorithmes Remonter : Fondements scientifiques Suivant : Algorithmiques des séquences