Combinatoire analytique
En mathématiques, et plus précisément en combinatoire, la combinatoire analytique (en anglais : analytic combinatorics) est un ensemble de techniques décrivant des problÚmes combinatoires dans le langage des séries génératrices, et s'appuyant en particulier sur l'analyse complexe pour obtenir des résultats asymptotiques sur les objets combinatoires initiaux.
Les résultats de combinatoire analytique permettent notamment une analyse fine de la complexité de certains algorithmes.
Introduction
La combinatoire analytique repose fondamentalement sur deux approches : la premiÚre approche, combinatoire, également parfois qualifiée de méthode symbolique, permet de décrire des relations entre des objets mathématiques discrets en les transcrivant directement en termes d'opérations algébriques sur les séries génératrices associées; la deuxiÚme approche, analytique, utilise ou développe des outils d'analyse complexe en vue d'extraire de ces séries génératrices des informations sur le comportement asymptotique du nombre d'objets énumérés. C'est ainsi la nature des singularités de ces séries qui est la clé de l'étude du comportement asymptotique des objets discrets initiaux. Une application importante est l'étude de propriétés probabilistes de grandes structures aléatoires.
Cette théorie a été largement développée notamment par Philippe Flajolet et son école. Elle est détaillée dans son livre avec Robert Sedgewick, Analytic Combinatorics[1]. Elle trouve sa source dans des travaux de précurseurs comme Leonhard Euler, Arthur Cayley, Srinivasa Ramanujan, Gaston Darboux, George Pólya et Donald Knuth.
Classes combinatoire
La mĂ©thode symbolique s'appuie sur le concept de classe combinatoire, c'est-Ă -dire d'ensembles d'objets, oĂč chaque objet a une taille. La mĂ©thode permet de traduire des opĂ©rations ensemblistes sur les classes en des opĂ©rations algĂ©briques sur les sĂ©ries gĂ©nĂ©ratrices associĂ©es. On obtient ainsi un processus de traduction purement formel, et automatisable. En pratique, on utilise souvent des sĂ©ries gĂ©nĂ©ratrices dites ordinaires pour les structures non Ă©tiquetĂ©es, et des sĂ©ries gĂ©nĂ©ratrices exponentielles pour les structures Ă©tiquetĂ©es. D'autres types de sĂ©ries gĂ©nĂ©ratrices (de Dirichlet, de Poisson, de Bell, de Lambert, de Wright, ...) sont toutefois aussi utilisables.
DĂ©finitions
Une classe combinatoire est par définition un ensemble muni d'une application appelée taille qui, à chaque élément de l'ensemble associe un entier naturel . On demande de plus que, pour chaque , le nombre d'éléments de taille est fini.
Comme la dĂ©finition le suggĂšre, un mĂȘme ensemble peut ĂȘtre dotĂ© de plusieurs tailles diffĂ©rentes. Ainsi, la taille des arbres binaires peut ĂȘtre leur nombre de sommet; une autre taille est leur hauteur. Mais le nombre de feuilles n'est pas une taille valide, parce qu'il existe une infinitĂ© d'arbres binaires « filiformes » (oĂč chaque nĆud n'a qu'il seul enfant) qui n'ont qu'une feuille unique. En gĂ©nĂ©ral, un objet d'une certaine taille est formĂ© de composants Ă©lĂ©mentaires que lâon appelle parfois des atomes (comme les sommets d'un graphe par exemple).
Soit maintenant un ensemble combinatoire, et soit le nombre d'éléments de taille de . La série génératrice ordinaire associée à est par définition la série définie par
- .
Il est parfois commode de considérer une autre expression équivalente pour la série, à savoir :
- .
On considÚre aussi, dans le cas de structures étiquetées, des séries génératrices exponentielles dont il sera question plus bas.
En gĂ©nĂ©ral, les sĂ©ries gĂ©nĂ©ratrices associĂ©es au dĂ©nombrement d'objets combinatoires sont des sĂ©ries formelles, que l'on peut manipuler sans considĂ©ration de convergence (au sens de convergence dans les rĂ©els ou dans les complexes), mais il existe en fait une notion de convergence dans l'anneau des sĂ©ries formels qui repose sur la valuation des sĂ©ries et qui donne un cadre rigoureux Ă toutes les manipulations mentionnĂ©es ci-aprĂšs. Dans le cadre de la combinatoire analytique, les questions de convergence jouent d'ailleurs un rĂŽle, puisqu'on Ă©tudie le comportement des sĂ©ries en des points prĂ©cis, dans le cadre de lâanalyse complexe. L'observation fondamentale utilisĂ©e - qui est explicitĂ©e plus loin - est que la nature de la singularitĂ© sur l'axe rĂ©el positif donne des informations prĂ©cises sur la croissance des nombres d'objets de taille .
Une notation utile pour l'extraction de coefficients d'une série génératrice est la suivante : on désigne par le coefficient de la variable , de sorte que, pour
- ,
on a :
- .
Dans la suite de cet article, on parlera parfois avec un léger abus de langage des coefficients d'une fonction, pour désigner les coefficients du développement de Taylor en 0 de cette fonction.
Exemples
Quelques exemples usuels sont les suivants.
- Classe des mots sur un alphabet binaire, la taille est la longueur du mot. Il y a mots de longueur . La série génératrice est .
- Compositions d'entiers (une composition d'un entier positif est une suite d'entiers positifs tels que ). Chaque entier positif possÚde compositions. La série génératrice est .
- Arbres binaires complets. Le nombre d'arbres binaires complets Ă nĆuds internes est , et la sĂ©rie gĂ©nĂ©ratrice est .
La méthode symbolique
La méthode symbolique est un procédé qui permet de traduire directement des relations entre classes combinatoires dans les séries génératrices correspondantes. L'algorithme consiste à commencer avec des classes combinatoires trÚs simples, et à les composer à l'aide d'opérateurs au comportement connu. Ces opérateurs ensemblistes comprennent diverses opérations simples, comme la réunion disjointe, le produit cartésien; d'autres opérations, comme l'ensemble des parties, la formation de suites, de multiensembles sont un peu plus complexes. Enfin des définitions récursives sont possibles. L'attrait de la méthode est que la définition ensembliste, ou symbolique, se traduit directement en de relations algébriques sur les fonctions génératrices.
Deux types de séries génératrices sont utilisées usuellement en combinatoire, les séries génératrices ordinaires, pour des classes combinatoires d'objets non étiquetés, et des séries génératrices exponentielles, pour des classes combinatoires d'objets étiquetés,
Il est d'usage, dans cette thĂ©orie, de noter les classes combinatoires par des lettres cursives, et leurs sĂ©ries gĂ©nĂ©ratrices par les mĂȘmes lettres, droites. Ainsi, les sĂ©ries associĂ©es Ă des classes combinatoires ou sont notĂ©es respectivement et .
Constructions élémentaires
Les briques de base sont des classes formĂ©es d'un seul objet. Deux types de classes sont utiles : celles oĂč le singleton est de taille nulle, et celles dont le singleton est de taille un. Une classe du premier type a donc un Ă©lĂ©ment de taille nulle, et sa sĂ©rie gĂ©nĂ©ratrice est la fonction constante . Une classe du deuxiĂšme type a un seul Ă©lĂ©ment, de taille un, et sa sĂ©rie gĂ©nĂ©ratrice est ainsi . Les opĂ©rations Ă©lĂ©mentaires sont l'union disjointe, le produit cartĂ©sien, la formation de suites.
Union disjointe
On Ă©crit si la classe est lâunion disjointe des classes et . Cette relation se traduit en sĂ©ries gĂ©nĂ©ratrices par
puisqu'en effet
- .
Produit cartésien
On écrit si la classe est l'ensemble des couples , avec et . La fonction taille est définie par . On a alors, pour les séries génératrices, la relation
- .
SĂ©quences
On écrit lorsque est l'ensemble des suites finies d'éléments de . Cette construction est aussi appelée étoile de Kleene en théorie des langages. On peut l'écrire plus formellement comme
- , ou encore .
La taille d'une suite est la somme des tailles de ses composants. Pour que lâopĂ©ration soit bien dĂ©finie, la classe ne doit pas contenir d'Ă©lĂ©ment de taille 0 car sinon la classe contiendrait une infinitĂ© d'Ă©lĂ©ments d'une taille donnĂ©e. La traduction en sĂ©ries gĂ©nĂ©ratrices est
- .
La série est appelée parfois le quasi-inverse de la série .
Définition récursive
Lorsque certaines conditions assez techniques sont remplies[2], on peut définir une classe combinatoire de façon récursive. Voici des exemples.
Arbres binaires
Le premier exemple est celui des arbres binaires. Un arbre binaire est soit lâarbre binaire vide, soit formĂ© d'une racine et de deux sous-arbres qui sont des arbres binaires. L'Ă©quation de la classe combinatoire des arbres binaires est donc :
- ,
oĂč est rĂ©duite Ă un Ă©lĂ©ment de taille 0 et est composĂ© d'un Ă©lĂ©ment de taille 1. Cette Ă©quation se traduit en lâĂ©quation
- .
Arbres unaires-binaires
Un arbre unaire-binaire est un arbre oĂč chaque nĆud interne a un ou deux enfants. L'Ă©quation symbolique s'Ă©crit
d'oĂč l'on dĂ©duit l'Ă©quation fonctionnelle
- .
Exemples
On peut employer la mĂ©thode symbolique mĂȘme dans des cas trĂšs Ă©lĂ©mentaires :
Mots binaires
Un mot binaire est une suite de symboles 0 et 1. On a deux classes combinatoires et dont la série génératrice est . Les mots binaires sont donnés par la construction
- ,
leur série génératrice est
- et .
C'est utiliser une grosse artillerie pour un exemple tout simple.
Composition restreinte d'entiers
Le problÚme est de couvrir le segment avec des briques de taille 1 et 2, en d'autre termes d'écrire l'entier comme une somme dont les termes sont 1 ou 2, et de compter le nombre de façons de le faire. Par exemple, l'entier 4 possÚde les cinq écritures :
- 4=1+1+1+1=1+1+2=1+2+1=2+1+1=2+2 .
Il est facile de voir directement que le nombre de ces compositions de est , le e nombre de Fibonacci. Pour utiliser la méthode symbolique, on considÚre deux classes et composées d'un élément unique de taille 1 et de taille 2 respectivement. Alors la classe de couvertures est
et la série génératrice est :
- .
Autres constructions symboliques
D'autre constructions symboliques importantes sont : Cycles. Les cycles sont comme des séquences, sauf que deux objets qui s'obtiennent l'un de l'autre par une rotation circulaire ne sont pas considérés comme distincts. La série génératrice est nettement plus compliquée; dans le cas étiqueté, elle est plus simple. Ici, elle s'écrit
oĂč est l'indicatrice d'Euler. Classe pointĂ©e. La classe est formĂ©e d'objets de qui sont « pointĂ©s » : dans chaque objet, un atome est distinguĂ©. Par exemple, les arbres enracinĂ©s sont des arbres libres pointĂ©s. Formellement, chaque objet est augmentĂ© d'un Ă©lĂ©ment de taille zĂ©ro sur un de ses atomes. La sĂ©rie gĂ©nĂ©ratrice est
- .
Substitution. La classe est obtenue en substituant, à chaque atome d'un élément de , un élément de la classe . La série génératrice est simplement .
Analyse
Les méthodes d'analyse complexe se concentrent autour du processus d'extraction d'informations asymptotiques à partir de fonctions génératrices. Il existe un ensemble de résultats qui fournissent une traduction systématique entre fonctions génératrices et la forme asymptotique des coefficients.
Dans la plupart des situations qui se présentent en combinatoire, une série formelle
de dĂ©nombrement peut ĂȘtre vue comme le dĂ©veloppement, autour de 0, d'une fonction analytique . Le rayon de convergence de la sĂ©rie est donnĂ© par exemple par
- .
Ceci signifie que
- )
oĂč est une fonction sous-exponentielle de . Il y a donc au moins une singularitĂ© sur le bord du disque de convergence, et un thĂ©orĂšme classique de Pringsheim dit que si les coefficients sont positifs, ce qui est bien le cas dans des sĂ©ries Ă©numĂ©ratrices, alors il existe une singularitĂ© rĂ©elle positive au point .
Cas des séries rationnelles
Pour les séries rationnelles, une décomposition en éléments simples donne une forme close pour le terme , qui s'écrit donc comme une somme de termes de la forme . Ainsi, si la singularité dominante R est de multiplicité , alors
- .
Exemple. On considÚre la série rationnelle
- .
Ses singularitĂ©s sont (oĂč dĂ©signe le nombre d'or). La singularitĂ© dominante est 1/2, et sa multiplicitĂ© est 5. On a donc
- .
Cas des séries algébrico-logarithmiques
ConsidĂ©rons maintenant la classe des fonctions algĂ©brico-logarithmiques, c'est-Ă -dire les sommes et produits de et de . Pour des sĂ©ries gĂ©nĂ©ratrices ayant une telle forme, des mĂ©thodes d'analyse complexe[3] donnent l'asymptotique suivante pour leurs coefficients, exprimĂ©e ici dans le cas oĂč la singularitĂ© est 1 (on peut toujours s'y ramener par un changement de variable):
- Soient et . On a
- ,
- oĂč est la fonction Gamma usuelle.
Cet Ă©quivalent asymptotique peut en fait ĂȘtre poussĂ© Ă n'importe quel ordre, ce qui donne par exemple[4] :
Fonction Coefficients
Remarquons que la classe des fonctions algébrico-logarithmiques n'englobe pas toutes les fonctions algébriques, mais toute fonction algébrique possÚde un développement en série de Puiseux qui est une somme infinie de briques de base du type , et la troncation de cette somme à un ordre donné est bien une fonction algébrico-logarithmique. Le théorÚme de transfert détaillé dans la section suivante permet de lier le développement asympotique des coefficients de la somme infinie et de sa truncation.
Le théorÚme de transfert
Le théorÚme de transfert[5] énonce qu'il suffit de connaßtre le comportement de deux fonctions autour de leur plus petite singularité pour pouvoir comparer le comportement asymptotique de leurs coefficients. L'énoncé est le suivant.
- Soient et ) deux fonctions dont la plus petite singularitĂ© est 1. Alors â Si , alors .
â Si , alors .
â Si , alors .
Un exemple
On retrouve comme suit l'Ă©valuation asymptotique du nombre d'arbres binaires. On part de l'Ă©quation symbolique
- ,
oĂč est rĂ©duite Ă un Ă©lĂ©ment de taille 0 et est composĂ© d'un Ă©lĂ©ment de taille 1. Cette Ă©quation se traduit en lâĂ©quation
- .
On résout l'équation et on trouve
- .
La fonction a une singularité algébrique en , d'exposant . Autour de , on a
et, par le théorÚme précédent sur les singularités algébrico-logarithmiques, on obtient
parce que .
Classes combinatoires étiquetées
Une classe combinatoire est étiquetée si ses éléments sont étiquetés. Par définition, un tel objet combinatoire, de taille , est de plus doté d'une permutation de . Les exemples les plus pertinents d'objets étiquetés sont les graphes.
Pour Ă©numĂ©rer les objets d'une classe Ă©tiquetĂ©e, on emploie des sĂ©ries gĂ©nĂ©ratrices exponentielles, oĂč les coefficients sont normalisĂ©es par une factorielle.
DĂ©finition
Plus formellement, soit une classe combinatoire étiquetée, et soit , pour , le nombre d'objets de taille dans cette classe. La série génératrice exponentielle associée à est
- .
Il est Ă©quivalent d'Ă©crire
- .
L'extraction d'un coefficient de cette série donne
- , donc .
Exemples
Permutations. Soit la classe des permutations. Sa série génératrice exponentielle est
- .
Graphes sans arĂȘte. Il existe, pour chaque entier n, un seul graphe sans arĂȘte. La sĂ©rie gĂ©nĂ©ratrice correspondante est
La mĂȘme sĂ©rie compte les graphes complets.
Graphes cycliques. Le nombre de graphes étiquetés de n sommets formés d'un seul cycle est (n-1)!. Leur série génératrice exponentielle est donc
- .
Produit
La construction d'une somme disjointe de classes combinatoires se transpose sans modifications aux classes Ă©tiquetĂ©es. Pour le produit, il faut ĂȘtre plus attentif. Soient et deux classes combinatoires Ă©tiquetĂ©es. Le produit cartĂ©sien est formĂ© de couples d'objets Ă©tiquetĂ©es, mais un tel couple nâest pas correctement Ă©tiquetĂ© puisque ses Ă©lĂ©ments n'ont pas des Ă©tiquettes distinctes. On dĂ©finit une structure associĂ©e, dont les Ă©lĂ©ments ont exactement les Ă©tiquettes , et oĂč l'ordre relatif des Ă©tiquettes de chaque Ă©lĂ©ment est respectĂ©. On dĂ©finit
comme l'ensemble des couples ainsi ré-étiquetés. La famille contient exactement éléments. Le produite étiqueté des classes et est par définition
- .
Pour les séries génératrices exponentielles, on a
- .
En effet, pour et , on a
- ,
et donc
- .
SĂ©quence
à partir de la somme disjointe et du produit, on construit l'opérateur de séquence comme dans le cas ordinaire : On écrit lorsque est l'ensemble des suites finies d'éléments de ; ici n'a pas d'élément de taille nulle. En d'autres termes,
- ,
ou encore , oĂč les suites son rĂ©-Ă©tiquetĂ©es. La sĂ©rie gĂ©nĂ©ratrices exponentielle est
- .
Ensemble des parties
Les définitions d'ensemble et de cycle donnée ici s'appliquent aussi bien aux structures non étiquetées. On définit la classe
comme la classe des parties de la classe contenant éléments. On peut voir cette classe comme la classe quotient de
- ,
oĂč est lâensemble des suites Ă Ă©lĂ©ments de , et oĂč met en Ă©quivalence deux suites qui sont les mĂȘmes Ă une permutation de ses Ă©lĂ©ments prĂšs. On a
- .
La classe des parties de la classe est par définition
- ,
et la série génératrice exponentielle correspondante est
- .
Cycle
On définit la classe
comme la classe des cycles de éléments de la classe . On peut la voir comme le quotient de la classe des suites de longueur d'éléments de par l'ensemble des permutations circulaires de ses éléments. On a
- .
La classe des cycles de la classe est par définition
- ,
et la série génératrice exponentielle correspondante est
- .
Deux cas particuliers sont l'opérateur de construction des cycles de longueur paire, et celui de longueur impaire, qui sont respectivement
- et .
Leurs séries génératrices sont respectivement
- et .
Exemples
Permutations. Une permutation peut ĂȘtre vue comme un ensemble de cycles de supports disjoints. Ceci conduit Ă l'Ă©quation symbolique
- ,
oĂč est la classe formĂ©e d'un seul Ă©lĂ©ment de taille 1. La sĂ©rie gĂ©nĂ©ratrice exponentielle est
- .
Involutions. Une involution est une permutation telle que . On peut voir une involution comme un ensemble de cycles de longueur 1 ou 2 Ă supports disjoints. L'Ă©quation symbolique est donc
- ,
et a série génératrice exponentielle est . Un calcul élémentaire permet d'obtenir l'expression close
Dérangements. Un dérangement est une permutation sans point fixe. La définition symbolique est
- ,
et la fonction génératrice exponentielle est
- .
Pour évaluer le nombre d_n de dérangements de taille , on observe que la singularité de est en . Autour de ce point, le développement de est
- , de sorte .
Arbres. Un arbre enraciné est formé d'un sommet et d'un ensemble de sous-arbres. Ce sont des structures étiquetées ou non. Pour les arbres étiquetés, l'équation symbolique est
- ,
et la série exponentielle correspondante est :
- .
Pour un arbre plane enraciné et non étiqueté, formé d'un sommet et d'une suite de sous-arbres, l'équation symbolique est
- ,
et la série génératrice ordinaire est :
- .
Multi-ensemble
La construction de la classe des multi-ensembles ou parties avec multiplicité est semblable à celle des parties. Dans la classe
- ,
chaque élément de peut figurer un nombre arbitraire de fois dans une partie. On obtient :
Ceci conduit à la relation (ici est le nombre d'éléments de taille de ) :
Un exemple d'application est constituĂ© des partitions d'entiers. On dĂ©finit d'abord la classe des entiers positifs, notĂ©e ici , oĂč la taille de chaque entier est sa valeur
- .
La série génératrice de iest alors
L'ensemble des partitions d'entiers est la classe des multi-ensembles d'entiers positifs. Si on la note , on obtient donc la formule
La série génératrice de est
Il n'y a pas de formule close connue pour cette série, mais on peut calculer la valeur asymptotique de ses coefficients.
Notes et références
- Flajolet et Sedgewick 2008.
- Flajolet et Sedgewick 2008, Chap I, §2.3.
- Flajolet et Sedgewick 2008, Theorem VI.2, p. 385.
- Flajolet et Sedgewick 2008, Figure VI.5, p. 388.
- Flajolet et Sedgewick 2008, Transfer Theorem, Th. VI.3, p. 390.
Bibliographie
- 1990 : (en) Herbert Wilf, Generatingfunctionology, Academic Press, 1990, (ISBN 0-12-751955-6). (lire en ligne)
- 1995 : Micha Hofri, Analysis of Algorithms: Computational Methods and Mathematical Tools, Oxford University Press (1995).
- 1998 : François Bergeron, Gilbert Labelle et Pierre Leroux, Combinatorial Species and Tree-like Structures, Cambridge University Press, coll. « Encyclopedia of Mathematics and its Applications » (no 67), , 457 p. (ISBN 978-0-521-57323-8, lire en ligne) â Version française : ThĂ©orie des espĂšces et combinatoire des structures arborescentes, LaCIM, MontrĂ©al (1994).
- 2008 : (en) Philippe Flajolet et Robert Sedgewick, Analytic Combinatorics, Cambridge University Press, (ISBN 0-521-89806-4, lire en ligne)
- 2013 Robin Pemantle et Mark C. Wilson, Analytic Combinatorics in Several Variables, Cambridge University Press, coll. « Cambridge Studies in Advanced Mathematics » (no 140), , 392 p. (ISBN 978-1-107-03157-9, lire en ligne).
- 2014 : Jérémie Lumbroso et Basile Morcrette, « A Gentle Introduction to Analytic Combinatorics », dans CIMPA Summer School Analysis of Random Structures, An Najah University, Naplouse, Palestine, 18-27 août 2014 (lire en ligne)
- 2021 : Stephen Melczer, An Invitation to Analytic Combinatorics : From One to Several Variables, Springer, coll. « Texts & Monographs in Symbolic Computation », , xviii+418 (ISBN 978-3-030-67079-5 et 978-3-030-67080-1, présentation en ligne, lire en ligne)
- 2023 : Stephen Melczer, Robin Pemantle et Mark C. Wilson, Analytic Combinatorics in Several Variables : Expanded Second Edition, Cambridge University Press, 2023 (Ă paraitre), 589 p. (lire en ligne)