• Aucun résultat trouvé

4.4 Exemples

5.1.1 Quelques concepts de combinatoire

Nous rappelons quelques concepts de combinatoire indispensables pour la suite du chapitre (voir Riordan (2002) et Flajolet and Sedgewick (2009) pour plus de d´etails). D´efinition 5.1.1 (Graphe) Un graphe simple non-orient´e G est un ensemble (S, A) avec :

• S l’ensemble des sommets de G ;

• A ⊂ P2(S) un ensemble de paires d’´el´ements de V appel´e ensemble des arˆetes de G.

P2(S) d´esigne l’ensemble des parties de cardinalit´e 2 de S.

Pour un graphe simple non-orient´e, on appelle chemin un ensemble cons´ecutif d’arˆetes reliant deux sommets entre eux. La longueur d’un chemin est le nombre d’arˆetes le constituant.

D´efinition 5.1.2 (Arbre) Un arbre est un graphe simple non-orient´e G = (S, A) qui est :

• acyclique : il n’existe aucun chemin commen¸cant et terminant par le mˆeme som-met ;

• connexe : pour tout couple de sommets de S, il existe un chemin permettant de les relier.

La figure 5.1 montre un exemple d’arbre. Concernant les arbres, les sommets S sont aussi appel´es nœuds.

D´efinition 5.1.3 (Arbre enracin´e) Un arbre G = (S, A) est dit enracin´e s’il existe un nœud que l’on distingue sp´ecifiquement des autres et que l’on appelle racine.

Pour un arbre enracin´e, on appelle profondeur d’un nœud la longueur du chemin reliant directement la racine au nœud en question. Lorsque l’arbre est enracin´e, il devient un graphe orient´e. Les arˆetes de A deviennent des arcs : la paire de sommets d´efinissant une arˆete devient ordonn´ee. Le sommet de d´epart de chaque arc est donn´e par le nœud le moins profond (et le sommet d’arriv´ee par le nœud le plus profond). Dans le cas d’un

5.1. Cadre combinatoire 87

Fig. 5.1 – Exemples d’arbres. Si on les consid`ere non orient´es, les trois graphes repr´ e-sentent le mˆeme arbre. L’arbre (3) est un arbre enracin´e. La racine est le nœud marqu´e par deux traits et sera toujours repr´esent´ee par le nœud en bas de l’arbre. Les fl`eches indiquent le sens des arcs.

arbre, lorsque deux sommets sont reli´es entre eux par un arc, le sommet de d´epart est appel´e nœud parent du sommet d’arriv´ee (le sommet d’arriv´e est appel´e nœud fils du sommet de d´epart).

D´efinition 5.1.4 (Arbre planaire enracin´e) Un arbre enracin´e est dit planaire si les sous-arbres provenant d’un mˆeme sommet sont ordonn´es entre eux et repr´esent´es de gauche `a droite.

Fig. 5.2 – Exemples d’arbres planaires enracin´es. Bien que ces deux graphes soient iden-tiques en tant qu’arbres enracin´es, ils deviennent deux objets distincts en tant qu’arbres planaires enracin´es.

Il existe plusieurs fa¸cons de parcourir un arbre planaire enracin´e. L’une des plus connues est le parcours en profondeur.

D´efinition 5.1.5 (Parcours en profondeur d’un arbre) Un arbre planaire enracin´e est parcouru en profondeur si :

• le premier nœud visit´e est la racine ;

• pour un nœud donn´e, l’ordre de visite des sous-arbres correspond `a leur position de gauche `a droite (la racine est plac´ee en bas de l’arbre) ;

• une fois que tous les sous-arbres d’un nœud ont ´et´e visit´es, la visite se poursuit par le nœud parent ;

• le parcours de l’arbre est termin´e lorsque tous les sous-arbres de la racine ont ´et´e visit´es.

La figure 5.3 montre un exemple de parcours en profondeur. Le parcours en profon-deur permet de coder les arbres planaires enracin´es par un mot de Dyck (voir Knuth (1997 (3rd edition)).

D´efinition 5.1.6 (Mot de dyck) Un mot w construit `a partir de l’alphabet V = {z, z0} est un mot de Dyck si :

