Vous êtes sur la page 1sur 20

Chapitre 2

Propriétés et algorithmes de graphes

Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Connexité et forte connexité dans un graphe . . . . . . . . . . . . . . . 17
2.2.1 Connexité dans un graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2 Forte connexité dans un graphe . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Représentation matricielle d’un graphe . . . . . . . . . . . . . . . . . . 21
2.3.1 Matrice d’adjacence ou matrice d’incidence sommets-sommets . . . . . . . 21
2.3.2 Matrice d’incidence aux arcs ou matrice d’incidence sommets-arcs . . . . 22
2.4 Fermeture transitive d’un graphe . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Graphe sans circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Algorithme permettant de tester l’absence de circuit . . . . . . . . . . . . 26
2.5.2 Algorithme d’obtention des niveaux d’un graphe sans circuit . . . . . . . 26
2.6 Noyau d’un graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.1 Importance du concept de noyau . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2 Algorithme de recherche d’un noyau . . . . . . . . . . . . . . . . . . . . . 29
2.7 Cheminements Eulériens et Hamiltoniens . . . . . . . . . . . . . . . . . 30
2.7.1 Cheminements Eulériens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.2 Cheminement hamiltonien . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.8 Coloration de graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.8.1 Coloration des sommets d’un graphe - Nombre chromatique . . . . . . . . 32
2.8.2 Coloration des arêtes d’un graphe - Indice chromatique . . . . . . . . . . 33

16
2.1 Introduction 17

2.1 Introduction
2.2 Connexité et forte connexité dans un graphe
2.2.1 Connexité dans un graphe
Définition 2.2.1. Un graphe G = (X, U ) est dit connexe si pour tout couple de sommets xi , xj
de X tels que i ̸= j, il existe une chaı̂ne reliant ces deux sommets.

Remarque 2.2.1. Dans le cas où le graphe n’est pas connexe, on parlera de composantes connexes
du graphe en question.

Définition 2.2.2. • Un point d’articulation d’un graphe est un sommet dont la suppression aug-
mente le nombre de composantes connexes.
• Un isthme est une arête (un arc) dont la suppression augmente le nombre de composantes
connexes.

Exemple 2.2.1. Considérons le graphe suivant :

X Les sommets 2 et 3 sont des points d’articulations.


X L’arête [2, 3] est un isthme.

Algorithme de recherche des composantes connexes

Soit G = (X, U ) un graphe non connexe, l’algorithme suivant permet de déterminer les com-
posantes connexes de G. Le principe de cette méthode est qu’à chaque itération, on choisit un
sommet quelconque n’appartenant à aucune composante connexe déjà identifiée, on essaie par
une procédure de marquage de reconstituer les chaı̂nes reliant ce sommet aux autres sommets

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.2 Connexité et forte connexité dans un graphe 18

du graphe. Dans la procédure de marquage, un sommet est marqué s’il est voisin (successeur ou
prédécesseur) d’un sommet déjà marqué.
L’algorithme s’énonce comme suit :

Algorithm 1 Algorithme de recherche des composantes connexes


1: Étape 0 : Poser i = 1 ;
2: Étape 1 : Soit s un sommet quelconque de X, marquer s d’un + ;
3: Étape 2 : Appliquer la procédure de marquage décrite ci-dessus jusqu’ à ne plus marquer de
sommet ;
4: Étape 3 : L’ensemble Ci de tous les sommets marqués est la ie composante connexe de G.
Poser X = X \ Ci ;
5: Étape 4 : Tester si X = ∅ ;
6: Si oui, terminer.
7: Si non, poser i = i + 1 et aller à l’Étape 1 ;

Exemple 2.2.2. Soit le graphe suivant :

Déterminer les composantes connexes de ce graphe.


Il est clair que ce graphe n’est pas connexe, car il n’existe pas de chaı̂ne entre, par exemple, le
sommet 2 et le sommet 3. En appliquant l’algorithme précédent, on obtient :

Itération 1 : i = 1, on choisit s = 1, on marque d’un + ce sommet et on marque successive-


ment ses voisins 2 et 4. On détermine ainsi la première composante connexe C1 = {1, 2, 4}.
On pose X = X \ C1 ̸= ∅.
Itération 2 : i = 2, on prend s = 3, on marque d’un + ce sommet et on marque successive-
ment ses voisins 5 et 6. Ensuite, on marque les sommets 7 et 9 car ils sont voisins de 5 et 6 qui
sont déjà marqués. On détermine ainsi la deuxième composante connexe C2 = {3, 5, 6, 7, 9}.
On pose X = X \ C2 ̸= ∅.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.2 Connexité et forte connexité dans un graphe 19

Itération 3 : i = 3, on prend s = 8, on marque ce sommet et on marque son voisin 10. La


troisième composante connexe est C3 = {8, 10}. On pose X = X \ C3 = ∅. Terminer.
Ainsi, ce graphe non connexe possède 3 composantes connexes : C1 = {1, 2, 4}, C2 = {3, 5, 6, 7, 9}
et C3 = {8, 10}.

