• Nenhum resultado encontrado

3.2 Visualisation de graphe

3.2.3 Algorithmes par analogie physique

Afin de dessiner les graphes g´en´eraux, les communaut´es de dessin de graphe et de visualisation d’information ont mis en place des algorithmes bas´es sur des simulations de syst`emes physiques, appel´es algorithmes par analogie physique. Cette approche per- met d’obtenir des r´esultats visuellement plaisants mais aussi structurellement significatifs.

Brandes explique dans [86] qu’une m´ethode par analogie physique est compos´e de deux parties :

– Unmod`ele d’objets physiques repr´esentant les ´el´ements du graphe

– Un algorithme qui essaie de trouver la (une) configuration d’´equilibre du mod`ele Il existe deux principales m´ethodes par analogie physique : les mod`eles de forces et les pla- cements par minimisation du niveau d’´energie. Dans un algorithme par mod`ele de forces, les sommets sont des objets physiques poss´edant une masse et ´eventuellement d’autres caract´eristiques (e.g. une temp´erature). Les sommets sont consid´er´es dans ce type d’al- gorithme comme des particules exer ˜A§ant une force r´epulsive sur les autres particules et

34 Chapitre 3. D´ecomposition et Visualisation : Etat de l’art

Fig.3.6: Illustration du croisementintra-couche de Kuntzet al. [93]. (a) et (b) sont les deux individus parents ; (c) et (d) sont les r´esultats du croisement intra-couche.

L’individu (c) est constitu´e des sommets de (b) entour´es en rouge et des sommets de (a) non-entour´es en rouge dans (b) (en jaune dans (a)). Inversement, l’individu (d) est constitu´e des sommets de (a) entour´es en bleu et des sommets de (b) non-entour´es en bleu dans (a) (en vert dans (b)).

les liens (arˆetes) reliant les sommets sont eux consid´er´es comme des ressorts (e.g. ressorts physiques, ´electromagn´etiques). A chaque it´eration de ce type d’algorithme, la force to- tale exerc´ee sur chaque sommet u par les autres sommets est calcul´ee. Les sommets sont ensuite d´eplac´es en fonction de cette force totale. La r´ep´etition du calcul des forces et des d´eplacements permet au syst`eme de se rapprocher `a chaque it´eration d’un ´etat plus stable. Cependant cette m´ethode ne permet pas de garantir une convergence vers l’´etat le plus stable du syst`eme (minimum global du niveau d’´energie). Dans les approches bas´ees sur la minimisation du niveau d’´energie, ce ne sont pas les d´eplacements des sommets qui font baisser le niveau d’´energie mais plutˆot une baisse du niveau d’´energie qui d´eplace les sommets. En effet, cette technique tente de diminuer le niveau d’´energie et calcule les mouvements de sommets que cela implique.

3.2.3.1 Algorithme par mod`ele de forces

L’un des algorithmes les plus connus dans ce domaine est celui de Eades [42]. Soit G= (V, E)un graphe non-orient´e, on notepu= (xu, yu)le vecteur de position du sommet u dans le plan et −−→pupv le vecteur unitaire de u `a v. La force exerc´ee sur un sommet u est compos´ee d’une force d’attraction exerc´ee par les voisins de udans le graphe et d’une force de r´epulsion exerc´ee par tous les autres sommets du graphe non voisins de u. La force d’attraction exerc´ee par un voisin v de u est d´efinie comme suit :

fatt(u, v) =catt·logdistR(u, v)

length · −−→pupv (12)

3.2. Visualisation de graphe 35

o`ucatt est une constante repr´esentant laraideur des ressorts et lengthest la longueur au repos du ressort. La force de r´epulsion exerc´ee par un sommet v (non voisin de u) sur u est elle :

frep(u, v) = crep

distR(u, v)2 · −−→pvpu (13) Enfin la force totale exerc´ee sur un sommetu `a chaque it´eration de l’algorithme est :

ftotale(u) = X

e={u,v}∈E

fatt(u, v) + X

e={u,v}∈E/

frep(u, v) (14)

