Vous êtes sur la page 1sur 23

Année Universitaire : 2019/20

Chapitre 4 :

GRAPHES ET RESEAUX

Professeur : Tayeb OUADERHMAN


INTRODUCTION
L’histoire de la théorie des graphes débute avec les travaux d’Euler au XVIII e siècle et trouve
son origine dans certains problèmes, tels que celui des ponts de Königsberg :

Rive nord

île 1
11 île 2
11

Rive sud

Figure 2.1 : Carte du village de Königsberg

s1

s2
s4

s3

Figure 2.2 : graphe du problème des ponts de Königsberg

Les habitants se demandaient s’il était possible, en partant d’un quartier quelconque de la
ville, de traverser tous les ponts sans passer deux fois par le même et de revenir à leur point de
départ.
L’idée d’Euler était très simple et marqua le début de la théorie des graphes. Tout d’abord, il
remplaça la carte du village par le diagramme de figure 2.2 . Sur ce graphe les sommets s1 et
s3 représentent les deux rives de la rivière, les sommets s2 et s4 représentent les deux îles, et
les sept arêtes reliant ces sommets correspondent aux sept ponts.
Euler a donc démontré que la réponse à cette question est négative.
Dés lors la théorie des graphes s’est alors développée dans diverses disciplines telle que la
chimie, la biologie, les sciences sociales…

-1-
Un graphe permet de représenter la structure, les connections d’un ensemble complexe en
exprimant les relations entre ses éléments : réseau de communication, réseaux routiers,
circuits électriques…
Les graphes permettent donc de modéliser une grande variété de problèmes en se ramenant à
l’étude de sommets et d’arcs. Les derniers travaux en théorie des graphes sont souvent
effectués par des informaticiens, du fait de l’importance qu’y revêt l’aspect algorithmique.

DEFINITIONS ET PREMIERS EXEMPLES :


Il existe plusieurs manières de caractériser un graphe, nous allons en parcourir quelques unes.
Notons immédiatement qu’il existe deux grands types de graphes :
 Les graphes orientés
 Les graphes non orientés

Concepts orientés (digrahe)


Un graphe G(S,U) est caractérisé par :
 un ensemble S={s1, s2,…, sn} dont les éléments sont appelés sommets ou noeuds
 un ensemble U={ u1, u2,…, um } du produit cartésien SxS dont les éléments sont
appelés arcs.
On appelle le cardinal de S l’ordre du graphe.
Pour un arc u=( si,sj), si est l’extrémité initiale, sj est l’extrémité finale ( ou bien origine et
destination).

s1 u S2
figure 2.1 : Diagramme sagittal

Un arc u=( si,si) est appelé une boucle :

si

Application multivoque
sj est successeur de si si ( s i , s j )  U , l’ensemble des successeurs de si est noté ( s i ) . (si est
prédécesseur de s j ,  1 ( s j ) l’ensemble des prédécesseurs de s j ) :
: S
 P( S )
s i  ( s i )  S
Exemple 1 :
s1 s4

s5

s2 s3

Figure 2.2 :

Calculer  (si) pour i=1,..,5

Remarques 1:
- G peut être parfaitement déterminé par S ,   .
- On peut également définir une fonction  telle que   ( s i ) représente l’ensemble des
arcs sortant de s i et réciproquement pour   ( s i ) les arcs entrants.

Concepts non orientés


Lors de l’étude de certaines propriétés, il arrive que l’orientation des arcs ne joue aucun rôle.
On s’intéresse simplement à l’existence d’arc (s) entre deux sommets (sans en préciser
l’ordre). Un arc sans orientation est appelé arête. u est constitué non pas de couples, mais de
paires de sommets non ordonnés.
Pour une arête (si,sj) on dit que U est incidente aux sommets si et sj .

Remarque :
Dans le cas non orienté, au lieu de noter G =(S,U) et u=( e i,ej) on préfère souvent G=(S,E) et
e=[ si,sj ] .

Les graphes simples et les multigraphes

Un multigraphe G=(S,E) (ou G=(S,U)) est un graphe pour lequel il peut exister plusieurs
arêtes entre deux sommets.
Un graphe est simple :
o S’il n’est pas multigraphe
o S’il n’existe pas de boucles.

-3-
s2
s2

s1
s1

