• Aucun résultat trouvé

Mots de parenth`eses, arbres et graphes : ´etat de l’art

3.3 Arbres bourgeonnants et codage optimal

3.4.2 Mots de parenth`eses, arbres et graphes : ´etat de l’art

Consid´erons d’abord une structure de donn´ees simple et tr`es c´el`ebre : les arbres binaires. Pour cette classe d’objets, les r´esultats d’´enum´eration mentionn´es `a la section 2 ainsi que la notion d’entropie nous assurent que le codage d’un arbre binaire ayant n nœuds n´ecessite lgn+11 ¡2nn¢≈ lgn23/22n =

2n + o(n) bits. Du point de vue de la compression, un codage optimal `a 2n bits est simplement donn´e par le mot de parenth`eses (voir chapitre 2.1) cor-

respondant au parcours pr´efixe du contour de l’arbre : cette repr´esentation ne supporte pas un acc`es efficace `a l’information contenue dans la struc- ture combinatoire de l’arbre (en g´en´eral la navigation locale n´ecessite l’ins- pection d’un nombre arbitraire Θ(n) de symboles). Du point de vue des structures de donn´ees explicites, une repr´esentation utilisant un pointeur (ou index) par nœud permet d’effectuer facilement certaines op´erations de navigation locale : dans ce cas il est n´eanmoins impossible d’utiliser moins de Ω(n lg n) bits (il faut Θ(n) pointeurs de taille Ω(lg n)). Comme d´ej`a mentionn´e dans l’introduction, ces remarques ont conduit au probl`eme de concevoir une repr´esentation d’un arbre binaire utilisant asymptotiquement 2 bits par nœud et permettant `a la fois une exploration efficace de l’arbre en temps o(n).

Graphes et maillages En ce qui concerne les structures de donn´ees com- plexes telles que les graphes et les maillages, la presque totalit´e des travaux existants sont bas´ees sur les repr´esentations succinctes d’arbres mentionn´ees ci-dessus. Ainsi les repr´esentations de Jacobson [74] et Munro et Raman [96], ont conduit directement `a des structures compactes tirant profit des d´ecompositions en 4 pages des graphes planaires, qui supportent la navi- gation locale respectivement en temps O(lg n) et O(1)5 : dans la version

utilisant la repr´esentation succincte optimale pour les mots de parenth`eses il est possible d’effectuer le test d’adjacence entre sommets, en utilisant asymptotiquement au plus 2e + 8n bits (pour un graphe ayant n sommets et

e arˆetes). Dans le cas des triangulations `a m triangles (avec ´eventuellement

un bord) une telle structure n´ecessite entre 7m et 12m bits (selon la taille du bord).

Le meilleur r´esultat th´eorique, connus jusqu’`a peu de temps, ´etait du `a Chuang et al. [31]. En se basant encore sur une repr´esentation de mots de parenth`eses (de syst`emes multiples de mots de parenth`eses) et exploitant les propri´et´es des ordres canoniques, il ´etait possible d’am´eliorer ult´erieurement le terme dominant pour l’espace m´emoire utilis´e : ainsi il existe des repr´esen- tations compactes utilisant asymptotiquement 2e + 2n bits les graphes pla- naires 3-connexes, et 2e + n pour les graphes triangul´es (´equivalent `a 3.5m bits pour des triangulations `a m faces de la sph`ere). Ce travail a ´et´e am´elior´e et ´etendus plus r´ecemment par Chiang et al. [29, 30] au cas de graphes pla- naires plus g´en´eraux, cette fois n´ecessitant de 2e + 2n bits.

5Il est `a souligner que la plupart des repr´esentations compactes mentionn´ees dans cette

section proposent (au moins dans leur formulation originale) des op´eration de navigation l´eg`erement diff´erentes de celles consid´er´ees dans cette th`ese (qui sont plus int´eressantes d’un point de vue g´eom´etrique) : en g´en´eral ces codages permettent de v´erifier l’adjacence entre sommets, alors que nos algorithmes permettent de naviguer naturellement entre les faces du maillage (en plus de tester les adjacences).

D’autres approches D’autres m´ethodes plus pratiques ont consid´er´e le probl`eme d’obtenir une repr´esentation moins coˆuteuse en m´emoire permet- tant une navigation efficace. Une premi`ere approche consiste `a sp´ecialiser et rendre moins redondantes les structures de donn´ees explicites classiques, afin d’obtenir un gain d’un facteur constant (Star-vertices [75]).

Plus r´ecemment, et avec une approche totalement diff´erente de celles pr´esent´ees dans cette section, Blandford et. al. [13] ont propos´e des repr´esen- tations compactes pour la classe des graphes s´eparables, permettant d’im- planter certaines requˆetes (adjacence et degr´e) sur les sommets en temps

O(1) (voir la section 3.7 pour plus de d´etails).

3.5

Appariement de mots de parenth`eses

Nous allons fournir ici une description d´etaill´ee des structures succinctes et compactes concernant les mots de parenth`eses ´equilibr´ees introduites par Jacobson [74] et am´elior´ees par Munro et Raman [96], qui ont ´et´e le v´eritable point de d´epart des travaux d´evelopp´es dans cette th`ese6.

Op´erations sur des mots de parenth`eses Etant donn´e un mot de´ parenth`eses ´equilibr´ees il est naturel de disposer des op´erations suivantes :

- match(i) : ´etant donn´ee une parenth`ese ouvrante (fermante) `a la posi- tion i, retourne la position de la parenth`ese fermante (ouvrante) appari´ee.

- excess(i) : retourne l’exc`es `a la position i, qui correspond `a la diff´erence entre le nombre de parenth`eses ouvrantes et celui de parenth`eses fermantes. - enclose(i) : ´etant donn´e une paire de parenth`eses (dont l’ouvrante est `a la position i), retourne la paire de parenth`eses plus proche les englobant.

Esquisse du sch´ema `a suivre L’id´ee commune aux deux repr´esentations mentionn´es ci-dessus consiste d’un point de vue g´en´eral `a d´ecomposer la structure de donn´ee initiale (le mot de parenth`ese ´equilibr´e) en sous-structures (dans ce cas appel´ees blocs) de taille B (en g´en´erale B = Θ(lgcn), pour une

certaine constante enti`ere c) et distinguer un certain type de parenth`eses sp´eciales (pionniers). Apr`es avoir remarqu´e que le nombre des pionniers est globalement ”n´egligeable”, leur strat´egie consiste `a stocker de mani`ere ex- plicite la position de la parenth`ese fermante appari´ee `a chaque pionnier. Il faut aussi associer de l’information `a chaque bloc, pour qu’il soit possible de trouver efficacement la parenth`ese fermante correspondante `a toute pa- renth`ese, ´etant donn´ee sa position dans le bloc et la position du pionnier qui la pr´ec`ede. Enfin, de l’information suppl´ementaire est n´ecessaire pour

6Bien que ces r´esultats ne soient pas directement utilis´es dans la conception de nos

repr´esentations, est notre opinion que le fait de les pr´esenter ici pourrait aider le lecteur dans la lecture et compr´ehension des chapitres 4 `a 7.

d´etecter les parenth`eses qui sont pionniers et supporter certaines op´erations (Rank/Select) dans le bloc.

Les deux structures qui suivent [74, 96] (ainsi que leur g´en´eralisations et am´eliorations [94, 45, 46, 106, 9]) diff`erent essentiellement dans le nombre de niveaux formant la d´ecomposition, la taille des sous-structures et la nature des informations et structures de donn´ees suppl´ementaires utilis´ees pour supporter efficacement certaines requˆetes et op´erations locales dans/entre les sous-structures.