• Aucun résultat trouvé

1.3 Le partitionnement de graphes

1.3.1 Formalisation mathématique de la théorie des graphes

La théorie des graphes est régie par un ensemble de concepts et de définitions formelles. Cette section fait état de l’ensemble des notions nécessaires à la compréhension des travaux menés dans cette thèse et les définit formellement.

Notion de graphe

Cette sous-section présente tous les principaux outils mathématiques liés aux graphes et à leur définition. La première et plus fondamentale notion de la théorie des graphes concerne bien évidemment la définition du graphe en lui-même :

Définition 9 (Graphe) :SoitV un ensemble sommets, nommé en référence à son nom

en anglaisvertex, qui se composenV ∈N+éléments etEun ensemble d’arêtes, nommé en référence à son nom anglaisedge, qui se compose denE∈N+couples d’éléments de

V. On appelle grapheGle couple(V,E).

Soient deux sommetsv1,v2∈V, tels que v1 soit connecté àv2 dans ce sens, et uniquement dans ce sens, un graphe contenant de telles règles est ditorienté. Au contraire, si un graphe ne contient aucune règle de connexion, en terme de sens, celui-ci est ditnon orienté. On peut aussi distinguer, entre autre, une sous catégorie au graphe orienté : le graphebidirectionnel. Celui-ci existe à condition que pour tout couple v1,v2 ∈V, v1 soient connectés à v2 et réciproquement. Voici une définition formelle des ces graphes :

Définition 10 (Graphe orienté, non orienté) :Soit un grapheG= (V,E). Si∀(x,y)∈E,

(y,x)∈E, alors le graphe est dit non orienté et les éléments deE sont appelés arêtes du graphe. Dans ce cas, on note indifféremment une arête : e∈E,(v,v0)∈E avec vetv0

dansV, ou encore(V0,V). Dans le cas contraire, le graphe est dit orienté et les éléments deEsont appelés arcs du graphe.

Il est possible d’associer une pondération aux arcs et aux nœuds dans le but de pénaliser ou d’accentuer leur importance dans le graphe. Cette notion est fondamentale pour le partitionnement de graphe. C’est un complément d’information indispensable pour qu’un graphe puisse refléter au mieux le processus qu’il représente. Les graphes incluant cette pondération portent le nom de graphes valués ou pondérés.

Définition 11 (Graphe valué ou pondéré) : Soit un graphe G= (V,E). On dit que

le graphe est valué (ou pondéré) si à chaque élément e de E est associée une valeur entière poids(e)∈N. La valeur poids(e) est appelée le poids dee. Par extension, on considère qu’un couple de sommets(v,v0)∈V2tel que(v,v0)∈/Epossède un poids nul :

poids(v,v0) =0. Le poids d’un sous-ensemble X d’éléments de E, est la somme des

poids des éléments deX:

poids(X) =

e∈X

poids(e)

De même, on associe parfois aux élémentsvdeV un entier strictement positif appelé le poids deV et notépoids(v).

Il est également possible d’associer à chaque sommet du graphe un nom, appelé index, per-mettant ainsi de se repérer facilement dans le graphe. Cet index peut être une valeur numérique, une chaîne de caractères ou même une simple lettre.

FIGURE1.10 – Exemple de graphe avec boucle et arcs multiples

Il existe différentes formes et particularités pour un graphe, certains peuvent posséder des som-mets dont l’arête se rattache à lui-même, ou encore deux somsom-mets reliés par des arêtes multiples. La figure1.10illustre ces notions.

Définition 12 (Boucle et arête multiple) :Une arête est appelée une boucle si ses deux

extrémités sont identiques. Si deux arêtes possèdent les mêmes extrémités, alors on dit que l’arête est multiple et que ces deux arêtes sont parallèles. Dans ce cas, la multiplicité d’une arête est le nombre total de ses arêtes parallèles, y compris elle-même. Il en va de même pour les graphes orientés.

Certains graphes ont des structures particulières et sont soumis à certaines règles. C’est le cas des deux types de graphes présentés ci-dessous :

Définition 13 (Graphe simple) : Un graphe est dit simple s’il n’a ni boucle ni arête

Définition 14 (Graphe connexe) :Soit un grapheG= (V,E). On dit que ce graphe est connexe si, quels que soient les sommetsvetv0deV, il existe un chemin devversv0. Par extension, un graphe non connexe est un graphe qui peut se décomposer ennsous-graphes connexes. C’est à dire, qu’il existe un ou plusieurs groupes de sommets isolés. La figure 1.11 donne un exemple de graphe non connexe car il est impossible de rejoindre le sommet 6 en partant du sommet 0. Cependant, les deux sous-graphes qui en résultent sont connexes. La notion de connexité est très importante pour la suite de nos travaux sur le partitionnement.

