• Aucun résultat trouvé

Navigation locale dans la quadrangulation

7.5.1 Requˆetes d’adjacence entre sommets et faces

Le lemme suivant fournit un outil pour tester l’adjacence entre cellules ´el´ementaires (faces et sommets) dans le graphe. Ici nous supposons que les micro r´egions sont des cartes planaires ”arbitraires” ayant des faces internes de degr´e born´e (elles sont connexes avec un seul bord simple, et peuvent avoir ´eventuellement des arˆetes doublement incidentes `a la face externe). Lemme 66. Soit M un objet admettant une d´ecomposition en micro (et

mini) r´egions [(M1, . . . , Mp); G; F ] (suivant ). Alors il est possible de r´epondre

en temps O(1) aux requˆetes locales suivantes :

- N eighbor(f, e) : retourne la face f0 adjacente `a f contenant l’arˆete e. - Adjacent(v, w) : teste si deux sommets sont adjacents.

D´emonstration. La preuve repose sur des arguments similaires `a ceux d´ej`a

introduits `a la section 5.5.

Repr´esentation unique pour les sommets. Le fait qu’il existe des sommets multiples ayant plusieurs repr´esentation peut se r´esoudre `a l’aide d’un ´etiquetage local et de la distinction des sommets en 3 cat´egories : les sommets internes `a un micro morceau (ou partag´es par au plus deux micro morceaux adjacents), les sommets partag´es par au moins 3 micro morceaux, et les sommets appartenant `a au moins 3 mini morceaux.

Il est possible d’associer `a chaque sommet un repr´esentant unique de mani`ere canonique, exploitant la correspondance entre les sommets dans le graphe original (quadrangulation ou triangulation) et les nœuds de l’arbre bourgeonnant couvrant. Le lemme suivant permet de r´esoudre les ambigu¨ıt´es concernant les sommets multiples :

Lemme 67. Seulement o(n) bits suppl´ementaires suffisent pour r´epondre

en temps O(1) aux requˆetes suivantes :

– Same(v, w) : teste si deux repr´esentations d’un sommet co¨ıncident ; – Canonique(v) : retourne le repr´esentant canonique du sommet v (un triplet indiquant les micro/mini triangulations auxquelles il appartient).

v v0 v00 v000 w w0 w00 w000 x00 v00 v000 w w0 w00 w000 x00 q1 q2

Fig. 7.8 – Dans ces images est montr´e le cas de deux sommets v et

w, qui sont oppos´es et incidents `a la mˆeme face quadrangulaire : v et w

sont des sommets multiples (partag´es par des micro morceaux diff´erents), n’´etant pas toutefois nœuds multiples (car ils n’apparaissent que dans un seul micro arbre). Les nœuds multiples, nœuds racines des micro arbres, sont repr´esent´es avec des petits cercles rouges.

7.5.2 Requˆetes locales dans la quadrangulation

En ce qui concerne la navigation locale dans la quadrangulation, notre repr´esentation supporte en temps O(1) l’op´eration suivante (conduisant di- rectement `a la navigation dans la carte 3-connexe associ´ee, comme d´ej`a mentionn´e `a la section 7.2.3) :

Lemme 68. Dans la quadrangulation Q il est possible de r´epondre en temps

O(1) `a la requˆete suivante :

- Opposite(v, w) : teste si deux sommets v et w sont oppos´es et incidents `a la mˆeme face quadrangulaire dans Q.

D´emonstration. La validit´e des arguments utilis´es repose essentiellement sur

les trois propri´et´es suivantes, satisfaites par les cartes planaires 3-connexes et leurs dissections correspondantes :

– L’arbre bourgeonnant recouvrant introduit dans [42] est un arbre bi- naire : le degr´e des nœuds et le nombre de bourgeons par nœud sont born´es.

