• Aucun résultat trouvé

Visualisation de graphe : un état de l’art

3.1 Théorie des graphes

3.1.1 Les graphes

3.1.1.1 Petite histoire de la théorie des graphes

Le premier article de l’histoire de la théorie des graphes a été publié par Leonhard Euler en 1741 (Euler,1741). Il exposait un problème lié à la ville de Königsberg, qui possédait à l’époque sept ponts : trouver une promenade qui, partant d’une rive, emprunte une seule fois chacun des ponts et revient au point de départ. Grâce à la modélisation mathématique du problème, Euler a pu montrer qu’un tel chemin était impossible à Königsberg. Ce problème est schématisé dans la figure3.3: les nœuds représentent les rives et les arêtes les ponts de la ville. En testant toutes les combinaisons de chemin possibles, il apparait que le chemin passant par toutes les nœuds une seule fois n’existe pas. Depuis lors, le chemin qui passe par toutes les arêtes exactement une fois est appelé chemin eulérien.

a) b)

Figure 3.3 – Problème des sept ponts de Königsberg. a) Carte de Königsberg à l’époque d’Euler, avec le fleuve Pregel et les sept ponts (Bogdan Giusca, GFDL, licence CC paternité -partage à l’identique). b) Modélisation du problème sous la forme d’un graphe : chaque nœud représente une rive, et chaque arête un pont.

Cependant, le terme "graphe" n’est introduit pour la première fois qu’en 1878 par James Joseph Sylvester dans un article du journal scientifique Nature (Sylvester,1878), dans le domaine de la chimie. Les mathématiciens se sont intéressés à de nombreux problèmes liés aux graphes au cours des deux siècles précédents : les problèmes de factorisation de graphe, les recherches

sur la théorie des graphes extrémaux ou encore des graphes parfaits1. Un des plus connus est le problème des quatre couleurs, qui consiste à trouver comment colorier une carte de façon à ce que les zones voisines aient des couleurs différentes.

3.1.1.2 Les différents types de graphes

L’illustration des concepts présentés dans cette sous-section est donnée en figure 3.4.

Un graphe est constitué d’un ensemble fini de nœuds (ou sommets, nodes ou vertices en anglais) V et d’un ensemble fini d’arêtes (ou arcs, edges en anglais) E, tels que :

G = (V, E) avec E ⊆ {(u, v)|u, v ∈ V, u 6= v} (3.1)

où u et v sont deux nœuds quelconques du graphe

Les arêtes connectent les nœuds entre eux. Elles peuvent être orientées (ou dirigées, directed en anglais) ou non-orientées (non-dirigées). Un graphe qui possède des arêtes orientées est appelé graphe orienté, respectivement pour des arêtes non-orientées. Dans le cas d’un graphe orienté, les nœuds sont ordonnés par paire pour définir les arêtes : l’arête qui part du nœud u au nœud v est écrit (u, v), tandis que la paire (v, u) représente l’arête qui part du nœud v au nœud u. Un graphe non-orienté dont tous les nœuds son reliés deux à deux par une arête est dit complet.

Un graphe cyclique présente un circuit qui permet de passer par tous les nœuds du graphe et de revenir au point de départ. Quand le graphe n’est pas orienté, le circuit est appelé cycle et un graphe qui ne contient aucun cycle est appelé acyclique. Un graphe non-orienté qui ne présente pas de cycle est appelé forêt, c’est-à-dire qu’il est constitué d’un ensemble d’arbres.

Un arbre (ou graphe hiérarchique) est un graphe non-orienté et acyclique. Le nœud initial de l’arbre est appelé racine, tandis qu’un nœud situé à l’extrémité d’une ramification d’un arbre est appelé feuille. Le niveau d’un nœud dans la structure hiérarchique de l’arbre est appelé profondeur. Toute une branche de la théorie des graphes est dédiée à l’étude des arbres.

Les graphes composés sont des graphes hiérarchiques pour lesquels sont autorisés des arêtes entre des nœuds qui ne sont pas contenus par un parent commun. Formellement, un graphe composé C = (G, T ) est défini par un graphe G = (V, EG) et un arbre T = (V, ET, r) où r est le nœud racine de l’arbre qui partagent un ensemble d’arêtes, tel que : ∀e = (v1, v2) ∈ EG, v1 ∈ path/ T(r, v2) and v2 ∈ path/ T(r, v1). Les nœuds qui partagent un parent commun dans T appartiennent au même groupe, tandis que les nœuds qui sont reliés à un parent commun dans G partagent une relation générique. Une illustration de graphe composé est donnée dans la figure3.5.

Une valeur, appelée poids, peut être associée à une arête que l’on qualifie alors de pondérée

1. Pour plus d’informations sur les grands problèmes de la théorie des graphes, se référer aux ouvrages (Bondy & Murty,1976) et (West et al.,2001).

A

B

C

D

A

B

C

D

A

B

C

D

0.1 0.6 0.25 0.8 0.2

a) graphe orienté b) graphe non-orienté c) graphe orienté pondéré

A

B

C

D

A

C

D

A

B

C

d) graphe non-orienté complet e) sous-graphe du graphe a f) sous-graphe cyclique de a

A

B C

D E

A

B

C

D

g) arbre h) graphe multivarié orienté (chaque nœud a un attribut "couleur")

Figure 3.5 – (a) Graphe d’entrée G, (b) Arbre après clustering T : les noeuds avec une lettre représentent les noeuds du graphe d’entrée, tandis que les noeuds numérotés représente les noeuds des clusters, (c) Vue fish-eye du graphe composé C = (G, T ). (Abello et al.,2005)

(weighted en anglais). Par extension, un graphe qui accepte des arêtes pondérées est appelé graphe pondéré.

Dans la littérature de la théorie des graphes, un graphe orienté pondéré est généralement appelé réseau, tandis que dans le domaine de la visualisation d’information, le terme réseau est généralement associé à un graphe dont des attributs sont associés aux nœuds et aux arêtes. Dans cette thèse nous choisissons d’utiliser le terme graphe quelles que soient ses caractéristiques.

Un sous-graphe g est défini par un ensemble de nœuds appartenant à G :

g = (V0, E0) avec E0 ⊆ {(u0, v0)|u0, v0∈ (V0∩ V ), u0 6= v0} (3.2)

Un graphe multivarié M peut être défini comme un graphe G auquel n attributs A sont ajoutés sur les nœuds et les arêtes, tels que (pour les nœuds, la définition est similaire pour les arêtes) :

A = {A1, ..., An} = (aij)(j = 1...|V |; i = 1...n) (3.3) Ai représente une colonne de la table des attributs (nœud ou arête), et au = (au1, ..., aun) décrit toutes les valeurs des attributs pour le nœud u, en supposant qu’il n’y a pas de donnée manquante (Jusufi,2013).

Dans un scénario multivarié statique, les valeurs des attributs restent fixes et le challenge consiste à visualiser les interactions entre le ou les graphes et ces attributs. Les graphes statiques multivariés peuvent être vus comme des graphes auxquels sont associés des jeux de données di-mensionnels reliés à ses éléments.

Un graphe dynamique est défini par une séquence de graphes :

Γ = (G1, G2, ..., Gn) (3.4)

(t1, t2, ..., tn) (Beck et al.,2014).

Les graphes multivariés dynamiques (aussi appelés graphes multivariés temporels) ont plu-sieurs attributs des nœuds et/ou des arêtes qui évoluent avec le temps (Abello et al.,2014).