Arêtes multiples Arcs multiples


Remarque : Deux arcs de sens opposés ne sont pas des arcs multiples.

On appelle p-graphe, un multigraphe dont le nombre maximum d’arcs liant deux sommets ne
peut jamais excéder p.
Exemple 2 : Donner un exemple de chaque type de graphes suivants :

(a) : 3-graphe d’ordre 4 (b) 2-graphe d’ordre 5

Lorsque p=1, le p-graphe devient un 1-graphe, les arcs de U étant tous distincts, U devient un
ensemble de cardinal m.

adjacence et incidence
Définitions :
o Deux sommets distincts d’un graphe G=(S,U) sont dits adjacents si et seulement si ils
sont joints par un arc : Si  si , s j   S et s i , s j  U alors si est adjacent à s j .

o Deux arcs distincts d’un graphe sont dits adjacents si et seulement si ils ont au moins
une extrémité commune.
Un arc u= si , s j   U d’un graphe G S, U  est dit incident à si vers l’extérieur et incident à

s j vers l’intérieur.
Dans un graphe G, le nombre d’arcs incidents à un sommet s vers l’extérieur, noté d G (s) ,

s’appelle le demi-degré extérieur de s. De même, le nombre d’arcs incidents à s vers


l’intérieur, noté d G (s) , s’appelle le demi-degré intérieur de s.

Le degré d’un sommet s d’un graphe G, noté d G (s) , est défini comme le nombre total d’arcs

ayant une extrémité en s :


d G ( s )  d G ( s )  d G ( s )
Remarques :
 On a : d G ( s)    ( s) et d G ( s)    ( s )

 Le degré d’un sommet d’un graphe non orienté est le nombre d’arêtes qui lui sont
incidentes.
 Dans le cas d’un 1-graphe, on peut tout aussi bien définir le degré d’un sommet à
l’aide de l’application multivoque  puisque :

  (s) =  (s) et   (s) =  1 ( s)

 Une boucle augmente de deux unités le degré d’un sommet concerné.


Théorème 2.1 :
Pour tout graphe G S, U  , la somme des degrés des sommets égale deux fois le nombre
d’arcs.
Preuve : exercice
Corollaire 2.1 :
Pour tout graphe G S, U  , il existe un nombre pair des sommets dont le degré est impair.
Proposition 2.1 :
Soit G S, U  un graphe, alors g admet au moins une paire de sommets ayant le même degré.

Autres terminologies :
o Graphe complémentaire :
 
G= S, U  et G  S , U , s i , s j  U s i , s j  U et s i , s j  U s i , s j  U , G est le
graphe complémentaire de G.
o Graphe partiel :
G= S, U  et V  U , G p  S , V  est un graphe partiel de G.
o Sous-graphe :
 
G= S, U  et S '  S , G '  S ' , V est un sous-graphe de G, où V est la réstriction de la
fonction caractéristique de U à S’ :
V  ( x, y ) /( x, y )  U  ( S 'S ' )
o Sous-graphe partiel : combiner les deux

-5-
o Graphe réflexif : s i , s i  U , s i  S
o Graphe symétrique : s i , s j  U s j , s i  U
o Graphe asymétrique : s i , s j  U s j , s i  U
o Graphe antisymétrique : s i , s j  U et s , s U  s  s
j i i j

o Graphe transitif : s i , s j  U et s j , s k U s , s U


i k

o Graphe complet : s i , s j  U  s j , s i  U
Notons qu’un graphe complet et antisymétrique s’appelle un tournoi, car il symbolise le
résultat d’un tournoi où chaque joueur est opposé une fois à chacun des autres joueurs.

Isomorphisme de graphes :
 
Deux graphes G= S, U  et G  S , U sont dit isomorphes si il existe une bijection f de U

dans U telle que (f(x),f(y)) est une arête de G si et seulement si (x,y) est une arête de G.
Exercice : Trouver les 11 graphes simples non isomorphes d’ordre 4.

REPRESENTATION DES GRAPHES

3.1. Matrice d’adjacence


Soit G= S, U  un graphe d’ordre n : S  s1 , s 2 ,..., s n 
La matrice d’adjacence A(G) de G est la matrice carré nxn définie comme suit :
A(G )  a ij ij avec a ij est le nombre d’arêtes (arcs) de s i à s j

