Chap 04
Chap 04
Chap 04
Chapitre 04:
La connexité dans un
graphe
2021-2022 1
Plan du cours
1 Introduction
4 Algorithmes de connexité
2
Introduction (1)
3
Introduction (2)
Graphe G
5
Chaîne et Cycle (1)
Chaîne:
Soit G = (S, A) un graphe,
Une chaîne C joignant deux sommets s0 et sk dans un graphe G est
une suite de sommets reliés par des arêtes tels que, deux sommets
successifs ont une arête commune.
On la note: C= (s0 , s1 , s2 , … , sk).
On dit que s0 et sk sont les extrémités de la chaîne.
On appelle k la longueur de la chaîne ( nombre d’arêtes qui la
composent)
Exemple:
Dans le graphe G, C = (x1, x3, x5, x2, x4) est une chaîne. 6
Chaîne et Cycle (2)
Cycle:
Soit G = (S, A) un graphe,
Un cycle est une chaîne simple dont les deux extrémités coïncident.
(s0 coïncide avec sk ), on le note: (x0, x1, x2, …, xk = x0)
Exemple:
Dans le graphe G:
La suite de sommets suivante (x1, x3, x5, x2, x1 ) est un cycle.
9
Chemin et Circuit (1)
Chemin:
Soit G = (S, A) un graphe,
Un chemin du sommets s0 et sk dans un graphe G est une séquence
de sommets reliés successivement par des arcs orienté dans le même
sens.
On le note: C= (s0 , s1 , s2 , … , sk).
Autrement dit: Deux sommets successifs d’un chemin sont
respectivement extrémité initiale et terminale du même arc.
Exemple:
Dans le graphe G,
C = (x1, x2, x4, x6) est un chemin. 10
Chemin et Circuit (2)
Circuit:
Soit G = (S, A) un graphe,
Un circuit est un chemin dont les deux extrémités coïncident.
(s0 coïncide avec sk ), on le note: (x0, x1, x2, …, xk = x0)
Exemple:
Dans le graphe G:
La suite de sommets suivante (x3, x2, x5) est un circuit.
12
La connexité (1)
Définition:
On définit la connexité dans un graphe G = ( S, A) par la relation R
entre deux sommets quelconque si et sj
Ce graphe a quatre
composantes connexes :
{1}, {2, 6}, {3, 5, 7}, et {4}.
14
La forte connexité (1)
Exemple:
16
Le parcours d’un graphe
20
Parcours en profondeur
23
Algorithmes de connexité
24
Recherche d’une composante
fortement connexe ( CFC)
L’idée de cet algorithme est de parcourir le graphe à partir du
point a dans le sens direct (en suivant les flèches des arcs) et de
créer un ensemble des nœuds parcourus. La même chose est
effectuée dans le sens indirect (en suivant les flèches des arcs en
sens inverse) et de créer un deuxième ensemble des sommets
parcourus.
Le premier ensemble S1 regroupe les nœuds accessibles à partir de
a et le deuxième ensemble S2 regroupe les nœuds qui peuvent
atteindre a.
L’intersection S` = S1 ∩ S2 est la CFC qui contient a.
25
Algorithme de recherche d’une CFC
Entrées: G = (S, A) un graphe, a un sommet.
Sortie: S` un sous-ensemble de sommets.
Début
S1 ← {a} ;
pour tout s S faire visité(s) ← faux;
tant que Ǝ s S1 | non visité(s) faire
visité(s) ← vrai;
pour tout ar = (x, y) A | y S1 faire
S1 ← S1 U {y};
fin tant que;
S2 ← {a} ;
pour tout s S1 faire visité(s) ← faux;
tant que Ǝ s S2 | non visité(s) faire
visité(s) ←vrai;
pour tout ar = (y, x) A | y S2 faire
S2 ← S2 U {y};
fin tant que;
S` ← S1 ∩ S2 ;
26
Fin
Algorithme de recherche d’une CFC
Exemple:
Qans le graphe suivant, déterminer la composante fortement
Connexe contenant le sommet A.
27
Recherche de toutes les
composante fortement connexe
Pour trouver toutes les composantes fortement connexes d’un
graphe, il suffit de choisir au hasard un nœud et de déterminer, grâce
à l’algorithme précédent, la composante fortement connexe qui le
contient.
On obtient alors une première composante fortement connexe S1.
Ensuite, parmi les nœuds qui ne font pas partie de S1, on en prend
un au hasard pour déterminer la composante fortement connexe qui le
contient.
On obtient alors une deuxième composante fortement connexe S2.
On recommence ainsi jusqu’à ce que tous les nœuds appartiennent
à une composante fortement connexe. 28
Algorithme
Exemple:
Qans le graphe suivant, déterminer toutes les composantes fortement
Connexes.
30