2.2.2 Forte connexité dans un graphe


Définition 2.2.3. Un graphe G = (X, U ) est dit fortement connexe, si pour tout couple de
sommets xi , xj de X, avec i ̸= j, il existe un chemin allant de xi vers xj et un autre chemin de xj
vers xi .

Remarque 2.2.2. • De même lorsque le graphe n’est pas fortement connexe on parlera de com-
posantes fortement connexes du graphe.
• Il passe par chaque couple de sommets d’une composante fortement connexe au moins un circuit.
• La contraction des composantes fortement connexes en sommets donne lieu à un graphe appelé
graphe réduit (il existe un arc entre deux composantes fortement connexes Ki et Kj si et seulement
si, il existe au moins un arc entre un sommet de Ki et un sommet de Kj dans le graphe G).

Algorithme de recherche des composantes fortement connexes

L’algorithme suivant permet de déterminer les composantes fortement connexes d’un graphe
connexe. Si celui-ci n’est pas connexe, on détermine par l’algorithme précédent ses composantes
connexes et on applique la méthode suivante pour chacune des composantes connexes du graphe.
Le principe de cette méthode s’apparente à celui de la méthode précédente à l’exception de la
procédure de marquage, une considération est donnée à l’orientation des arcs.
La procédure de marquage se décrit comme suit :
On commence par marqué un sommet quelconque s d’un signe + et d’un signe −. Si un sommet y
n’est pas marqué et il est successeur d’un sommet x déjà marqué d’un +, alors on le marque d’un
signe +. Si par contre, le sommet y est prédécesseur d’un sommet x déjà marqué d’un signe −,
alors on marque le sommet y d’un signe −.
Un sommet qui est marqué d’un signe + et d’un signe − signifie qu’il existe un chemin allant
du sommet s à ce sommet et inversement. En d’autre termes, il passe au moins un circuit entre le
sommet s et celui qui est marqué d’un + et d’un −.
L’algorithme s’énonce comme suit :

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.2 Connexité et forte connexité dans un graphe 20

Algorithm 2 Algorithme de recherche des composantes fortement connexes


1: Étape 0 : Poser i = 1 ;
2: Étape 1 : Soit s un sommet quelconque de X, marquer s d’un + et d’un − ;
3: Étape 2 : Appliquer la procédure de marquage décrite ci-dessus jusqu’à ne plus marquer de
sommet ;
4: Étape 3 : Soit Ki l’ensemble de tous les sommets marqués d’un + et d’un −. Ki est la ie
composante fortement connexe de G. Poser X = X \ Ki ;
5: Étape 4 : Tester si X = ∅ ;
6: Si oui, terminer.
7: Si non, poser i = i + 1 et aller à l’Étape 1 ;

Exemple 2.2.3. Soit le graphe suivant :

Déterminer les composantes fortement connexes de ce graphe et donner le graphe réduit qui
lui est associe.
Ce graphe est connexe, mais il n’est pas fortement connexe car il n’existe pas, par exemple, de
chemin du sommet 3 au sommet 1. En appliquant l’algorithme précédent, on obtient :
Itération 1 : i = 1, on choisit s = 4, on marque d’un + et d’un − ce sommet. En appliquant
la procédure de marquage décrite ci-dessus, les sommets qu’on peut marquer d’un + et d’un
− sont 2 et 3. Par contre les sommets 7, 5 et 6 ne peuvent être marqués que d’un + et le
sommet 1 d’un −. Ainsi, la première composante fortement connexe est K1 = {2, 3, 4}. On
pose X = X \ K1 ̸= ∅.
Itération 2 : i = 2, on prend s = 6, on marque ce sommet d’un + et d’un −, l’application
de la procédure de marquage permet de marquer d’un + et d’un − le sommet 5, d’un +
le sommet 7 et d’un − le sommet 1. D’où, la deuxième composante fortement connexe est
K2 = {5, 6}. On pose X = X \ K2 ̸= ∅.
Itération 3 : i = 3, on prend s = 7, on marque ce sommet d’un + et d’un −. Aucun autre
sommet n’est marqué d’un + et d’un −. La troisième composante fortement connexe est
K3 = {7}. On pose X = X \ K3 ̸= ∅.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.3 Représentation matricielle d’un graphe 21

Itération 4 : i = 4, on prend s = 1, on marque ce sommet d’un + et d’un −. La quatrième


composante fortement connexe est K4 = {1}. Terminer car X \ K4 = ∅.
Les composantes fortement connexes de ce graphe sont donc : K1 = {2, 3, 4} ; K2 = {5, 6} ;
K3 = {7} et K4 = {1}.
Le graphe réduit associe à ce graphe s’obtient en contractant ses composantes fortement
connexes et en gardant les arcs les reliant. Les sommets de ce graphe sont les composantes fortement
connexes.

Figure 2.1 – Exemple d’un graphe réduit.

2.3 Représentation matricielle d’un graphe