– toute face quadrangulaire dans la d´ecomposition de Q appartient `a une micro quadrangulation exactement. De plus, chaque nœud v est incident `a au plus deux faces fictives dans la mˆeme micro quadran- gulation : dans le cas des nœuds ayant deux bourgeons, chaque face fictive est cr´e´ee par la fusion de l’un de ses bourgeons ; pour les nœuds ayant un seul bourgeon (pouvant donner lieu `a une face fictive), au plus une autre face fictive peut ˆetre cr´e´ee, ´eventuellement incidente au nœud w descendant de v dans l’arbre (voir la figure 7.8).

– pour toute paire de sommet v et w il existe au plus une face quadran- gulaire (si elle existe) contenant les deux sommets et telle que v et w sont oppos´es (la quadrangulation Q n’ayant pas de 4-cycle s´eparateur).

Soit q la face quadrangulaire (si elle existe) ´eventuellement incidente `a

v et w ; d´enotons par v0, v00, . . . (resp. w0, w00, . . .) leur copies, et par T Qj,

T Qj0, T Qj00, . . . les micro quadrangulations qui les contiennent.

Nous supposons, sans perte de g´en´eralit´e, que le nœud v pr´ec`ede w le long du bord de la face externe de l’arbre couvrant B, selon l’ordre trigo- nom´etrique. Supposons d’abord que v et w ne soient pas des nœuds mul- tiples, racines partag´ees de micro arbres (voir la figure 7.8).

Si v et w sont des sommets (´eventuellement des ”copies”) appartenant `a la mˆeme micro quadrangulation (lorsque j = j0), alors l’information stock´ee

dans la repr´esentation explicite contenue dans le catalogue A suffit pour r´epondre en temps O(1). En effet, si v et w sont oppos´es alors ils doivent ˆetre `a distance 2 dans T Qj, et tester cette condition n´ecessite le stockage

de o(n) bits suppl´ementaires.

Si v et w appartiennent `a des micro quadrangulations diff´erentes, qui ne sont pas n´ecessairement adjacentes, nous pouvons d’abord trouver leurs repr´esentants canoniques `a l’aide de la fonction Canonique()

: si Canonique(v) et Canonique(w) appartiennent `a la mˆeme quadrangula- tion, on se retrouve dans le cas pr´ec´edent et il suffit d’effectuer des ”table look-up”.

Autrement, nous proc´edons de la mani`ere suivante. S’il existait une face

q incidente `a v et w (et pour laquelle les deux sommets sont oppos´es), alors q devrait appartenir `a la mˆeme micro quadrangulation contenant w et ˆetre

incident `a l’une des arˆetes de l’arbre T Bj0 (arˆete interne ou bourgeon) qui

est aussi incidente `a w (rappelons que v pr´ec`ede w sur la face externe). Puisque le degr´e des nœuds dans B est born´e, il peut y avoir au plus 2 face quadrangulaires satisfaisant cette derni`ere condition : notons-les q1 et

q2 (faces color´ees dans la figure 7.8). ´Etant donn´ees q1 et q2, il est facile de

retrouver les deux sommets v00 et x00 oppos´es de w, qui sont incidents `a ces

deux faces. Finalement il suffit de tester si les repr´esentants Canonique(v00)

et Canonique(x00) co¨ıncident avec v (repr´esentant canonique des copies de

v). Pour conclure, il reste `a observer que le cas o`u v (ou w) est un nœud multiple peut se traiter de mani`ere similaire : il suffit de r´ep´eter les ´etapes ci- dessus un nombre constant de fois, puisque chaque nœud multiple appartient au plus `a deux micro arbres diff´erents.

Une piste d’implantation

pratique

Bien que les structures asymptotiquement optimales des chapitres pr´e- c´edents soient loin d’ˆetre facilement implantables et r´eellement comp´etitives avec d’autres strat´egies, le sch´ema adopt´e a ´et´e la source d’inspiration d’une version plus pratique visant `a ´etudier le compromis entre temps de requˆete et ressources m´emoire utilis´ees1.

8.0.3 Implantations : travaux existants

S’il est vrai que plusieurs objets algorithmiques (tableaux, bit-vecteurs, dictionnaires, arbres, graphes et maillages,) ont ´et´e l’objet d’´etudes visant `a obtenir des repr´esentations compactes, il y a eu tr`es peu de tentatives d’en faire des versions utilisables dans la pratique. Une premi`ere explication (justifiant la p´enurie de telles tentatives) est mˆeme donn´ee dans le travail fondateur [94] introduisant les premi`eres repr´esentations succinctes de mots de parenth`eses et arbres. Sans prendre en compte la perte d’efficacit´e dans l’acc`es `a l’information (en terme de temps d’ex´ecution), il reste la question concernant l’optimalit´e ”asymptotique” (en terme d’espace m´emoire).

Une ´evaluation quantitative pr´ecise de toutes les informations suppl´e- mentaires, dont le coˆut est cach´e dans le terme o(n), porte `a penser que le b´en´efice provenant d’une repr´esentation succincte (par rapport `a une struc- ture classique) pourrait se manifester seulement pour des objets de tr`es grande taille.

D´ej`a dans le cas des arbres, pour qu’une structure succincte2 puisse