Etant donn´e que les sommets sont d´eplac´es de mani`ere synchrone (i.e. les forces sont calcul´ees `a un momenttet tous les sommets sont ensuite d´eplac´es simultan´ement), utiliser ftotale comme vecteur de d´eplacement pourrait induire des d´eplacements excessifs. Afin de limiter les effets de ce probl`eme, le vecteur de d´eplacement d’un sommet u est d´efini comme disp(u) =δ·ftotale(u) o`u δ∈[0,1[est une constante.

Fig. 3.7: Sous-graphe du «graphe d’Hollywood» o`u les sommets repr´esentent des acteurs et une arˆete relie deux sommets dont les acteurs correspondants ont jou´e dans (au moins) un film commun, (a) dessin´e par l’algorithme de Fruchterman et Reingold [55] et (b) par l’algorithme de Fricket al.[54].

Dans [55], Fruchterman et Reingold donnent un algorithme par mod`ele de forces l´eg`e- rement diff´erent de celui de Eades [42] (cf figure 3.7.(a)). Les modifications apport´ees aux calculs des forces permettent une convergence plus rapide de l’algorithme. Les formules utilis´ees pour le calcul de la force attractive exerc´ee sur upar un sommet voisin v est :

fatt(u, v) = distR2(u, v)2

length · −−→pupv (15)

Et la force r´epulsive exerc´ee sur upar tout autre sommetv : frep(u, v) =s· length2

distR2(u, v) · −−→pvpu (16) o`u s est une constante. L’une des diff´erences principales est que tous les sommets du graphe exercent une force r´epulsive suru(alors que seuls les sommets non-voisins deu ne

36 Chapitre 3. D´ecomposition et Visualisation : Etat de l’art

sont pris en compte dans l’algorithme de Eades [42]). On obtient donc la formule suivante : ftotale(u) = X

v∈N(u)

fatt(u, v) + X

v∈V,v6=u

frep(u, v) (17)

L’autre diff´erence importante est que Fruchterman et Reingold proposent une m´ethode heuristique permettant d’acc´el´erer le temps de calcul de l’algorithme. Etant donn´ee la mani`ere dont les forces r´epulsives sont calcul´ees, un sommet ´eloign´e deu n’exerce qu’une tr`es faible force de r´epulsion sur u. Il n’est donc pas n´ecessaire de prendre en compte ces sommets lors du calcul des forces. Pour ce faire, cet algorithme utilise une grille contenant les sommets du graphes. Lors du calcul des forces r´epulsives exerc´ees sur le sommet u, seuls les sommets positionn´es dans des cellules voisines de la cellule de v sont pris en compte.

Enfin, contrairement `a l’algorithme de Eades [42] o`u le d´eplacement est un facteur constant δ de la force totale exerc´ee, dans l’algorithme de Fruchterman et Reingold ce facteur d´epend du nombre d’it´erations d´ej`a effectu´ees : l’amplitude des d´eplacements est plus grande au d´ebut de l’ex´ecution de l’algorithme qu’`a la fin.

Dans [54], Frick et al. pr´esentent un algorithme appel´e GEM (cf figure 3.7.(b)). Cet algorithme apporte de nouvelles modifications `a l’algorithme de Eades [42]. Tout d’abord, les forces appliqu´ees sur un sommet u par un sommetv sont modifi´ees en :

fatt(u, v) = distR2(u, v)2

length·Φ(u) · −−→pupv (18) frep(u, v) = length2

distR2(u, v) · −−→pvpu (19) o`u Φ(u) est une fonction d´ependant du degr´e de u dans le graphe, Φ(u) = 1 + degG2(u). De cette mani`ere, les sommets de forts degr´es ont des d´eplacements plus faibles que les sommets de faibles degr´es. D’autre part, cet algorithme utilise une force gravitationnelle, exerc´ee depuis le barycentre des sommets :

fgrav(u) = Φ(u)·γ·

 X

v∈V

pv

|V| −pu

(20)

o`uγ est une constante gravitationnelle. Contrairement `a la force d’attraction, cette force est proportionnelle `a Φ(u), i.e. plus le sommet est de fort degr´e plus il est sensible `a la gravit´e. Enfin, une force al´eatoire frand(u) est appliqu´ee `a chaque sommet, cela permet

`

a l’algorithme de sortir d’un ´etat stable dont le niveau d’´energie est ´elev´e (i.e. d’un mi- nimum local de l’´energie du syst`eme). Toutes ces modifications, notamment des forces proportionnelles (ou inversement proportionnelles) au carr´e de la distance, permettent une convergence plus rapide de l’algorithme. La force totale exerc´ee sur un sommetu est finalement :

ftotale(u) = X

v∈N(u)

fatt(u, v) + X

v∈V,v6=u

frep(u, v) +fgrav(u) +frand(u) (21)

3.2. Visualisation de graphe 37

La derni`ere am´elioration apport´ee par GEM [54] porte sur le calcul du vecteur de d´epla- cement. Le facteurδutilis´e pour calculer le vecteur de d´eplacement en fonction de la force totale est dans cet algorithme propre `a chaque sommet u et est fonction du tempst, on le note δu(t). Cela permet d’att´enuer les effets d’oscillation et derotation. Si un sommet u oscille ou tourne autour d’un point «fixe», alors δu(t) prend une valeur faible. Si au contraire, le sommetueffectue un d´eplacement au tempstdans le mˆeme sens et la mˆeme direction que son d´eplacement au tempst−1, alors le facteurδu(t)prend une valeur forte, permettant ainsi un d´eplacement plus important.

3.2.3.2 Algorithme par minimisation du niveau d’´energie

Dans [79], Kamada et Kawai donnent un algorithme bas´e sur la minimisation du niveau d’´energie. L’´energie du syst`eme est d´efinie comme suit :

E= 1 2 ·X

u∈V

X

v∈V,v6=u

K

dG(u, v)2 ·(distR(u, v)−length·dG(u, v))2 (22) Pour choisir quel sommet va ˆetre d´eplac´e, cet algorithme calcule quel sommet permet de faire diminuer le plus le niveau d’´energie du syst`eme. Puis, tant que ce sommet permet de diminuer suffisament (sup´erieur `a une constanteǫfix´ee) le niveau d’´energie, l’algorithme d´eplace le sommet en utilisant le vecteur suivant :

ftotale(u) =X

v∈V

distR2(u, v)

distG(u, v)·length2 −1

(pos(v)−pos(u)) (23) Ce vecteur de d´eplacement peut ˆetre interpr´et´e comme une force exerc´ee sur le sommet u, c’est pourquoi dans la suite de cette th`ese nous utiliserons le terme d’algorithme par mod`ele de forces lorsque l’on parlera de l’algorithme de Kamada et Kawai [79].

3.2.3.3 Complexit´es

Le tableau 3.1 montre les complexit´es en temps et en espace de chacun des 4 algo- rithmes pr´esent´es dans cette section.

Algorithme Temps Espace Optimisation Eades [42] O(|V|3) O(|V|) aucune Fruchterman & Reingold [55] O(|V|3) O(|V|) par grille

Fricket al.[54] O(|V|3) O(|V|) aucune Kamada & Kawai [79] O(|V|4) O(|V|) aucune O(|V|3) O(|V|2) aucune

Tab.3.1: Complexit´es en temps et en espace des algorithmes de [42, 55, 54, 79].

Le nombre d’it´erations des algorithmes par analogie physique n’est g´en´eralement pas born´e. Cependant, les auteurs de [42, 55, 54] (ainsi que la communaut´e de dessin de graphe) consid`erent que O(|V|) it´erations sont suffisantes pour obtenir un dessin de

38 Chapitre 3. D´ecomposition et Visualisation : Etat de l’art

«bonne» qualit´e. Etant donn´e que chaque it´eration a un coˆut de O(|V|2+|E|), la com- plexit´e en temps de ces algorithmes est de O(|V|3).

En ce qui concerne l’algorithme de Kamada et Kawai [79], le calcul des forces requiert les distances dans le graphe. Deux solutions sont donc envisageables : calculer et stocker ces distances, ou calculer ces distances `a chaque it´eration de l’algorithme. Calculer la matrice des distances entre chaque paire de sommets peut ˆetre ´evidemment r´ealis´e en temps O(|V|3) mais n´ecessite O(|V|2) espace m´emoire [82, 100]. La complexit´e de l’algorithme est donc en tempsO(|V|3)et en espaceO(|V|2). Une autre possibilit´e consiste `a calculer `a chaque it´eration la distance entre le sommet courant et tous les autres sommets. Le coˆut en temps de chaque it´eration est alors O(|V|3). On obtient dans ce cas une complexit´e totale O(|V|4)en temps et O(|V|)en espace.