2.3.1 Matrice d’adjacence ou matrice d’incidence sommets-sommets
Soit G = (X, U ) un 1-graphe comportant éventuellement des boucles (pas plus d’une boucle par
sommet). L’ensemble des sommets X = {x1 , x2 , ..., xn } et l’ensemble des arcs U = {u1 , u2 , ..., um }.
i=1,n
Définition 2.3.1. La matrice d’adjacence associée au graphe G est la matrice M = (aij )j=1,n (de
type n × n) dont l’élément aij est donné comme suit :
{
1, si (xi , xj ) ∈ U ;
aij =
0, si non.

Exemple 2.3.1. Soit le graphe suivant

 
0 1 0 1
 1 0 0 0 
La matrice d’adjacence associée à ce graphe est M =
 1

0 0 1 
0 1 1 0

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.4 Fermeture transitive d’un graphe 22

Remarque 2.3.1. Dans le cas d’un graphe simple non orienté, on considère qu’à chaque arête
[i, j] correspond deux arcs (i, j), (j, i). Dans ce cas, la matrice d’adjacence est symétrique.

2.3.2 Matrice d’incidence aux arcs ou matrice d’incidence sommets-


arcs
Soit G = (X, U ) un graphe sans boucle dont l’ensemble des sommets X = {x1 , x2 , ..., xn } et
l’ensemble des arcs U = {u1 , u2 , ..., um }.

Définition 2.3.2. La matrice d’incidence aux arcs associée au graphe G est la matrice A =
i=1,n
(aij )j=1,m (de type n × m) dont l’élément de la ie ligne et la j e colonne est donné comme suit :

 1, si xi = I(uj ) ;
aij = −1, si xi = T (uj ) ;

0, si non.

Exemple 2.3.2. La matrice d’incidence aux arcs du graphe de l’Exemple 2.3.1 est :
 
−1 1 1 0 −1 0 0
 1 −1 0 −1 0 0 0 
A =
 0

0 0 0 1 1 −1 
0 0 −1 1 0 −1 1
Remarque 2.3.2. 1. Une matrice d’incidence aux arcs d’un graphe contient deux éléments
non nuls par colonne qui sont égales à 1 et −1.
2. A toute matrice ayant la propriété précédente, on peut faire correspondre un graphe dont
cette matrice est la matrice d’incidence aux arcs.
3. Le demi degré extérieur (resp. demi degré intérieur, degré) du sommet xi est égale au nombre
de 1 (resp. −1, de termes non nuls) de la ie ligne de la matrice d’incidence aux arcs de G.

2.4 Fermeture transitive d’un graphe


A tout graphe G = (X, U ), on peut associer de façon unique un graphe transitif Ĝ = (X, Û ),
appelé fermeture transitive de G, où Û est défini par la relation d’appartenance suivante :

(x, y) ∈ Û ⇔ il existe dans G un chemin de x vers y.

Schématiquement, on construit Û en “ajoutant” à U un arc (xi , xk ) (qui n’appartient pas à U ) si


(xi , xj ) ∈ U et (xj , xk ) ∈ U pour au moins un j, et ce de façon iterative jusqu’à l’obtention d’un
graphe G transitif.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.4 Fermeture transitive d’un graphe 23

Si on dénote par M la matrice d’adjacence associée au graphe G et par M̂ la matrice associée


à sa fermeture transitive, alors nous avons la relation suivante : M̂ = M ⊕ M 2 ⊕ ... ⊕ M n où M k
est la matrice d’adjacence d’un graphe représentant tous les chemins de longueur k. Dans cette
matrice si l’élément Mijk = 1, cela signifie qu’il existe un chemin de longueur k du sommet xi au
sommet xj . Cette matrice s’obtient en faisant la multiplication booléenne d’ordre k de la matrice
d’adjacence M . i.e. M k = |M ⊗ M {z
⊗ ... ⊗ M}.
k fois
On rappelle que les opérations d’addition ⊕ et de multiplication ⊗ booléennes sont définies
comme suit :
0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1, 1 ⊕ 1 = 1,
0 ⊗ 0 = 0, 0 ⊗ 1 = 0, 1 ⊗ 0 = 0, 1 ⊗ 1 = 1.
L’algorithme suivant permet d’obtenir la fermeture transitive d’un graphe.

Algorithm 3 Algorithme d’obtention de la fermeture transitive d’un graphe


1: Étape 0 : Déterminer la matrice d’adjacence M du graphe ;
2: Étape 1 : Poser M̂ = M, k = 2 ;
3: Étape 2 : Calculer M k ;
4: Étape 3 : Tester si M̂ = M̂ + M k ;
5: Si oui, terminer.
6: Si non, aller à l’Étape 4 ;
7: Étape 4 : Poser M̂ = M̂ + M k , k = k + 1 et aller à l’Étape 2 ;

Exemple 2.4.1. Chercher la fermeture transitive du graphe G suivant :

   
0 1 0 1 0 0 0 1 1 1
 0 0 1 1 0   0 0 0 0 1 
   
•M =
 0 0 0 0 1  Posons M̂ = M, k = 2, M 2 = 
  0 0 0 0 0 

 0 0 0 0 1   0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.5 Graphe sans circuits 24

 
0 1 1 1 1
 0 0 1 1 1 
 
M̂ + M 2 =
 0 0 0 0 1
, on a M̂ ̸= M̂ + M 2 ;

 0 0 0 0 1 
0 0 0 0 0
• Posons M̂ = M̂ + M 2 , on calcule M 3 ;
   
0 0 0 0 1 0 1 1 1 1
 0 0 0 0 0   0 0 1 1 1 
   
M 3 =
 0 0 0 0 0  M̂ + M 3 =
  0 0 0 0 1 

 0 0 0 0 0   0 0 0 0 1 
0 0 0 0 0 0 0 0 0 0

 
0 1 1 1 1
 0 0 1 1 1 
 
on a M̂ = M̂ + M 3 terminer d’où M̂ = 0 0 0 0 1  
 0 0 0 0 1 
0 0 0 0 0
Les “1” mis en gras et en rouge dans la matrice M̂ correspondent aux arcs à ajouter au graphe G
pour trouver sa fermeture transitive. Ainsi la fermeture transitive recherchée Ĝ est donnée par le
graphe suivant

Remarque 2.4.1. Un graphe G est transitif si et seulement si M̂ = M . Dans l’exemple précédent


M̂ ̸= M , d’où G n’est pas transitif.

2.5 Graphe sans circuits


Pour utiliser certains algorithmes, il est indispensable d’avoir un graphe sans circuit. Il est donc
important d’étudier des méthodes qui permettent de tester l’existence de circuit dans un graphe.
Par exemple, dans les systèmes d’exploitation, plusieurs processus (utilisateurs) partagent les
même ressources. Parfois, il existe des situations où un processus demande une ressource pour
laquelle il est prioritaire et en même temps il a besoin d’une autre ressource dont il ne l’est pas.
Dans la littérature, ce problème est dit problème d’interblocage. Ce problème revient à détecter
s’il existe des circuits dans le graphe des attentes.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.5 Graphe sans circuits 25

Pour illustrer cette situation, supposons que l’on dispose de 3 processus et de 3 ressources. Le
processus P1 utilise la ressource R1 et demande la ressource R2 qui est utilisée par P2 . Le processus
P2 détient R2 et demande R3 qui est détenue par P3 etc.

Il est donc important de disposer d’une méthode permettant de tester l’absence de circuits dans
un graphe donné. Nous en donnons deux ci-dessous.
a) On voit facilement qu’un graphe est sans circuit si et seulement si la matrice d’adjacence M̂
associée à sa fermeture transitive ne possède aucun 1 sur la diagonale. Cette caractérisation
fournit un premier algorithme de reconnaissance d’un graphe sans circuit.
b) Un second algorithme est présenté et repose sur la propriété suivante. Soit G = (X, U ) un
graphe à n sommets, construisons les n + 1 sous-ensembles de sommets X(i), i = 0, 1, 2, ..., n
où :
X(0) = {x : x ∈ X, Γ+ (x) = ∅} ;
X(1) = {x : x ∈ (X \ X(0)), Γ+ (x) ⊂ X(0)} ;
X(2) = {x : x ∈ (X \ (X(0) ∪ X(1))), Γ+ (x) ⊂ (X(0) ∪ X(1))} ;
..
.
X(n) = {x : x ∈ (X \(X(0)∪X(1)∪...∪X(n−1))), Γ+ (x) ⊂ (X(0)∪X(1)∪...∪X(n−1))}.
Ces n + 1 sous ensembles sont disjoints. Si G est sans circuit, ils constituent un re-
couvrement de X : X = X(0) ∪ X(1) ∪ ... ∪ X(n) ; De plus, X(i) = {x ∈ X :
le chemin de cardinalité maximale issu de x contient i arcs}, i = 1, 2, ..., n. Cette propriété n’est
pas d’application lorsque G possède un ou plusieurs circuits.

