Visualisation d’information interactive 5 : Graphes Jean-Daniel Fekete INRIA Futurs/LRI Projet IN-SITU
Représenter un arbre par un arbre (vanWijk Infovis 2001)
Définition formelle Un graphe est défini par Un ensemble de sommets S={si} Un ensemble d’arc ou arêtes A={aj} avec a=(sd,sa) ∈ SxS Lorsque qu’on prend en compte l’ordre des sommets dans A, alors le graphe est orienté, sinon il est non-orienté. C’est une application de S dans S On définit des propriétés sur un graphe qui sont à caractère topologique
Propriétés des graphes A partir d’un graphe, on peut calculer des propriétés: Degré (entrant/sortant) d’un sommet Distance entre des sommets (nombre de liens min qui les sépare) Composantes (fortement/faiblement) connexes Diamètre du graphe Centralité d’un nœud Densité du graphe
Deux représentations classiques pour les Graphes Nœuds+Liens Le nœud représente un sommet Le lien représente un arc Matrices d’adjacence Une ligne est un sommet de départ Une colonne est un sommet d’arrivée L’intersection visualise l’existence d’un arc A C D B A B C D X
Utilisation des graphes La modélisation de données par graphes est très (trop) flexible: Le Web, le circuit routier, voies ferrées, Internet, circuit de voyage, modules logiciels, réseaux sociaux (arbres généalogique), etc. Tout peut être modélisé comme un graphe… par toujours bien!
Exemples de tâches dans les graphes Les principales tâches liées à la topologie sont: Nœuds: degré, isolé (degré=0), source (pas de lien entrant), collecteur (pas de lien sortant), voisins Chemins: Chemins (plus court, tous), cycles Sous-Graphes: Composants connexes, etc. La liste est sans fin et chaque domaine d’application spécifique ajoute des tâches propres
Attributs dans les graphes La structure de graphe ne définit qu’une topologie On peut associer des attributs aux sommets ainsi qu’aux arcs (on parle alors de réseau) Par exemple un nom, poids, taille, etc. On ajoute de nouveaux attributs calculables topologiquement : Chemin du moindre coût, cycle contraint On ajoute des tâches liées aux attributs Cycle le plus court passant par Paris, Lyon, Marseille et Bordeaux
Les représentation Nœud-Lien
Chercher l’erreur
Problématiques Placement du graphe Passage à l’échelle Navigation Attention au plat de spaghettis !
Styles de liens Lignes droites Courbes Orthogonaux
Contraintes « Esthétiques » Minimiser les croisement Minimiser la longueur des liens Minimiser les changements de direction Maximiser les symétries … mutuellement contradictoires
Critères complexes On veut maximiser la lisibilité et on ne sait pas la définir Symétrie ? Forme connue ?
Placement du graphe Trouver, pour chaque sommet, un position X,Y qui optimise une fonction « objectif » plongement de la topologie dans un espace métrique Contraintes « esthétiques » Hiérarchisation, clustering Positionnement pas valeur d’attribut
Méthodes de placement Cinq grandes familles 1) Placement a priori 2) Placement par forces 3) Placement algorithmique 4) Placement par contraintes 5) Placements ad-hoc
Placement a priori On dispose d’attributs de placement (réseau téléphonique) On place autour d’un ou plusieurs cercles concentriques Occlusion des liens, peut-on optimiser?
Placement par force Utiliser un modèle physique d’attraction/répulsion pour placer le graphe Proposé dans Eades84 Les sommets sont des masses et les arêtes sont des ressorts Longueur naturelle Rigidité k On place les nœuds aléatoirement On lâche On ajoute de la friction On attend que le système se stabilise
Placement par force (2) Algorithme: Initialiser les noeuds Position aléatoire, force nulle Tant Que l’énérgie potentielle > epsilon Appliquer à chaque nœud une force de répulsion proportionnelle à la distance de chaque autre nœud Appliquer à chaque nœud la force d’attraction de ses ressorts Déplacer les nœuds suivant la force qui leur est appliqué et de la friction Fin Tant Que
Placement par force (3) Avantages: Inconvénients: Simple à implémenter Facile d’optimiser avec des heuristiques Évolution continue, animable et incrémentale Extensible à la 3D Fait apparaître les symétries Fonctionne bien pour les petits graphes Inconvénients: Long (quadratique) mais s’optimise
Placement par force (4) Autres méthodes [Kamada Kawai 89] Distance géométrique = distance dans le graphe [Fruchterman Reingold 90] corps célestes [Davidson Harel 89] prise en compte de la densité locale et méthode de recuit simulé [Hall 70] Méthode spectrale
Matrices d’adjacence
Liens courbes