• Aucun résultat trouvé

Repr´esentations succinctes d’arbres et graphes

Les r´esultats concernant les mots de parenth`eses ´equilibr´es introduits `a la section pr´ec´edente constituent un outil crucial dans la conception de repr´esentations succinctes et compactes pour des structures plus complexes et int´eressantes telles que les arbres (ordonn´es et binaires) et les graphes (planaires).

Dans ce cadre il est naturel de consid´erer les op´erations de navigation locales suivantes (certaines ´etant communes aux graphes et aux arbres) :

– adjacent(u, v) : teste l’adjacence entre deux sommets u et v ; – degre(v) : retourne le nombre de voisins d’un sommet ; – parent(v) : retourne le nœud ancˆetre de v (dans un arbre)

– fils gauche(v) : retourne le fils gauche du nœud v, dans un arbre binaire (de mani`ere similaire se d´efinit f ils droit(v)) ;

– taille sous arbre(v) : retourne la taille du sous-arbre enracin´e en v ; – fils(v, i) : dans un arbre ordonn´e, retourne le i-`eme fils du nœud v

(dans une carte l’op´eration voisin(v, i) correspondante retourne le i- `eme voisin de v selon l’ordre trigonom´etrique) ;

3.6.1 Arbres binaires et ordonn´es

Une fois acquise la repr´esentation du th´eor`eme 31, il est presque imm´ediat d’obtenir une repr´esentation succincte pour les arbres, en vertu de la cor-

respondance bijective existante entre mots de parenth`eses ´equilibr´es, arbres ordonn´es et arbres binaires (voir section 2.1).

Corollaire 32. ´Etant donn´e un arbre ordonn´e `a n nœuds, il existe une repr´esentation utilisant 2n + o(n) bits, qui supporte en temps O(1) les op´e- rations parent(v), taille sous arbre(v)(v) et en temps O(i) l’op´eration fils(v, i). De plus, dans le cas des arbres binaires (dont les nœuds ont au plus 2 fils), il est possible d’implanter en O(1) les op´erations fils gauche(v) et fils droit(v)

La validit´e de ce r´esultat passe essentiellement par l’isomorphisme entre mots de parenth`eses et arbres. Alors le codage de l’arbre est exactement donn´e par la repr´esentation succincte du mot correspondant : un nœud v dans l’arbre (donn´e par son indice, par rapport `a l’ordre pr´efixe de parcours) correspond `a la position i d’une parenth`ese ouvrante dans le mot. Certaines op´erations sur l’arbre sont l’application directe d’op´erations sur les mot : le parent d’un nœud v est simplement donn´e par la parenth`ese ouvrante fournie par enclose(i), o`u i est la parenth`ese correspondante `a v. Ou en- core, taille sous arbre(v) est donn´ee par la moiti´e de la diff´erence entre le nombre de parenth`eses fermantes et ouvrantes `a la position correspondante `a match(i). Pour l’implantation d´etaill´ee d’autres requetes nous renvoyons au travail original [96].

3.6.2 Graphes planaires et plongement livresque

La premi`ere repr´esentation compacte de graphes est une application des structures con¸cues pour les mots de parenth`eses et tire profit d’un type sp´ecial de repr´esentation des graphes planaires.

Un plongement `a k pages d’un graphe G `a n sommets est d´efini par une permutation de 1 . . . n et en une partition des arˆetes en k pages telles que : les sommets peuvent se placer le long d’une droite (le tranche d’un livre), et les arˆetes appartenant `a la mˆeme page peuvent se dessiner sans croisement (l’ordre des sommets ´etant fix´e par la permutation et commun `a toutes les pages). L’´epaisseur d’un graphe est le nombre minimal de pages d’un plongement livresque quelconque de G. Une propri´et´e tr`es int´eressante de cette classe de plongements, concerne les graphes planaires, pour lesquels il existe toujours un plongement `a 4 pages qui peut se calculer en temps

O(n) [129].

Cette propri´et´e des graphes planaires, ainsi que les repr´esentations des mots de parenth`eses ´equilibr´ees conduisent au r´esultat suivant (introduit dans [74] et am´elior´e dans [94]) :

Corollaire 33 (Munro et Raman [94]). ´Etant donn´e un graphe G `a k pages ayant n sommets et e arˆetes, il existe une repr´esentation utilisant

()(( ())( ()(( ()) ()))( ()))( ())

Fig. 3.8 – Graphes planaires et plongements `a k pages.

entre sommets (ainsi que le calcul du degr´e d’un sommet). En particulier, la repr´esentation d’un graphe planaire n´ecessite 8n + 2e + o(n) bits et permet les mˆemes op´erations en temps O(1).

L’id´ee principale consiste `a observer que le plongement des arˆetes de

G (dessin´ees dans une mˆeme page) correspond exactement `a la structure

d’imbriquement d’un mot de parenth`eses ´equilibr´e. Intuitivement il suffit d’imaginer les sommets plac´es sur une droite horizontale et les arˆetes de la mˆeme page dessin´ees dans le demi-espace sup´erieur : la figure 3.8 illustre comment associer aux arˆetes G appartenant `a la mˆeme page un mot de parenth`eses ´equilibr´e.

3.6.3 Graphes planaires et ordres canoniques

Le r´esultat du corollaire pr´ec´edent peut ˆetre am´elior´e de mani`ere consi- d´erable `a l’aide d’une g´en´eralisation de la structure succincte pour les mots de parenth`eses (supportant cette fois un nombre arbitraire, constant, de types de parenth`eses diff´erentes), et surtout d’une caract´erisation plus fine des graphes planaires 3-connexes. La formulation qui est la plus int´eressante dans le cadre de cette th`ese concerne les graphes planaires simples (triangul´es ou non) et peut s’exprimer de la mani`ere suivante :

Th´eor`eme 34 (Chuang et al. [31]). Soit G un graphe planaire 3-connexe

simple ayant n sommets et e arˆetes. Alors il existe une repr´esentation com- pacte de G qui supporte en temps O(1) l’adjacence entre sommets (en temps O(d) le calcul du degr´e d’un sommet ou le parcours de ses voisins) n´ecessitant

2n + 2e + o(n) bits.

Si G est une triangulation planaire `a n sommets (e = 3n − 6) alors une telle repr´esentation n´ecessite 2e + n + o(n) = 7n + o(n) bits7.

Le premier pas vers la preuve de ce r´esultat consiste `a consid´erer une g´en´eralisation du th´eor`eme 31 aux cas de syst`emes de mots de parenth`eses, qui dans le cas d’alphabets sur 4 symboles peut s’exprimer de la mani`ere suivante :

7Mˆeme si non explicitement dit, il est `a mentionner que le terme d’erreur sous-lin´eaire o(n) est toujours de la forme Ω(n lg lg n

lg n ), puisque toutes les repr´esentations succinctes

d’arbres et de graphes trait´ees dans cette section sont bas´ees essentiellement sur une repr´esentation succincte de mots de parenth`eses.

( ) ( ( ( ) ) ( ) ( ) ) ( ) ( ( ) ) ( ) ( ) 0 1 2 3 4 5 6 7 8 9 10 11

[[[[ ] ] ][[[ [ ]][ ]][[[[[ [ ]][ ]] ][ [ ]]][ ]]]]

1 2 3 4 3 5 6 7 8 9 10 11 G −T T T

([[[)(](][[[)])(]][) . . .

G

Fig. 3.9 – Un graphe G planaire triangul´e `a 12 sommets, induit avec l’ordre

canonique (rightmost) sur ses sommets. L’arbre canonique T , enracin´e en v0, est repr´esent´e par le mot de parenth`eses ´equilibr´e ()((())()())()(())()().

Les arˆetes restantes dans G \ T sont repr´esent´ees par le mot : [[[[ ] ] ][[[ [ ]][ ]][[[[[ [ ]][ ]] ][ [ ]]][]]]]. Ce mot peut s’obtenir par le parcours pr´efixe de l’arbre T de la mani`ere suivante. Lors de la visite d’un nœud v, on parcourt ses arˆetes incidentes dans G \ T en ordre trigonom´etrique : on ´ecrit ’[’ si l’arˆete est entrante, alors que si l’arˆete est sortante on ´ecrit ’]’. L’orientation d’une arˆete de G \ T s’obtient `a partir des ´etiquettes de ses deux sommets incidents : chaque arˆete est orient´ee entrante vers le sommet ayant l’´etiquette plus petite.

Lemme 35 (Chuang et al. [31]). Soit S un mot de parenth`eses multiples

sur l’alphabet { (, ), [, ] }, non n´ecessairement ´equilibr´e. Alors il existe une repr´esentation compacte du mot S qui supporte en temps O(1) les op´erations match(i), enclose(i), rank(i), select(i), pour chaque type de parenth`ese. De plus, une telle repr´esentation n´ecessite de |S| + o(|S|) bits (|S| ´etant la longueur du mot S).

Il ne reste alors qu’`a choisir une bonne strat´egie pour le codage du graphe G : suivant l’approche commune `a plusieurs algorithmes de codage de graphes (voir section 3.2), la voie `a suivre consiste `a calculer un arbre recouvrant T de G et d´eterminer une mani`ere efficace de coder T ainsi que les arˆetes dans G \ T (la figure 3.9 illustre de mani`ere intuitive la strat´egie adopt´ee pour coder T et G \ T ).

Dans ce cadre, les ordre canoniques (introduits pour les graphes plans g´en´eraux dans [38], et ´etendus aux graphes 3-connexes dans [76]) four- nissent un outil tr`es puissant, en vertu de leurs propri´et´es combinatoires caract´erisant de mani`ere fine la planarit´e des graphes.

Pour une pr´esentation compl`ete et d´etaill´ee de tous ces r´esultats nous renvoyons le lecteur au travail original [31] et ses extensions [29, 30].

3.7

Structures compactes : graphes et petits s´e-