Exemple 2.5.1. Considérons le graphe suivant :

On vérifie que le graphe est sans circuit et on trouve X(0) = {5}, X(1) = {3, 4}, X(2) =
{2}, X(3) = {1}, X(4) = X(5) = ∅.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.5 Graphe sans circuits 26

2.5.1 Algorithme permettant de tester l’absence de circuit

Algorithm 4 Algorithme permettant de tester l’absence de circuit


1: Étape 0 : Déterminer la matrice d’adjacence M du graphe ;
2: Étape 1 : Poser M ∗ = M ;
3: Étape 2 : Tester s’il existe dans M ∗ une ligne i qui ne contient que des zéros ;
4: Si oui aller à l’Étape 3 ;
5: Si non : terminer, le graphe contient au moins un circuit.
6: Étape 3 : Supprimer dans M ∗ la ligne et la colonne i, soit M ∗∗ la matrice obtenue. Poser
M ∗ = M ∗∗ et aller à l’Étape 4 ;
7: Étape 4 : Tester si M ∗ ne contient que des zéros ;
8: Si oui : terminer, le graphe est sans circuit.
9: Si non aller à l’Étape 2 ;

Exemple 2.5.2. Appliquer l’algorithme précédent au graphe de l’Exemple 2.5.1. La matrice d’ad-
jacence associée à ce graphe est  
0 1 0 1 0
 0 0 1 1 0 
 