FIGURE1.11 – Illustration de la connexité d’un graphe

Il existe un grand nombre de notions qui gravitent autour du concept de graphe. La sous-section suivante présente ces notions indispensables à la bonne compréhension des travaux menés dans cette thèse.

Notion annexe au graphe

Pour connaître la connexité d’un graphe, il est nécessaire de savoir si il existe des groupes de sommets qui ne sont pas rattachés au reste du graphe. Pour cela, il suffit de vérifier que tous les sommets du graphe sont connectés par une suite d’arêtes. Si une telle suite existe, on l’appellera chemin d’un graphe.

Définition 15 (Chemin d’un graphe) :Soient un grapheG= (V,E), et deux sommets

distincts(v,v0)∈V2. S’il existe une suite d’arêtes (ou d’arcs correctement orientés pour un graphe orienté) permettant d’atteindre v0 à partir de v, alors on dit qu’il existe un chemin devversv0dansG.

De par sa forme, il est possible d’accéder et de connaître l’ensemble des voisins d’un sommet d’un graphe grâce aux arêtes qui le compose. Cette connaissance repose exclusivement sur la notion d’adjacence.

Définition 16 (Adjacence) :Soient un grapheG= (V,E)et une arêtee= (v,v0)∈E. On dit que les sommetsvetv0sont les sommets adjacents à l’arêtee. De même,eest l’arête adjacente aux sommetsvetv0.

Cette notion d’adjacence donne un cadre formel pour définir les interactions qui existent dans un graphe. Ces interactions sont regroupées dans une liste d’adjacence. Celle-ci permet de connaître, pour chaque sommetv∈V, la liste des sommets avec lesquelsvpossède une connexion.

La liste d’adjacence diffère en fonction de l’orientation de graphe. Le graphe ci-dessous, ainsi que les listes qui lui sont associées, donne un exemple de liste d’adjacence dans un cas orienté et non orienté.

Graphe Orienté Liste d’adjacence Orienté

0 → 1,2 1 → 3,4 2 → 0,4 3 → 0 4 →

Liste d’adjacence Non Orienté 0 −1,2,3 1 −0,3,4 2 −0,4 3 −0,1 4 −1,2

La liste d’adjacence ne comptabilise pas les arêtes multiples et les sommets voisins sont tou-jours triés par ordre croissant de leur index (où ordre alphabétique si leur index est une lettre). Le poids et l’index ne sont pas les seules informations que peut contenir un sommet, il existe aussi le degré :

Définition 17 (Degré d’un sommet) :Dans un graphe non orientéG= (V,E), le degré

d’un sommetv∈V est le nombre d’arêtes auxquelles ce sommet appartient :

deg(v) =card({(v,v0)∈E,v0∈V}

Dans le cadre de graphes valués, le degré d’un sommet correspond à la somme des poids des arêtes auxquelles ce sommet appartient :

deg(v) =

(v,v0)∈E

poids(v,v0)

Pour ce qui est des graphes orientés, le degré d’un sommet correspond à la somme des poids des arcs entrants et sortants du sommet (ou au nombre d’arcs entrants et sortants). Cette section fournit l’ensemble des notions théoriques nécessaires à la compréhension du problème du partitionnement de graphe. Les informations qui vont vous être présentées à partir de maintenant sont orientées autour du concept departition.

Notion de partition

Le partitionnement de graphe est l’art de réaliser une partition deG, en respectant un ensemble de critères et de contraintes. Une partition peut être perçue comme le résultat du découpage d’un grapheG. Cependant, celle-ci ne correspond pas à un ensemble de sous-graphes, mais plutôt à un sous-ensemble de sommets ou d’arêtes. En terme général, on entend par partition la réunion des sous-ensembles des sommets du graphes, mais il est tout à fait possible de créer une partition

des arêtes du graphe comme le propose [Hol81]. Dans le cadre de cette thèse, nous considérons la partition au sens classique du terme :

Définition 18 (Partition) : Soit un ensembleV quelconque. Un ensemble P de

sous-ensembles deV est appelé une partition deV si : - Aucun élément dePn’est vide

- L’union des éléments dePest égal àV

- Les éléments dePsont deux à deux disjoints Les éléments dePsont appelés les parties de la partitionP.

Mais avant de présenter plus en détail en quoi consiste exactement le partitionnement de graphe et ses contraintes, il est nécessaire de savoir et de comprendre que le problème de par-titionnement de graphe est un problème d’optimisation combinatoire.