r´eellement ˆetre compar´ee `a une repr´esentation classique (bas´ee sur des poin- teurs), il faudrait consid´erer des objets ayant environ 10 millions de sommets

1Les r´esultats pr´esent´es dans cette section sont publi´es `a CCCG 2006 [25].

2En r´ealit´e il s’agirait d’une version simplifi´ee, ne permettant qu’un ensemble restreint

d’op´erations de navigation locale, de la structure relative au th´eor`eme 31.

(et dans ce cas le gain correspondrait `a une r´eduction d’un facteur 3 de la taille m´emoire).

Rank/Select et arbres Afin que notre pr´esentation soit compl`ete, il nous reste `a mentionner deux travaux plus r´ecents ayant consid´er´e le cas des bit- vecteurs avec Rank/Select [47] et des mots de parenth`eses ´equilibr´es [46]. En particulier d’int´eressants r´esultats exp´erimentaux ont ´et´e obtenu avec l’implantation de la repr´esentation succincte (am´elior´ee) des mots de pa- renth`eses, que nous avons mentionn´ee `a la section 3.5.2.

Structures de donn´ees g´eom´etriques Tr`es peu de travaux ont propos´e des solutions pratiques (inspir´ees des repr´esentations compactes) pour des structures de donn´ees plus complexes, telles que les graphes et les maillages. A part les tentatives d’´eliminer les redondances des structures explicites (star-vertices, voir section 2.4), `a notre connaissance les seuls travaux ayant eu du succ`es sont ceux se basant sur les propri´et´es graphes ayant des petits s´eparateurs.

La structure compacte de Blandford et Blelloch d´ecrite `a la section 3.7 a donn´e lieu `a l’implantation d’une structure de donn´ees [12] pouvant re- pr´esenter des maillages triangulaires : les r´esultats exp´erimentaux obte- nus avec cette implantation montrent qu’un maillage triangulaire en 2D n´ecessite en pratique (sur les exemples consid´er´es) 5 octets par triangle. Cette repr´esentation admet deux interfaces, l’une bas´ee sur les arˆetes et l’autre sur les sommets, mettant `a disposition de l’utilisateur des op´erations standard de navigation entre triangles et des op´erations de mise `a jour du maillage : il est `a observer que ces op´erations peuvent s’effectuer en temps

O(1) dans le cas de maillages ayant des sommets de degr´e born´e.

S’il est vrai que les performances montr´ees rendent cette approche int´eressante dans la pratique, d’un point de vue th´eorique il semble im- possible de fournir des garanties pr´ecises sur la complexit´e (en espace et en temps) de la repr´esentation. Plus pr´ecis´ement, la strat´egie d’´etiquetage des sommets adopt´ee visant `a tirer profit des propri´et´es des graphes ayant des petits s´eparateurs, pr´esente quelque points faibles : d’une part les bornes sur la taille m´emoire de la structure ne sont valables que dans le cas sta- tique ; d’autre part la n´ecessit´e de calculer et modifier les ´etiquettes des sommets rend difficile une ´evaluation explicite de la complexit´e concernant les op´erations de mise `a jour du graphe.

8.0.4 Termes d’erreurs sous-lin´eaires

Comme d´ej`a mentionn´e dans cette th`ese (voir section 2.2.2), il existe au moins deux arguments qui rendent les structures compactes ou succinctes bas´ee sur le sch´ema algorithmique mini/micro de caract`ere plutˆot th´eorique : nous allons les reprendre bri`evement ici avec une approche plus quantitative.

D’une part, il est d´esormais clair pour le lecteur que l’efficacit´e et l’op- timalit´e des structures succinctes r´eside de mani`ere importante dans la ca- pacit´e de g´erer (`a tout niveau), des r´ef´erences et des pointeurs locaux de taille arbitraire O(lg n). Bien que le mod`ele de calcul adopt´e soit cens´e sup- porter en temps O(1) l’acc`es en lecture/´ecriture sur de telles r´ef´erences, l’implantation de tableaux et d’autres structures g´erant des cases de taille variable, ainsi que la fr´equente utilisation d’op´erations bit-`a-bit, peut affec- ter de mani`ere significative les performances pratiques de nos algorithmes.

D’autre part, il reste la question concernant les termes d’erreurs de la forme O

³

nlog log nlog n

´

: bien que asymptotiquement n´egligeables en th´eorie pour des objets de taille assez grande, la pratique nous montre que ces termes d’erreur touchent de mani`ere importante les ressources m´emoires utilis´ees par les repr´esentations succinctes.