M =
 0 0 0 0 1 

 0 0 0 0 1 
0 0 0 0 0
En appliquant cet algorithme, on barre la ligne et la colonne 5, ensuite les lignes et les colonnes
3 et 4, puis la ligne et la colonne 2, on obtient enfin une matrice ne contenant que des zéros. Il
s’ensuit que ce graphe est sans circuit.

2.5.2 Algorithme d’obtention des niveaux d’un graphe sans circuit


Les niveaux d’un graphe sans circuit sont, par définition, les n + 1 sous ensembles de sommets
X(i), i = 0, 1, 2, ..., n introduits précédemment.
Rappelons qu’un sommet appartient à X(i) si le chemin de cardinalité maximale issu de ce
sommet contient i arcs. Soulignons de plus que ces niveaux forment une partition de X, et que tout
sommet du niveau X(i) n’admet aucun successeur dans les niveaux X(j), j ≥ i (en particulier il
n’y a donc pas d’arcs entre deux sommets d’un même niveau).
Le partage en niveaux d’un graphe est utilisé dans des domaines divers. En particulier, il permet
de simplifier considérablement la recherche des chemins de longueur minimale ou maximale entre
deux sommets.
L’algorithme suivant, de justification intuitive, permet de construire les niveaux d’un graphe
sans circuit.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.5 Graphe sans circuits 27

Algorithm 5 Algorithme d’obtention des niveaux d’un graphe sans circuit


1: Étape 0 : Déterminer la matrice d’adjacence M du graphe ;
2: Étape 1 : Poser i = 0 ;
3: Étape 2 : X(i) = {Sommets correspondant aux lignes non marquées ne contenant
que des 1 barrés ou des zéros} ;
4: Étape 3 : Tester si X(i) = ∅ ;
5: Si oui, terminer.
6: Si non, marquer les lignes de X(i) et barrer les colonnes correspondantes. Poser i = i + 1 et
aller à l’Étape 2 ;

Exemple 2.5.3. Appliquer l’algorithme précédent pour le graphe de l’Exemple 2.5.1.


Nous avons déjà vu dans l’Exemple 2.5.2 que le graphe est sans circuit. En appliquant l’algorithme
ci-dessus, nous obtenons l’ordre dans lequel les lignes ont été marquées et les colonnes barrées est
indiqué entre parenthèses.  
0 1 0 1 0 (3)
 0 0 1 1 0  (2)
 
M =
 0 0 0 0 1 
 (1)
 0 0 0 0 1  (1)
0 0 0 0 0 (0)

(3) (2) (1) (1) (0)


Ainsi, on obtient X(0) = {5}, X(1) = {3, 4}, X(2) = {2} et X(3) = {1}.
Le graphe peut être alors représenté sous la forme suivante (quatre niveaux) :

Remarque 2.5.1. La partition en niveaux d’un graphe est dite aussi mise en ordre.

Remarque 2.5.2. Si un graphe possède au moins un circuit, on peut en construire un en utilisant


un algorithme approprié ou la table des successeurs.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.6 Noyau d’un graphe 28

2.6 Noyau d’un graphe


Définition 2.6.1. Soit G = (X, U ) un graphe simple (sans boucle) de matrice d’adjacence M . Un
sous ensemble N de sommets est un noyau s’il satisfait aux deux conditions suivantes :
1. ∀ x ∈ X \ N, ∃ y ∈ N tel que (x, y) ∈ U . (Un ensemble N vérifiant cette propriété est dit
absorbant).
2. ∀ x, y ∈ N, (x, y) et (y, x) ̸∈ U . (Un ensemble N vérifiant cette propriété est dit stable).

Remarque 2.6.1. Un graphe peut ne pas avoir de noyau comme il peut avoir un ou plusieurs.

Exemple 2.6.1. Les trois graphes ci-dessous admettent respectivement 0, 1 et 2 noyaux.

(a) N = ∅. (b) N = {2, 4}. (c) N1 = {1, 3},


N2 = {2, 4}

2.6.1 Importance du concept de noyau


Le concept de noyau est important en théorie des graphes, tant d’un point de vue pratique que
théorique. Certains problèmes de décision, en particulier, peuvent, dans certains cas, être traités
à l’aide d’un noyau d’un graphe associé.

Exemple 2.6.2. Un gouvernement, ayant décidé de répartir trois milliards de dinars en vue de
diminuer la mortalité sur les routes, propose cinq initiatives.

1. Augmentation du nombre de gendarmes ;


2. Construction d’autoroutes ;
3. Mise en place des signaux lumineux à tous les carrefours ;
4. Récompenses aux meilleurs conducteurs ;
5. Gratuité des transports publics.

