Series generatrices et analyse automatique d'algorithmes
Auteur / Autrice : | Paul Zimmermann |
Direction : | Philippe Flajolet |
Type : | Thèse de doctorat |
Discipline(s) : | Sciences appliquées |
Date : | Soutenance en 1991 |
Etablissement(s) : | Palaiseau, Ecole polytechnique |
Mots clés
Résumé
L'objet de cette these est la mise en evidence de procedes systematiques pour determiner automatiquement le cout moyen d'un algorithme. Ces procedes s'appliquent en general aux schemas de descente dans des structures de donnees decomposables, ce qui permet de modeliser une vaste classe de problemes. Cette these s'interesse plus precisement a la premiere phase de l'analyse d'un algorithme, l'analyse algebrique, qui traduit le programme en objets mathematiques, tandis que la seconde phase extrait de ces objets les informations desirees sur le cout moyen. Nous definissons un langage de specification pour definir des structures de donnees decomposables et des procedures de descente sur celles-ci. Lorsque l'on utilise comme objets mathematiques des series generatrices (de denombrement pour les donnees, de cout pour les procedures), nous montrons que les algorithmes decrits dans ce langage se traduisent directement en systemes d'equations pour les series generatrices associees, et de surcroit par des regles simples. A partir de ces equations, nous pouvons ensuite determiner en temps polynomial le cout moyen exact pour une valeur fixee de la taille des donnees. On pourra aussi utiliser ces equations pour calculer par analyse asymptotique le cout moyen lorsque la taille des donnees tend vers l'infini, puisque l'on sait par ailleurs que le cout moyen asymptotique est directement lie au comportement des series generatrices au voisinage de leurs singularites. Ainsi nous montrons qu'a une classe donnee d'algorithmes correspond une classe bien definie de series generatrices, et par consequent une certaine classe de formules pour le cout moyen asymptotique. Ces regles d'analyse algebrique ont ete incorporees dans un systeme d'analyse automatique d'algorithmes, lambda-upsilon-omega (luo), qui s'est avere etre un outil tres utile pour l'experimentation et la recherche