• Aucun résultat trouvé

3.2 Winding Roads : un algorithme de regroupement d’arˆetes en faisceaux dans

3.2.2 D´etails de l’algorithme

a partir des positions des sommets du graphe `a traiter et fabriquons ainsi une grille . Les sommets originaux du graphe sont alors connect´es aux sommets de la grille qui leur sont les plus proches. Cette grille est ensuite utilis´ee pour router les arˆetes en utilisant un algorithme de plus court chemin. La m´etaphore des routes et autoroutes est alors utilis´ee pour regrouper les arˆetes. Ainsi, comme les autoroutes attirent plus de conducteurs que les routes classiques, nous utilisons les chemins les plus emprunt´es pour former des faisceaux d’arˆetes. Cette op´eration est r´ealis´ee en ex´ecutant plusieurs fois l’´etape de routage par plus court chemin et en modifiant les poids des arˆetes de la grille entre chaque it´eration. La Figure 3.4pr´esente un diagramme r´esumant les diff´erentes ´etapes de notre m´ethode.

3.2.2 D´etails de l’algorithme

Nous pr´esentons dans cette section les d´etails de l’impl´ementation de notre m´ethode de regroupement d’arˆetes. Nous appliquerons notre algorithme sur les graphes introduits `a la Figure 3.5, `a savoir le graphe biparti complet K5,5 (voir D´efinition2.27) et le sous r´eseau europ´een du r´eseau mondial des transports a´eriens de l’ann´ee 2000 (source des donn´ees : projet ANR Spangeo), afin d’illustrer les diff´erentes ´etapes.

3.2.2.1 Calcul de la grille

Afin de router les arˆetes par une m´ethode de plus court chemin, nous calculons une grille sur laquelle nous connectons les sommets originaux du graphe. Ce type de graphe est calcul´e en discr´etisant le plan en cellules `a partir de la position des sommets. Dans ce paragraphe, nous pr´esentons les diff´erentes approches que nous avons exp´eriment´ees pour calculer cette grille.

Entr´ee : un dessin de graphe en 2D

Une grille est construite en discr´etisant le plan

en cellules `a partir de la position des sommets. Les sommets du graphe

sont ensuite connect´es aux sommets de la grille

Les arˆetes sont rout´ees sur la grille en utilisant un algorithme de calcul de plus court chemin

Les poids des

arˆetes de la grille sont ajust´es en fonction du nombre de plus courts chemins

passant par elles

Sortie: un dessin de graphe

avec des arˆetes regroup´ees en faisceaux

Figure 3.4: Diagramme illustrant les diff´erentes ´etapes de notre m´ethode de regrou-pement d’arˆetes en faisceaux.

Dans [46], Cui et al. utilisent une grille r´eguli`ere pour discr´etiser le plan. Cette grille est utilis´ee pour agr´eger les arˆetes qui ont la mˆeme orientation. L’utilisation d’une grille r´eguli`ere `a granularit´e fine permettraient en effet un routage de haute qualit´e des arˆetes. En effet, la grille se doit d’ˆetre pr´ecise afin de pouvoir router les arˆetes `a travers des r´egions denses du dessin du graphe. Cependant, disposer d’une grille de tr`es large taille soul`event deux probl`emes majeurs. Premi`erement, une multitude de routes possibles est g´en´er´ee ce qui peut nuire au regroupement de longues arˆetes. Deuxi`emement, la grille peut contenir un tr`es grand nombre de sommets, facteur de |V |2 (|V | ´etant le nombre de sommets originaux), rendant l’approche coˆuteuse voire inacceptable en termes de calcul de plus courts chemins et de consommation m´emoire.

Pour obtenir une grille multi-r´esolutions, un quadtree [72] peut ˆetre utilis´e (voir sec-tion 2.2.2). Avec ce type de structure, le plan est r´ecursivement d´ecompos´e en quatre parties jusqu’`a ce que l’une d’entre elles contiennent au plus un ´el´ement. Dans notre cas, cet ´el´ement correspond `a l’un des sommets originaux du graphe. La Figure3.6pr´esente des exemples de grilles obtenues avec cette m´ethode. Une telle approche est efficace en termes de temps de calcul puisque sa complexit´e est en O(|V | · log(|V |)). La taille de la grille g´en´er´ee est relativement raisonnable mais le principal inconv´enient est que les chemins

(a) (b)

Figure 3.5: Les graphes qui nous serviront `a illustrer les diff´erentes ´etapes de notre m´ethode de regroupement d’arˆetes. (a) Le graphe biparti complet K5,5. (b) Le sous-r´eseau europ´een du sous-r´eseau mondial des transports a´eriens de l’ann´ee 2000 (source des donn´ees : projet ANR Spangeo)