Il charge un groupe de recueillir les préférences des citoyens et ce groupe parvient à établir le
graphe suivant dont les cinq sommets représentent les cinq initiatives, où un arc (xi , xj ) est tracé
s’il est certain que la population préfère l’initiative xj à l’initiative xi (on dit aussi que l’initiative
xj surclasse l’initiative xi ).

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.6 Noyau d’un graphe 29

En choisissant les initiatives 2 et 5 qui constituent le noyau du graphe, le centre de décision


peut d’une part justifier le rejet des initiatives 1, 3 et 4 et d’autre part pourquoi il ne peut pas
trancher entre les initiatives 2 et 5. (Décidant par exemple de leur consacrer 1, 5 milliard de dinars
chacune).
Théorème 2.6.1. Un 1-graphe sans boucle symétrique possède au moins un noyau.
Théorème 2.6.2. Un 1-graphe sans circuit possède un et un seul noyau.

2.6.2 Algorithme de recherche d’un noyau


Soit G un 1-graphe sans circuit et M sa matrice d’adjacence. L’algorithme suivant permet de
déterminer l’unique noyau de ce graphe.

Algorithm 6 Algorithme de recherche d’un noyau


1: Étape 1 : Choisir une ligne ne contenant que des zéros ;
2: Étape 2 : Marquer cette ligne d’une croix et entourer la colonne correspondante à cette ligne.
Barrer les lignes ayant un 1 dans la colonne entourée. Barrer les colonnes correspondantes ;
3: Étape 3 : Tester s’il existe une ligne non marquée et non barrée ne contenant que des 1 barrés
ou des zéros ;
4: Si oui, aller à l’Étape 4 ;
5: Si non, Noyau={sommets marqués} terminer.
6: Étape 4 : Choisir une ligne non marquée et non barrée ne comprenant que des 1 barrés ou
des zéros, aller à l’Étape 2 ;

Exemple 2.6.3. Utiliser l’algorithme précédent pour déterminer le noyau du graphe suivant :

 
0 1 1 0 0
 0 0 0 0 0 
 
La matrice d’adjacence du graphe est M =
 0 0 0 1 0 

 0 1 0 0 0 
0 1 0 1 0

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.7 Cheminements Eulériens et Hamiltoniens 30

Itération 1 : On marque la ligne 2 d’une croix et on encadre la colonne 2. On barre les


lignes 1, 4 et 5 car la colonne 2 contient des 1 à la 1e , 4e et 5e ligne. On barre aussi la 1re ,
4e et 5e colonne.
Itération 2 : On marque la ligne 3 d’une croix car cette ligne n’est pas barrée et ne possède
que des 1 barrées ou des zéros. Toutes les lignes sont soit marquées soit barrées, terminer.
Le sous-ensemble N = {2, 3} est le noyau de ce graphe.

2.7 Cheminements Eulériens et Hamiltoniens


2.7.1 Cheminements Eulériens
Définition 2.7.1. • Une chaı̂ne simple joignant les sommets a et b d’un graphe orienté (resp.
d’un graphe non orienté) de G est eulérienne si elle utilise tous les arcs (resp. arêtes) de G
une et une seule fois.
• Un cycle d’un graphe orienté (resp. non orienté) G est eulérien s’il inclut tous les arcs (resp.
arêtes) de G.

Remarque 2.7.1. Un graphe est eulérien s’il admet un cycle eulérien.

Exemple 2.7.1. Le problème de l’existence et la détermination d’un cycle eulérien dans un graphe
non orienté a été posé pour la première fois et résolu par Euler en 1736 à propos du célèbre problème
des ponts de Königsberg (aujourd’hui Kalimingrad) cette ville est traversée par deux rivières et
comporte une ı̂le.

B
1 3 6

5
A D

2 7
4
C

Le problème est alors, un piéton pourrait il, en se promenant, traverser chaque pont une et une
seule fois tout en revenant au point de départ.

Théorème 2.7.1. Une condition nécessaire et suffisante pour qu’un graphe G = (X, U ) soit
eulérien est qu’il soit connexe (à des sommets isolées près) et que tous ses sommets soient de
degré pair (∀ x ∈ X, dG (x) ≡ 0[2]).

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.7 Cheminements Eulériens et Hamiltoniens 31

Exemple 2.7.2. Reprenons le problème des 7 ponts de la ville de Königsberg. Ce problème peut
être formulé sous forme de graphe. Les parties de la ville seront représentées par des sommets et
les ponts par des arêtes. Le problème donc consiste à montrer l’existence d’un cycle eulérien (i.e.
le graphe est-il eulérien).

C’est un graphe connexe d(B) = d(C) = d(D) = 3, d(A) = 5. Aucun sommet n’est de degré
pair, donc G n’est pas eulérien.

2.7.2 Cheminement hamiltonien


Définition 2.7.2. On appelle chemin hamiltonien (resp. chaı̂ne hamiltonienne) un chemin (resp.
une chaı̂ne), joignant deux sommets d’un graphe G = (X, U ), passant une et une seule fois par
chacun des sommets de G.