Remarques :
 Si G est non orienté alors A(G) est symétrique
 Si g es simple, A(G) est une matrice booléens
 Une consultation complète de A(G) occupe une place mémoire d’ordre n 2 , cette
représentation est coûteuse en mémoire.
 Pour les graphes simples numérisés, on peut remplacer « 1 » par la valeur numérique
de l’arc.
Exemples 3.1:
0 1 0 0 0 0
1 0 2 1 0 1
s2 s3 
0 2 1 1 0 0
s1 A(G )   
0 1 1 0 0 1
0 0 0 0 0 0
 
0 1 0 1 0 0
s5 s4 s6

s1 0 2 1
A(G )  0 0 1
s3 0 1 1
s2

Proposition 3.1 :
Deux graphes G et G’ sont isomorphes si et seulement si ils ont, à une permutation près, la
même matrice d’adjacence :
A(G )  P 1 A(G ' ) P P une matrice de permutation

3.2. Matrice d’incidence sommets-arcs


Considérons le programme PLNE suivant :
max cx

( PLNE ) sc Ax b
 x  0 entiers

Supposons que le vecteur b soit de composantes entières.
Quand est-ce que la solution optimale de (PLNE), sans tenir compte des contraintes
d’intégralité, est-elle déjà à valeurs entières ?
Une condition suffisante pour ceci est que A est une matrice totalement unimodulaire :
Définition 3.1 :
A est totalement unimodulaire (TU) si chaque sous matrice carré de A est de déterminant égal
à -1, 0 ou +1.
Remarque : Les éléments d’une telle matrice sont égaux à -1, 0 ou +1. Mais, ceci ne suffit
pas pour que A soit TU.

-7-
On rencontre des classes de matrices TU assez fréquemment dans les cas où A est la matrice
d’incidence d’un graphe :
Soit G= S, U  un graphe à n sommets et m arcs, on lui associe une matrice D(G) à n lignes
(correspondant aux sommets s1 , s 2 ,..., s n ) et m colonnes (associées aux arcs u1 , u 2 ,..., u m ) :

D(G )  (d ij ) ij avec
 1 si le sommet s i est l ' extrémité ter min ale de u j

d ij   1 si le sommet s i est l ' extrémité initiale de u j
0
 sin on
Exemple 3.2:

On obtient facilement :
s2

 1 0 1
D(G )   1  1 0 

 0 1  1
s1 s3

Exemple 3.3 : le plus court chemin (graphe numérisé)

s2
3
5

s1 5 s4

1
2
s3

Les valuations des arcs sont les coûts de déplacement du sommet de départ vers le sommet
d’arrivée de l’arc. Le chemin le plus court de s1 vers s4 est défini comme le chemin dont la
somme des valuations des arcs parcourus est minimale. On peut le trouver à l’aide d’un
PLNE zéro-un de la façon suivante :
min 3 x12  x13  5 x 23  5 x 24  2 x 34
  x12 
 1 1 0 0 0    1 
  1 0   x13   0 
  1 1 0 x    
PLNE 
  0  1  1 0 1   23   0 
  x 24  
 0 0 0  1  1    1
  
 x 34 

 x ij  0 ,1
A est une matrice TU.

3.3. Listes d’adjacences


Pour un 1-graphe, l’avantage de la représentation par listes d’adjacence (grâce à  ), par
rapport à celle par matrice d’adjacence, est le gain obtenu en place mémoire, ce type de
représentation est donc mieux adapté pour implémentation. Le but est de représenter chaque
arc par son extrémité finale, son extrémité initiale étant définie implicitement.
Tous les arcs émanant d’un même sommet sont liés entre eux dans une liste :
On crée deux tableaux LP (tête de listes) de dimension (n+1) et LS (liste des successeurs) de
dimension m (cas orienté) ou 2m (cas non orienté).
Pour tout i, la liste des successeurs de i est dans le tableau LS à partir de la case LP(i).
1. on construit LS par  (1),  (2),…,  (n)
2. on construit LP qui donne pour tout sommet l’indice dans LS où commencent ses
successeurs.
L’ensemble des informations relatives au sommet i est contenu entre les cases LP(i) et
LP(i+1)-1 du tableau LS.
3. si un sommet i n’a pas de successeur, on pose LP(i)=LP(i+1) (liste vide coincée entre
les successeurs de i-1 et ceux de i+1
Pour éviter des tests pour le cas particulier i=n (le sommet i+1 n’existe pas), on « ferme » par
convention la dernière liste en posant LP(i+1)=m+1.

I Pointeur LP(i) LS(LP(i)) arc


1 1 2 1
2 3 3 2
3 5 1 3
n+1=4 5 3 4=m

Extremité finale
Place mémoire utilisée (n+1)+m

-9-
IV. COLORATION DES SOMMETS D’UN GRAPHE
Définition 4.1 :
Soit un graphe G= S, E  un graphe non orienté. Un sous-ensemble X  S est un ensemble
stable s’il ne comprend que des sommets non adjacents deux à deux :  i, j  X  (i, j )  E .

Comme tout sous-ensemble d’un ensemble stable est un ensemble stable, il est naturel de
chercher le cardinal maximum d’un ensemble stable. Ce nombre, noté  (G ) , est le nombre de
stabilité.
Définition 4.2 :
La coloration des sommets d’un graphe consiste en affectation de couleurs à tous les sommets
du graphe de telle sorte que deux sommets adjacents ne soient pas porteurs de la même
couleur.
Le nombre chromatique  (G ) est défini comme le nombre minimum de couleurs distinctes
nécessaires à la coloration des sommets de G.
Un graphe G tel que  (G )  k qui est colorable en k couleurs est dit k-chromatique. Une
k-coloration des sommets est une partition S1 , S 2 ,..., S k  de l’ensemble des sommets en k

ensembles stables.

Applications : De nombreux problèmes concrets, tels que certains problèmes d’horaire et


d’allocation de ressources, peuvent se ramener à la recherche d’une coloration minimale des
sommets d’un graphe.

4.2. Algorithme de coloration de Welsh et Powell


La détermination du nombre chromatique  (G ) d’un graphe G= S, E  , ainsi que l’obtention
d’une coloration minimale des sommets de G, constituent un problème assez complexe.
Certes, on peut procéder de la manière suivante :
 Enumérer tous les ensembles stable maximaux ;
 Déduire de ce recouvrement une partition S1 , S 2 ,..., S k  ;

Cependant, le nombre d’ensembles stables maximaux sera souvent trop important pour que
cette procédure soit effectivement applicable.
Il est dès lors utile, en pratique, de recourir à des algorithmes de coloration heuristique mais
simple, qui mènent à une coloration des sommets non nécessairement minimale. L’algorithme
de W&P présenté ci-dessous en est un exemple. Cet algorithme est défini ici à partir d’une
matrice d’adjacence A(G). L’expression « colorier le ligne i de la couleur c k » est substituée à

« attribuer xi la couleur c k ».

Ranger les sommets de S par


ordre de degrés décroissants :
Soit A la matrice d’adjacence
du graphe ainsi ordonné

k=1

N=A
A

Colorer par la couleur ck la


première ligne non encore
colorée dans N, ainsi que la
colonne correspondante

N= ensemble des lignes non


encore colorées ayant un zéro
dans les colonnes de couleur ck

Non
N= 

k=k+1, Non oui Stop, la coloration


Changer de Toutes les lignes obtenue est une
couleur sont colorées k-coloration

4.3. Bornes pour le nombre chromatique


Comme nous l’avons mentionné, cet algorithme ne conduit pas nécessairement à une
coloration minimale, de même d’ailleurs que beaucoup d’autres algorithmes proposés dans la
littérature. Le nombre chromatique étant généralement inconnu, il est impossible de comparer
directement le nombre k de couleurs résultant de l’application de l’algorithme à la valeur

- 11 -
optimale de  (G ) . A défaut d’une valeur exacte, des bornes inférieures   (G ) et supérieures

  (G ) peuvent cependant être établies pour  (G ) , aux quelles il peut être utile de comparer
k. Citons alors quelques bornes inférieures   (G ) :
n
  (G )  où d min est le degré minimum des sommets du graphe,
n  d min
n
  (G ) 
 (G )
n2
  (G ) 
n 2  2m
  (G )   (G ) où le cardinal de plus grand clique de G
(un clique de G est un sous-graphe complet de G).

Et les bornes supérieures   (G ) suivantes :


  (G )  n  1   (G ) ,
  (G )  d max  1 , où d max est le degré maximum des sommets du graphe.

Exemple :
Colorons les sommets du graphe G présenté ci-dessous :

La matrice d’adjacence de graphe ordonné


s7 est :

s1 s2 0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0

1 1 0 1 0 0 0 1
s6 s3  
0 0 1 0 1 0 0 1
A
0 1 0 1 0 1 0 0
 
1 0 0 0 1 0 0 0
1 1 0 0 0 0 0 0
 
s5 s4 s8 0 0 1 1 0 0 0 0

Et les degrés de chaque sommet sont les suivants :

si s1 s2 s3 s4 s5 s6 s7 s8
d(si) 4 4 4 3 3 2 2 2

Par application de l’algorithme, on obtient alors la 3-coloration suivant des sommets de G :

 La couleur c1 est attribuée à s1 et s 4


 La couleur c 2 est attribuée à s 2 , s 6 et s 4 ,
 La couleur c 3 est attribuée à s 3 , s 6 et s 7
Calculons les bornes inférieures et supérieures, pour le nombre chromatique :
 n n2 n 
 (G )  max  ,  (G ), 2 , 
 n  d min n  2m  (G ) 
4 8 8
 max  ,3, , 
 3 5 3
3
 (G )  min n  1   (G ), k ,d max  1
 min 6,3,5
3
On en déduit que  (G ) =3, la 3-coloration obtenu par l’algorithme de W&P constitue donc ici
une coloration minimale des sommets de G.
Remarques :
 On peut également se pencher sur le problème de la coloration des arêtes d’un graphe.
On a alors la définition de l’indice chromatique, duale de celle du nombre chromatique
pour le cas de la coloration des sommets d’un graphe. L’indice chromatique q(G) est
défini comme le nombre minimum de couleurs distinctes nécessaires à la coloration
des arêtes de G
 L’algorithme nécessite autant d’étape que le nombre k de couleurs qu’il associera aux
sommets de G.

V. CONNEXITE DANS UN GRAPHE


5.1. Chemins
Beaucoup de problèmes en théorie des graphes tournent autour de l’existence de chemins
pour rendre d’un sommet à un autre. Nous allons définir dans cette section, différents types de
chemins correspondant à différents types de solutions.
Définitions 5.1 :
Dans un graphe orienté G= S, U  , on appelle chemin de longueur q, une séquence
u , u
1 2 
,..., u q d’arcs de G telle que pour tout arc u i (i  q) l’extrémité terminale de

u i coïncide avec l’extrémité initiale de u i 1 .

Un chemin est dit simple s’il ne comporte pas deux fois le même arc.
Un chemin est dit élémentaire s’il ne passe pas deux fois par le même sommet.
Un chemin est dit eulérien s’il emprunte une et une seule fois chaque arc du graphe.
Un chemin est dit hamiltonien s’il emprunte une et une seule fois chaque sommet du graphe.
Un chemin dont le sommet initial coïncide avec le sommet terminal s’appelle un circuit.
Tous les qualificatifs relatifs aux chemins s’appliquent aussi aux circuits.

- 13 -
Remarque 5.1 :
 lorsqu’on travaille sur un graphe non orienté, on parle plutôt de chaîne au lieu de
chemin, et de cycle au lieu de circuit.
 Lorsqu’on travaille avec un 1-graphe, on peut également décrire un chemin à l’aide
d’une séquence de sommets. Dans ce cas, une telle description est équivalente à une
séquence d’arcs.
Exemple 5.1 :

s1 s2 s1 s4

s3 s4 s5
s2 s3

Figure 5.1a : Figure 5.1b :

Par rapport au graphe de la figure 5.1a, la séquence s1 , s 2 , s 5  est un chemin qui relie les

sommets s1 et s 5 . Ici, nous pouvons décrire ce chemin à l’aide d’une séquence de sommets

car nous avons affaires à 1-graphe. Ce chemin est à la fois simple et élémentaire. Par contre,
le chemin s1 , s 2 , s 2 , s 4 , s1  est simple mais non élémentaire, et il correspond à un circuit. Le

chemin s1 , s 4 , s1 , s 4  n’est pas un circuit et n’est ni simple, ni élémentaire. Finalement, le


chemin s1 , s 2 , s 4 , s1  est un circuit simple et élémentaire.

Par rapport au graphe de la figure 5.1b, la séquence [ u12 , u 21 , u11 , u13 , u 34 ] est un chemin qui

relie les sommets s1 et s 4 . Ce chemin est simple mais n’est pas élémentaire (il passe deux

fois par s1 ). Le chemin [ u13 , u 32 , u 21 ] est simple et élémentaire. Il correspond aussi à un

circuit. Le chemin [ u13 , u 32 , u 21 , u11 , u12 , u 21 ] est aussi un circuit simple non élémentaire.

5.2. Connexité
Définitions 5.2 :
Une chaîne est l’équivalent d’un chemin mais pour un graphe non orienté. Une chaîne de
 
longueur q est une séquence u1 , u 2 ,..., u q d’arcs (ou d’arêtes) telle que chaque arc u i de la

séquence possède une extrémité en commun avec l’arc précédent, et l’autre extrémité en
commun avec l’arc suivant.
Un graphe G= S, U  est dit (faiblement) connexe si et seulement si, pour toute paire de
 
sommets s i et s j , il existe une chaîne s i ,..., s j reliant ces deux sommets.

Un graphe G= S, U  est dit fortement connexe si et seulement si, pour toute paire de
 
sommets s i et s j , il existe un chemin s i ,..., s j reliant ces deux sommets.

Une composante connexe d’un graphe G= S, U  est définie comme une classe de la relation
d’équivalence ≡ dans SxS telle que : x≡y si et seulement si, x=y ou s’il existe une chaîne de x
à y. (i.e. : c’est un sous ensemble de sommets tels qu’il existe une chaîne entre deux sommets
quelconques.
Un graphe est connexe s’il comporte une composante connexe et une seule. Chaque
composante connexe est un graphe connexe.

Théorème 5.1 (théorème d’Euler)


Un multigraphe connexe possède une chaîne eulérienne si et seulement si, le nombre de
sommets de degré impair égale à 0 ou 2. Cette chaîne est un cycle si et seulement si, ce
nombre est 0 ; autrement dit, le chemin eulérien mène d’un des sommets de degré impair à
l’autre.

VI. AUTRES TYPES DE GRAPHES


Cette section présente d’autres types de graphes particuliers.

6.1. Graphe biparti


Définition 6.1 :
Un graphe biparti si l’ensemble des sommets peut être partitionné en deux classes S 1 et S2 de
sorte que deux sommets de la même classe ne soient jamais adjacents. Il est parfois noté
G= S 1 , S 2 , U  : S  S 1  S 2 et si u  ( s i , s j ), s i  S1  s j  S 2 , s i  S 2  s j  S1

Remarques :
 Un graphe biparti est 2-colorable.
 Un graphe biparti ne possède aucun cycle impair (i.e. à nombre impair d’arêtes).

Proposition 6.1 :
L’indice chromatique d’un graphe biparti est égal au maximum des degrés des sommets.

6.2. Couplage
Un couplage C d’un graphe G= S, U  est un sous-ensemble d’arêtes deux à deux sans
extrémité commune. Un sommet s  S est dit saturé dans un couplage C si s est l’extrémité

- 15 -
d’une des arêtes de C. un couplage est parfait si ses arêtes contiennent tous les sommets du
graphe (en d’autre termes, sature tous les sommets de S). un couplage parfait a un cardinal
maximal.
Application : un problème d’affectation désigne la recherche d’un couplage maximal dans
un graphe biparti.

6.3. Graphe planaire, Arbre, forêt, arborescence


 Un graphe planaire est un graphe qui peut être représenté sur un plan (ou une sphère)
tel que deux arcs (ou arêtes) ne se coupent pas. Tous les graphes de moins de 5
sommets sont planaires ainsi que les graphes bipartis de moins de 6 sommets. Pour les
autres, on connaît des algorithmes pour déterminer si un graphe est planaire.
Théorème 6.1 :
Tout graphe planaire est 4-chromatique
 Un arbre est un graphe non orienté simple, connexe, acyclique. Un arbre comprend
n-1 arêtes. L’addition d’une arête entre deux sommets crée un cycle et un seul.
 Forêt : c’est un graphe non orienté acyclique (pas forcement connexe). Chaque
composante connexe d’une forêt est un arbre.
 Arborescence : c’est un graphe orienté où chaque sommet possède un seul précédent
sauf un qui n’en a pas : la racine. s  S ,  un chemin unique de la racine à s. On
considère un nœud si d’arborescence T, de racine sr, un nœud sk quelconque sur le
chemin unique de sr vers si est appelé ancêtre de si ; si est un descendant de sk . si le
dernier arc sur le chemin de sr vers si est (sp, si), alors sp est le père de si , si est un fils
de sp . si deux nœuds ont le même père, ils sont frères. Un nœud sans fils est une
feuille. La longueur du chemin entre sr et si est la profondeur de si dans T. la plus
grande profondeur de T est la hauteur de T. Si chaque nœud a au maximum deux fils,
on parle d’arborescence binaire.
Exemple 6.2 :
s1

s2 s3
s5

s4 s6 s10 s8

s7 s12 s11

s9
Figure 6.1 : Arborescence

VII. PARCOURS D’UN GRAPHE


7.1. Chemins de longueur k, fermeture transitive
Considérons la matrice d’adjacence A(G) du graphe de la figure 7.1. en calculant
A 2 (G ), A 3 (G ),  , A k (G ) , l’élément a k ij de Ak (G ) est le nombre de chemins de longueur k

allant du sommet s i au sommet s j (se que l’on peut prouver par récurrence sur k) :

La matrice d’adjacence associée :

s2
0 1 1 0 1
0 1 1 0 0

s1 s3 A(G )  0 0 0 1 0
 
1 0 0 0 1
1 0 1 0 0
s5 s4

Figure 7.1 :

- 17 -
1 1 2 1 0 1 2 2 2 2 4 3 5 2 3
0 1 1 1 0 2

1 1 1 1 1   2 3 1 2

A 2 (G )  1 0 0 0 1 A3 (G )  1 1 2 0 1 A 4 (G )  1 2 3 2 1
     
1 1 2 0 1
1 2 3 2 1 3 3 4 3 3
0 1 1 1 1 2 2 3 4 2 3
1 2 1 1 
Dans un graphe de n sommets, les plus grands chemins élémentaires comportent, évidement,
s’il existent, n-1 arcs.
Dans le graphe de la figure 7.1 on a qu’un circuit hamiltonien s1 , s 2 , s 3 , s 4 , s 5 , s1  , alors
qu’on avait plusieurs chemins hamiltoniens.

on peut également calculer les puissances de A(G) en utilisant comme loi multiplicative le
produit logique, et comme loi additive la somme logique ; ainsi A ( k ) (G ) sera encore une
matrice booléenne.
Dans ces conditions, si a ( k ) ij  1 signifie qu’il existe au moins un chemin de longueur k entre
Le sommet s i et le sommet s j . Dans l’exemple choisi, on a le résultat suivant :
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
0 1 1 1 0 1

1 1 1 1 1  1 1 1 1

A ( 2 ) (G )  1 0 0 0 1 A (3) (G )  1 1 1 0 1 A ( 4 ) (G )  1 1 1 1 1
     
1 1 1 0 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1 1
1 1 1 1
0 0 1 0
s1 1 0 1 0
s3 A(G )  
0 1 0 1
 
0 0 0 0

s2 s4

Figure 7.2 :

7.1.1. composante fortement connexe

Considérons la relation binaire définie sur S par « il existe au moins un chemin de s i à s j et

au moins un chemin de s j à s i ». C’est donc une relation d’équivalence. Les classes

d’équivalences obtenues se nomment les composantes fortement connexes du graphe.


Remarque : Dans une composante fortement connexe cfc, il existe un chemin entre tout
couple de sommets de cfc.
Propriété 7.2 :
Un graphe est fortement connexe s’il comporte une seule cfc.

7.2. Arbre maximal de poids minimum


7.2.1. Graphe valué (numérisé)
Jusqu’à présent, les graphes avec lesquels nous avons travaillé ont toujours représenté un
ensemble de sommets et un ensemble d’arcs (arêtes). Dans cette section, nous considérons un
dernier type de graphe où nous associons une valeur à chacun de ces liens.
Définition 7.3 :

Un graphe valué G= S , E ,   est un graphe G= S, E  auquel on a associé une application


 : E   dite fonction de valuation, de l’ensemble des arêtes (arcs) dans un ensemble de
valeurs  .
Les valeurs associées aux arêtes peuvent représenter, selon le type de problèmes, soit des
poids, soit des coûts ou encore autres propriétés pertinentes.

Exemple 7.1 :
Un exemple de graphe valué où les sommets pourraient représenter des villes et les arêtes les
routes reliant ces villes. La valeur associée à chaque arête correspondrait alors à la distance
entre deux villes le long d’une route donnée :

25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6

Figure 7.3 :

Définitions 7.4 :
Soit G= S , E ,   un graphe valué. On définit le poids de G, comme somme des poids de
chacun de ses arêtes (arcs) :

- 19 -
    (a)
aE

Si G est connexe, on appelle arbre maximal (graphe partiel de G qui est un arbre) de poids
minimum, l’arbre maximal de G dont le poids est minimum.
Il existe plusieurs algorithmes pour trouver l’arbre maximal de poids minimum d’un graphe
valué. Nous en présentons un ici, l’algorithme dit de Kruskal.
7.3. Algorithme de Kruskal
soit G= S , E ,   un graphe connexe valué où S  n . Alors, l’algorithme suivant nécessite
exactement n-1 étapes pour produire un arbre maximal de poids minimum de G. à l’étape k,
on définit l’ensemble E k formé de k arêtes distinctes de G :
E k  a1 , a 2 ,..., a k 
La définition suivante de l’algorithme de Kruskal est inductive.

Etape k=1 : soit l’arête a1  E dont la valeur  ( a1 ) est minimum. On choisit alors E k  a1 

Etape k+1 : soit E k l’ensemble des arêtes obtenues à l’étape k. à l’étape k+1, il s’agit de

choisir l’arête a  E \ E k dont la valeur  (a) est minimum et qui n’engendre aucun cycle avec

les arêtes de E k . Alors a k 1  a et :

E k 1  a1 , a 2 ,..., a k , a k 1 

A la fin des n-1 étapes, le graphe G= S , E n 1 ,   est un arbre maximal de poids minimum.

Exemple 7.2 :
Appliquons l’algorithme de Kruskal sur l’exemple de la figure 7.3. la première étape consiste
à choisir l’arête dont le poids minimum. C’est l’arête s 6 , s 7  dont la valeur est 5 :

25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6

Figure 7.3a :

Ensuite, parmi les arêtes restantes, il s’agit d’en choisir une de poids minimum et qui
n’engendre aucun cycle. La deuxième arête s 6 , s 7  est de poids minimum mais engendre le
cycle s 6 , s 7 , s 6  ; on ne peut donc pas le choisir. Notre deuxième choix est donc l’arête

s1 , s 2  comme le montre le graphe suivant :


25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6

Figure 7.3b :

Ensuite on choisit l’arête s 2 , s 3  car c’est elle dont la valeur est maintenant minimum et elle

n’engendre aucun cycle. De même, on choisit par la suite l’arête s 5 , s 6  . On obtient le graphe

suivant :

25
s4
s1 11 12
s7
7 s3
8 28 16
s2 5 7
17
s5
9 s6

Figure 7.3c :

A cette étape, on voudrait maintenant choisir l’arête s1 , s 3  , mais celle-ci engendrerait le

cycle s1 , s 2 , s 3 , s1  . On choisit donc l’arête s 3 , s 4  . De même, l’arête de poids minimum

suivante est s 5 , s 7  . Cependant, cette arête engendrerait le cycle s 5 , s 6 , s 7 , s 5 . Elle doit

donc être rejetée. On choisit donc l’arête s 2 , s 5  qui nous donne le graphe suivant :

- 21 -
25
s4
s1 11 12
s7
7 s3
8 28 16
s2 17 5 7
s5
9 s6

Figure 7.3d :

A ce graphe, on ne peut plus ajouter aucune arête sans créer de cycle. En vertu de l’algorithme
de Kruskal, on peut donc affirmer que ce graphe (celui en trait plein) correspond à un arbre
maximal de poids minimum. La somme des valeurs des ses arêtes égale à
5+7+8+9+12+17=48

Vous aimerez peut-être aussi