Vous êtes sur la page 1sur 12

Connexité

Algorithmes de décomposition d’un


graphe non fortement connexe en
sous graphes fortement connexes

2
Algorithme de Malgrange
-
A partir de la matrice sommet  sommet on construit (Xi) et  (Xi) en utilisant
deux vecteursV1 etV2 de longueur égale au nombre de sommets du graphe

1. On porte un zéro 0 dans la case deV1 correspondant au premier sommet X1


2. On met un 1 dans les cases de tous les éléments de (X1). On refait la même
procédure pour les sommets de valeurs 1, on obtient les successeurs d’ordre 2 du
sommet 1 (On met 2 dans les cases correspondantes). Et ainsi de suite jusqu’à
l’épuisement de tous les sommets marqués.
-
3. On procède de la même manière pour V2  (Xi) en travaillant avec les colonnes
(prédécesseurs).
-
L’intersection de  et  correspond à l’ensemble des éléments marqués deV1 etV2

On réapplique l’algorithme pour un autre sommetCX1 .

On ne marque les sommets déjà marqués.

3
Algorithme de marquage
 Données : Un multigraphe orienté G = (X,U).
 Résultat : Le nombre k de composantes fortement connexes de G ainsi que la
liste {C1, . . . ,Ck} de ses composantes fortement connexes.
(1) Initialisation : k = 0,W = X .
(2) Boucle principale :
Tant que W   , choisir un sommet x W et le marquer avec + et −.
(2.1) Marquer tous les successeurs directs et indirects de x avec +.
(2.2) Marquer tous les prédécesseurs directs et indirects de x avec −.
(2.3) Poser k = k + 1 et Ck égal à l’ensemble des sommets marqués + et −.
(2.4) Retirer deW les sommets de Ck et effacer toutes les marques.
(3) Le nombre de composantes fortement connexes de G est k.

Chaque ensemble Ci, i = 1 . . . , k, correspond aux sommets d’une composante


fortement connexe.

4
Nombre cyclomatique
 Soit G un multigraphe avec n sommets, m arêtes et p
composantes connexes.
Le nombre cyclomatique  G) de G est (G) = m − n + p.

 Théorème 1. Pour tout multigraphe G, on a (G)  0.


De plus, (G) = 0 si et seulement si G est sans cycle.

5
La fonction ordinale
Algorithme de détection de circuit dans
un graphe
 Soit G=(X, U)
 Enumérer pour chaque sommet ses successeurs
 On cherche une ligne vide (sommet sans successeurs). On barre le
numéro de cette ligne partout où il apparait dans le tableau
 On itère cette procédure jusqu’à ce qu’il n’y plus de ligne vide
 Si à la fin de la procédure, tous les nombres sont barrés, alors le
graphe est sans circuit, Sinon il en possède au moins un
Sommet x  (x)

7
Définition de la fonction ordinale
 Les sommets peuvent être répartis en niveaux comme suit :

N0 = {x  X / - (x) = }
N1 = {x  (X- N0) / - (x)  N0}
N2 = {x  (X- N0  N1) / - (x)  (N0  N1)}

Nk = {x  (X- Uk-1 Ni) / - (x)  Uk-1 Ni }

8
Algorithme de calcul de la fonction
ordinal d’un graphe sans circuit
1. Représenter la matrice booléenne du graphe (sommet - sommet)
2. Former une ligne L0 où chaque case i est la somme de la i ème
colonne de la matrice
3. Les 0 de L0 correspondent à tous les sommets de niveau N0
4. Enlever de la ligne L0 la somme des lignes correspondant aux
sommets de N0. On obtient donc la ligne L1 où les 0 de L0 ont
été remplacés par -1, les 0 qui apparaissent dans la ligne L1 donne
les sommets qui ont leurs prédécesseurs dans N0, il constitue la
classe N1.
5. Réitérer jusqu’à épuisement de tous les sommets.

9
Fonction de Grundy
Fonction de Grundy
Définition :
soit un gaphe G orienté;
g est une fonction de Grundy de G si g est une application de X
dans N telle que g(x) est le plus petit entier non attribué aux
successeurs de x g(y) y (x)

G:XN
Si (x) =  alors on pose g(x) = 0

De nombreux jeux sont résolus â l'aide de la notion de


fonction de Grundy.

11
Algorithme de calcul de la fonction de
Grundy pour un graphe sans circuit
 Dresser un tableau à colonnes
x y (x) g(y) g(x)

 Les deux premières colonnes étant remplies, on cherche les


sommets x tel que (x) = et on inscrit 0 dans la ligne
correspondante de g(x), puis on remplit les emplacements prévus
dans la troisième colonne, ce qui permet de déduire la valeur de
g(x) dans la quatrième colonne et ainsi de suite.

12

Vous aimerez peut-être aussi