
I/ Présentation des algorithmes
Dans cette parie, nous présenterons les algorithmes DFS (Direct First Search) et Kosaraju-Sharir.
1) Algorithme DFS
Détermination des composantes fortement connexes.
G = (X, U)
Voici ci-dessous l’algorithme DFS (Deep First Search) tel que donné en cours.
Explication des notations :
G : le graphe
k, f : des entiers
i : le sommet traité
n(i) : le nombre de successeurs du sommet i
d(i) : le degré du sommet i
num(i) : la numérotation du sommet i
prefixe(i) : la numérotation préfixe du sommet i
explore(G, i) : appel à la procédure explore prenant en paramètre le graphe G et le
sommet i
DFS (graphe G)
k 0
f 1
Pour i = 0 à n Faire n(i) d(i)
Pour i = 0 à n Faire num(i) 0
Pour i = 0 à n Faire
Si num(i) = 0 Alors
k k +1
num(i) k
prefixe(i) k
explore(G, i)
FinSi
FinPour
FinDFS
Voici ci-dessous l’algorithme de la procéure explore tel que donné en cours.
Explication des notations :
G : le graphe
i : le sommet traité
j : représente le n(i)ème sommet successeur de i
k, f : des entiers
n(i) : le nombre de successeurs du sommet i
num(i) : la numérotation du sommet i
prefixe(i) : la numérotation préfixe du sommet i
suffixe(i) : la numérotation suffixe du sommet i
explore(G, i) : appel à la procédure explore prenant en paramètre le graphe G et le