promus lors du routage seront majoritairement horizontaux et verticaux ce qui induira un effet zigzag sur la forme finale du dessin des arˆetes.

Les diagrammes de Vorono¨ı [187] (voir section 2.2.4) peuvent ´egalement ˆetre utilis´es pour g´en´erer la grille. Dans un tel diagramme, les cellules sont des r´egions du plan conte-nant les points les plus proches de leur site (correspondant dans notre cas `a la position d’un des sommets du graphe) que de tout autre site. Pour plus de d´etails sur les diagrammes de Vorono¨ı, le lecteur peut consulter l’´etude de Aurenhammer [13]. La Figure3.7 montre des grilles obtenues en utilisant cette approche. L’utilisation d’un diagramme de Vorono¨ı classique ne garantit pas que les chevauchements entre sommets et arˆetes seront ´evit´es dans le cas o`u les sommets ont des tailles sup´erieures `a celle d’un point. Cependant, ce probl`eme peut ˆetre r´esolu en utilisant un diagramme de Vorono¨ı contraint (prenant en compte la taille des sommets). Cette m´ethode g´en`ere une grille de taille relativement pe-tite. De plus, son calcul est rapide grˆace `a l’utilisation de l’algorithme de Fortune [76] qui poss`ede une complexit´e en temps de O(|V |·log(|V |)). Cependant, la grille peut contenir de tr`es grandes cellules dans les r´egions clairsem´ees en sommets du dessin original. A cause de notre m´ethode de routage d’arˆetes, ces grandes cellules cr´eeront de larges d´etours ce qui pose probl`eme quant `a la qualit´e du dessin final.

L’approche que nous avons retenue pour g´en´erer la grille est bas´ee sur l’utilisation combin´ee d’un quadtree et d’un diagramme de Vorono¨ı. Dans un premier temps nous calculons unquadtree en posant une contrainte sur la taille des cellules qui seront g´en´er´ees, `a savoir qu’une cellule continuera `a ˆetre subdivis´ee en quatre, mˆeme si elle ne contient

(a) (b)

Figure 3.6: Illustrations de grilles obtenues en utilisant un quadtree. Une cellule est subdivis´ee en quatre tant qu’elle ne contient pas au plus un sommet original du graphe. (a) Grille obtenue sur le graphe K5,5pr´esent´e `a la Figure3.5(a)(63 sommets / 176 arˆetes). (b) Grille obtenue sur le r´eseau de transports a´eriens pr´esent´e `a la Figure3.5(b)(1695 sommets/5738 arˆetes).

aucun sommet original du graphe, tant que la longueur de sa diagonale est sup´erieure `a un certain seuil. Dans un second temps, nous calculons le diagramme de Vorono¨ı `a partir de l’ensemble des sites d´efini par le centre des cellules du quadtree pr´ec´edemment calcul´e et la position des sommets originaux du graphe. Puisque lequadtree ajoute O(|V |) nouveaux sommets, la complexit´e en temps O(|V |·log(|V |)) du calcul global de la grille est pr´eserv´ee. De plus, la taille de la grille r´esultante est plutˆot raisonnable. La Figure 3.8pr´esente des exemples de grilles obtenues avec cette technique.

3.2.2.2 Routage des arˆetes

L’´etape suivante de notre m´ethode consiste `a router les arˆetes du graphe original sur la grille obtenue dans l’´etape pr´ec´edente. Nous pouvons directement utiliser un algorithme de calcul de plus court chemin pour effectuer cette op´eration. Puisque la grille est planaire, nous obtiendrons un dessin avec les arˆetes dessin´ees avec des lignes bris´ees pouvant se chevaucher sur certaines portions de leurs routes. Cependant, cette technique ne garantit pas que les arˆetes suivront forc´ement les mˆemes routes sur la grille et par cons´equent cr´ee un nombre faible de faisceaux d’arˆetes. Pour augmenter l’effet de regroupement, nous utilisons la m´etaphore des routes et autoroutes. L’id´ee est de transformer les petites

(a) (b)

Figure 3.7: Illustrations de grilles obtenues en utilisant un diagramme de Vorono¨ı. Les sites des cellules correspondent aux positions des sommets originaux du graphe. Les cellules de Vorono¨ı calcul´ees sont rep´erables grˆace `a leur couleur. (a) Grille obtenue sur le graphe K5,5pr´esent´e `a la Figure3.5(a)(36 sommets / 97 arˆetes). (b) Grille obtenue sur le r´eseau de transports a´eriens pr´esent´e `a la Figure 3.5(b) (1305 sommets/3904 arˆetes).

routes en de plus grandes si elles sont tr`es utilis´ees. Nous reproduisons cet effet de la fa¸con suivante. Nous commen¸cons par associer `a chaque arˆete de la grille un poids correspondant `

a la valeur de la distance euclidienne entre les deux sommets qu’elle relie. Puis nous calculons les plus courts chemins entre les paires de sommets connect´es par une arˆete dans le graphe original. Une fois ces deux premi`eres ´etapes effectu´ees, nous ex´ecutons le processus it´eratif suivant. Nous ajustons les poids w(e) des arˆetes de la grille en fonction du nombre de plus courts chemins m passant par chacune d’entre elles de la fa¸con suivante :

w(e)i+1= w(e)i,if m = 0 w(e)i/(log(m) + 1),if m > 0

R´eduire le poids d’une arˆete est ´equivalent `a la transformer en autoroute puisque passer par cet arˆete permet d’aller plus vite d’un point `a un autre. L’´etape de calcul des plus courts chemins pour chaque arˆete du graphe original est alors de nouveau ex´ecut´ee. Le fait d’avoir ajust´e les poids cr´ee de nouveaux faisceaux d’arˆetes ou renforce ceux existants car la nouvelle matrice de distances de la grille favorise la promotion des arˆetes les plus fr´equemment emprunt´ees lors du routage. D’apr`es nos exp´erimentations, en moyenne deux

(a) (b)

Figure 3.8: Illustrations de grilles obtenues en utilisant notre approche hybride quad-tree/Vorono¨ı. (a) Grille obtenue sur le graphe K5,5 pr´esent´e `a la Figure 3.5(a) (36 sommets / 97 arˆetes). (b) Grille obtenue sur le r´eseau de transports a´eriens pr´esent´e `a la Figure3.5(b)(2880 sommets/8561 arˆetes).

it´erations de notre m´ethode de routage sont suffisantes pour obtenir un effet de regroupe-ment satisfaisant. La Figure 3.9illustre l’ex´ecution de ce processus it´eratif. Des exemples de dessins finaux obtenus `a partir de ceux introduits `a la Figure 3.5sont ´egalement pr´e-sent´es `a la Figure 3.10. Pour calculer les plus courts chemins sur la grille, nous utilisons le c´el`ebre algorithme de Dijkstra [54] impliquant une complexit´e en temps th´eorique en

O(|Vgrille|2). Afin acc´el´erer notre processus de routage, nous introduisons dans la section suivante plusieurs optimisations qui peuvent ˆetre apport´ees `a l’impl´ementation.