Remarque 2.7.2. Un chemin hamiltonien (resp. une chaı̂ne hamiltonienne) est donc élémentaire
et de longueur n − 1 où n = |X|.

Définition 2.7.3. Un circuit hamiltonien (resp. cycle hamiltonien) est un circuit (resp. cycle) qui
passe une fois et une seule fois par chacun des sommets de G.

Remarque 2.7.3. Un circuit (resp. cycle) hamiltonien est élémentaire de longueur n (|X| = n).

Définition 2.7.4. Un graphe G = (X, U ) est hamiltonien s’il contient un cycle hamiltonien.

Remarque 2.7.4. La notion de cycle hamiltonien a été introduite dans un jeu inventé par Ha-
milton en 1859. Il s’agit de faire un voyage autour du monde en passant par 20 villes (une seule et
une seule fois) reparties selon le graphe suivant :

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.8 Coloration de graphes 32

Figure 2.2 – Parcours fermé autour du monde (dodécaèdre) de W. Hamilton.

Proposition 2.7.1. Le graphe simple complet d’ordre n, Kn , est hamiltonien.

2.8 Coloration de graphes


La coloration de graphes, qui est un problème central de l’optimisation combinatoire, est un do-
maine très attractif par ses nombreuses applications. La coloration de graphes permet de modéliser
de nombreux problèmes réels tels que le partage des ressources, l’allocation de fréquences, la dif-
fusion dans les réseaux, le transfert de fichiers, etc.
Un graphe peut être coloré de différentes manières et cela en fonction de ses éléments qu’on
décide de colorer. Ainsi, pour un graphe donné, nous pouvons colorer : les sommets, les arêtes, les
faces, une combinaison de ces éléments, des sous-structures, etc.
Dans cette partie, nous présentons les colorations basiques à savoir la coloration de sommets
et la coloration d’arêtes, tout en donnant certaines de leurs propriétés.

2.8.1 Coloration des sommets d’un graphe - Nombre chromatique


Dans cette sous section, nous étudions la coloration des sommets d’un graphe et le paramètre
associé nombre chromatique.

Définition 2.8.1 (Berge 1973). • Une coloration des sommets d’un graphe G = (X, U ) est
une fonction qui attribue une couleur à chaque sommet de sorte que deux sommets adjacents
aient des couleurs différentes.
• Le nombre minimum de couleurs d’une coloration des sommets de G est appelé nombre
chromatique de G, qui est noté par γ(G).
• Un graphe G avec γ(G) ≤ k, qui est coloriable en k couleurs est (parfois) appelé k-
chromatique.

Définition 2.8.2. Soit G = (X, U ) un graphe. Un sous ensemble de sommets de X est un ensemble
stable, s’il ne comprend que des sommets non adjacents deux à deux. On appelle nombre de stabilité
α(G) le cardinal maximum d’un sous ensemble stable.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.8 Coloration de graphes 33

Remarque 2.8.1. Une k-coloration des sommets d’un graphe G = (X, U ) est une partition de
l’ensemble des sommets X en k ensembles stables (chaque stable représente les sommets d’une
même couleur).

Maintenant, nous donnons des bornes inférieures et des bornes supérieures pour le nombre
chromatique γ(G).

Propriété 2.8.1. Soit G = (X, U ) un graphe. On a :


|X|
(i) γ(G) ≥ α(G)
.
(ii) γ(G) ≥ ω(G), où ω(G) est l’ordre de la plus grande clique de G (sous graphe simple
complet).
(iii) γ(G) ≤ ∆(G), sauf si G est un graphe complet ou un cycle de longueur impaire, avec
∆(G) est le degré maximum de G [Brooks 1941].
(iv) γ(G) ≤ ∆(G)+1+ω(G)
2
[Reed 1997]. Cette borne est un raffinement de celle donnée en (iii).

Preuve.

(i) Dans une coloration d’un graphe, chaque sous ensemble de sommets de même couleur a un
cardinal inférieur ou égal à α(G). Ainsi, α(G)γ(G) ≥ |X|, d’où le résultat.
(ii) Le nombre chromatique d’un graphe est supérieur ou égale à celui de n’importe quel de
ses sous graphes (on a γ(Kn ) = n).

Exemple 2.8.1 (Bondy et Murty 2008). (Stockage de produits chimiques) Une entreprise fabrique
n produits chimiques C1 , C2 , ..., Cn . Certaines paires de ces produits chimiques sont incompatibles
et peuvent provoquer des explosions en cas de contact les uns avec les autres. Par mesure de
précaution, l’entreprise souhaite diviser son entrepôt en compartiments, et stocker les produits
chimiques incompatibles dans différents compartiments. Quel est le plus petit nombre de compar-
timents dans lesquels l’entrepôt doit être partagé ?
On obtient un graphe G ayant un ensemble de sommets X = {v1 , v2 , ..., vn } avec deux sommets
vi et vj sont adjacents si et seulement si les produits chimiques Ci et Cj sont incompatibles. Il est
facile de voir que le plus petit nombre de compartiments en lesquels l’entrepôt doit être partitionné
est égal au nombre chromatique γ(G).

