Précédent : Calcul Formel Remonter : Calcul
Formel Suivant : Séries et échelles
asymptotiques
La bibliothèque Combstruct a été conç ue et développée par le projet ALGO (Ph. Flajolet, B. Salvy, E. Murray) en liaison avec le projet EURECA de Nancy (P. Zimmermann). Elle fait l'objet d'une collaboration régulière avec les groupes de Waterloo (Université et Compagnie WMS) et s'est vue intégrée totalement dans la dernière mouture du système MAPPLE (1996, release 5.4). Elle permet actuellement la génération aléatoire ou exhaustive, le calcul automatique de dénombrements et de séries génératrices, et est à ce titre une aide de portée générale pour la simulation et le test systématique de modèles combinatoires. Disons qu'en l'état actuel, et sur son créneau, son expertise est de l'ordre de celle d'un étudiant en début de 3ème cycle.
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, les outils proposés dans le package Combstruct peuvent (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 (cette fonctionnalité est en cours d'implantation) ; (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. L'objectif à terme est d'ajouter à ces fonctionnalités des capacités asymptotiques et des capacités d'analyse d'algorithmes opérant sur les structures combinatoires. Le programme LUO réalisé au début des années 90 par B. Salvy et P. Zimmermann fournissait déjà une partie de ces fonctionnalités, mais sa portabilité et ses fonctionnalités étaient limités par l'usage de Caml en conjonction avec MAPPLE. Notre objectif est maintenant de tirer parti de l'expérience acquise avec LUO pour réaliser une version (Combstruct) entièrement intégrée en MAPLE, en mettant également l'accent sur la modularité et la souplesse d'emploi. La possibilité de produire des visualisations de grandes structures décomposables est par ailleurs étudiée au projet EURECA par P. Zimmermann.