• w comporte autant de lettres z que de lettres z0;

• tout pr´efixe de w comporte un nombre de lettres z sup´erieur ou ´egal au nombre de lettres z0.

Par exemple, w1 = zzz0z0 et w2 = zzz0zz0z0 sont des mots de Dyck. Nous avons alors :

D´efinition 5.1.7 (Mot de dyck associ´e `a un arbre planaire enracin´e) Un arbre planaire enracin´e peut ˆetre cod´e bijectivement par un mot de Dyck sur l’alphabet V = {z, z0} de la fa¸con suivante :

• l’arbre est visit´e suivant le parcours en profondeur ;

• chaque arˆete parcourue du nœud parent vers le nœud fils est cod´ee par la lettre z ; • chaque arˆete parcourue du nœud fils vers le nœud parent est cod´ee par la lettre z0.

Fig. 5.3 – Mot de Dyck associ´e `a un arbre planaire enracin´e. Le parcours en profondeur est donn´e par les fl`eches en pointill´e.

Il est possible d’´etendre les notions pr´ec´edentes lorsque des ´etiquettes peuvent ˆetre associ´ees aux nœuds de l’arbre. Dans ce cas, l’arbre est dit ´etiquet´e. Nous ´etendons alors la d´efinition des mots de Dyck de la fa¸con suivante :

5.1. Cadre combinatoire 89

D´efinition 5.1.8 (Mot de dyck g´en´eralis´e) Soit L = {l1, . . . , lm} un ensemble de m ´etiquettes. Un mot w construit `a partir de l’alphabet V = {zli, zl0i}i∈{1,...,m} est un mot de Dyck si :

• pour i ∈ {1, . . . , m}, w comporte autant de lettres zli que de lettres zl0

i;

• pour i ∈ {1, . . . , m}, tout pr´efixe de w comporte un nombre de lettres zli sup´erieur ou ´egal au nombre de lettres zl0i.

Les mots w1 = zl1zl1zl0

1zl0

1 et w1 = zl1zl2zl1zl0

2zl0

1zl0

1 sont des exemples de mots de Dyck sur l’alphabet V = {zl1, zl01, zl2, zl02}. Les arbres planaires enracin´es et ´etiquet´es peuvent ´egalement ˆetre cod´es par un mot de Dyck au sens de la d´efinition 5.1.8 :

D´efinition 5.1.9 (Mot de Dyck associ´e `a un arbre planaire enracin´e ´etiquet´e) Soit L = {l1, . . . , lm} un ensemble de m ´etiquettes. Un arbre planaire enracin´e et ´etiquet´e peut ˆetre cod´e bijectivement par un mot de Dyck sur l’alphabet V = {zli, zl0i}i∈{1,...,m} de la fa¸con suivante :

• l’arbre est visit´e suivant le parcours en profondeur ;

• le mot de Dyck commence par la lettre zl et se finit par la lettre zl0 avec l ∈ L l’´etiquette de la racine.

• chaque arˆete parcourue du nœud parent vers le nœud fils est cod´ee par la lettre zli avec li l’´etiquette du nœud fils ;

• chaque arˆete parcourue du nœud fils vers le nœud parent est cod´ee par la lettre zl0i avec li l’´etiquette du nœud fils ;

Fig. 5.4 – Mot de Dyck associ´e `a un arbre planaire enracin´e et ´etiquet´e. L’ensemble des ´etiquettes est L = {l1, l2}. A noter que le mot de Dyck associ´e `a cette arbre est plus long que celui du cas non-´etiquet´e, cf figure 5.3. Ceci est dˆu `a l’ajout de deux lettres permettant de coder l’´etiquette de la racine et ainsi de conserver la bijectivit´e des repr´esentations.