2.8.2 Coloration des arêtes d’un graphe - Indice chromatique


Dans cette sous section, nous étudions la coloration des arêtes d’un graphe et le paramètre
associé indice chromatique.

Définition 2.8.3 (Berge 1973). Soit G = (X, U ) un graphe sans boucle. On appelle indice chro-
matique q(G) de G le plus petit entier q qui a la propriété suivante : il est possible avec q couleurs
de colorier les arêtes de G de sorte que deux arêtes adjacentes ne soient pas de la même couleur.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.8 Coloration de graphes 34

Définition 2.8.4. Soit G = (X, U ) un graphe simple. Un sous ensemble d’arêtes de U est un
couplage, s’il ne comprend que des arêtes non adjacentes deux à deux.

L’un des problèmes qui est étudié consiste à trouver un couplage maximum d’un graphe.

Remarque 2.8.2. • Une coloration des arêtes est une partition de l’ensemble des arêtes en
classes qui sont des couplages.
• Une coloration des arêtes d’un graphe G est exactement une coloration des sommets de son
graphe adjoint A(G) (appelé aussi line-graph). Étant donné un graphe G, son graphe adjoint
A(G) est le graphe défini de la façon suivante : Chaque sommet de A(G) représente une arête
de G ; Deux sommets de A(G) sont adjacents si et seulement si les arêtes correspondantes
sont adjacentes dans G.

Pour tout graphe G, on a ∆(G) ≤ q(G). Vizing en 1964 a démontré une borne supérieure pour
l’indice chromatique d’un graphe et, ainsi, il a obtenu un résultat qui cadre l’indice chromatique
avec des bornes distancées d’une unité. Ce résultat est considéré comme principal dans le domaine
de la coloration des arêtes.

Théorème 2.8.1 (Vizing 1964). Soit G un graphe simple, alors

∆(G) ≤ q(G) ≤ ∆(G) + 1.

Par conséquent, tout graphe peut être classé dans l’une des classes 1 ou 2 définies comme suit.

Définition 2.8.5 (Vizing 1964). Un graphe simple G est de classe 1 si q(G) = ∆(G) et il est de
classe 2 si q(G) = ∆(G) + 1.

Nous avons quelques résultats sur l’indice chromatique de certaines classes de graphes [Berge
1973].

Théorème 2.8.2. (i) L’indice chromatique d’un graphe simple complet G = Kn est
{
∆(G) = n − 1, si n est pair,
q(G) =
∆(G) + 1 = n, si n est impair.

(ii) L’indice chromatique d’un graphe biparti G = (X1 , X2 , U ) est

q(G) = ∆(G).

Exemple 2.8.2 (Chartrand et Zhang 2009). Un tournoi de tennis de charité constitué entièrement
de matchs à deux contre deux est organisé. Cinq joueurs de tennis, désignés par A, B, C, D, E, ont
accepté de participer. Chaque paire {W, X} des joueurs de tennis jouera un match contre toute
autre paire {Y, Z} des joueurs de tennis, avec {W, X} ∩ {Y, Z} = ∅, mais aucune équipe de
2 personnes ne peut jouer deux matches le même jour. Quel est le nombre minimum de jours

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie
2.8 Coloration de graphes 35

nécessaires pour planifier un tel tournoi ? Donner un exemple d’un tel tournoi en utilisant un
nombre minimum de jours.
Solution. Nous construisons un graphe G dont l’ensemble des sommets est l’ensemble des équipes
possibles (i.e. l’ensemble des parties de 2 éléments de {A, B, C, D, E}). Ainsi, l’ordre de G est
C25 = 10. Deux sommets {W, X} et {Y, Z} sont adjacents si ces ensembles sont disjoints (i.e. les
équipes correspondantes peuvent organiser un match entre elles). Le graphe G est représenté sur
la Figure 2.3. Ainsi G est le graphe de Petersen. Pour répondre à la question, nous déterminons
l’indice chromatique de G. Comme le graphe de Petersen est connu pour être de la classe deux, il
s’ensuit que q(G) = ∆(G) + 1 = 4. Une 4-coloration des arêtes de G est donnée dans la Figure 2.3
avec un possible calendrier des matchs de tennis sur une période de quatre jours.

Figure 2.3 – Graphe de Petersen avec une 4-coloration des arêtes

Une planification d’un tel tournoi est donnée comme suit :


X Jour 1 : AB − CE, AC − BD, AE − BC, AD − BE ;
X Jour 2 : AB − CD, AC − BE, AE − BD, BC − DE ;
X Jour 3 : AB − DE, AD − BC, AE − CD, BD − CE ;
X Jour 4 : AC − DE, AD − CE, BE − CD.

“Théorie des Graphes” par Pr H. SLIMANI


Département d’Informatique, Université de Béjaia, Algérie

Vous aimerez peut-être aussi