0% ont trouvé ce document utile (0 vote)
32 vues6 pages

Chapitre 2

Le document traite des concepts fondamentaux de la théorie des graphes, notamment les chaînes, chemins, cycles, circuits, et connexité. Il présente des définitions, des propositions et des algorithmes pour déterminer la connexité et les composantes fortement connexes dans les graphes. De plus, il aborde la matrice de fermeture transitive et l'algorithme de Warshall pour le calcul des chemins dans les graphes orientés.

Transféré par

lyna.fer04
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues6 pages

Chapitre 2

Le document traite des concepts fondamentaux de la théorie des graphes, notamment les chaînes, chemins, cycles, circuits, et connexité. Il présente des définitions, des propositions et des algorithmes pour déterminer la connexité et les composantes fortement connexes dans les graphes. De plus, il aborde la matrice de fermeture transitive et l'algorithme de Warshall pour le calcul des chemins dans les graphes orientés.

Transféré par

lyna.fer04
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

U.S.T.H.B.

L3 Informatique Académique (S5) Année Universitaire 2013/2014


Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

Cheminement dans les Graphes

1. Chaînes / Chemins
1.1 Chaîne
On appelle chaîne dans un graphe non orienté (resp. orienté) G=(X, E) (resp. G=(X, U) ), une suite alternée de
sommets et d’arêtes (resp. d’arcs) :
 = x 0 e1 x1 … x k-1 ek xk (resp.  = x 0 u 1 x1 … x k-1 u k xk )
Tel que pour i de 1 à k, x i-1 et x i sont extrémités de l’arête e i (resp. de l’arc u i ).
On dit que  est une chaîne joignant les sommets x 0 et x k de longueur k.
1.2 Chemin
On appelle chemin dans un graphe orienté G=(X, U), une suite alternée de sommets et d’arcs :
 = x 0 u 1 x1 … x k-1 u k xk
Tel que pour i de 1 à k, le sommet xi-1 est extrémité initiale de l’arc ui et le sommet xi est son extrémité terminale.
On dit que  est un chemin de x 0 vers x k de longueur k.
1.3 Chaîne / Chemin simple
On dit qu’un chemin ou une chaîne est simple si tous les arcs ou les arêtes les composants sont distincts.
1.4 Chaîne / Chemin élémentaire
On dit qu’un chemin ou une chaîne est élémentaire si tous les sommets les composants sont distincts.
1.5 Remarques
 La longueur d’une chaîne ou d’un chemin est égale au nombre d’arêtes ou arcs formant cette chaîne ou ce chemin.
 S’il existe dans un graphe un chemin d’un sommet x vers un sommet y, on notera : x  y.
 Toute chaîne (ou chemin) élémentaire est aussi simple. L’inverse n’est pas toujours vrai.
 Dans un graphe simple, une chaîne ou un chemin peuvent être déterminés juste en énumérant la suite des
sommets qui les composent.
1.6 Proposition
Soit G=(X, E) un graphe non orienté. De toute chaîne joignant deux sommets x et y  X, on peut extraire une
chaîne élémentaire joignant x et y.
Soit G=(X, U) un graphe orienté. De tout chemin allant du sommet x  X vers le sommet y  X, on peut extraire
un chemin élémentaire allant de x à y.

2. Cycles / Circuits
2.1 Chaîne fermée / Chemin fermé
Un chemin (resp. chaîne) dont les extrémités sont confondues est dit chemin fermé (resp. chaîne fermée).
2.2 Cycle
On appelle cycle dans un graphe non orienté (resp. orienté) G=(X, E) (resp. G=(X, U) ), toute chaîne fermée simple :
 = x 0 e1 x1 … x k-1 ek xk (resp.  = x 0 u 1 x1 … x k-1 u k xk ) Tel que k > 0, et x 0 = x k .
On dit que  est un cycle longueur k.
2.3 Représentation vectorielle d’un cycle
Soit G=(X, U) un graphe avec |U| = m. On définit un sens de parcours de G.

Le vecteur  de m éléments permet de représenter un cycle  comme suit : chaque élément du vecteur  i
correspond à un arc u i  U

Page 1/6
U.S.T.H.B. L3 Informatique Académique (S5) Année Universitaire 2013/2014
Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

 1 si ui fait partie du cycle dans le sens du parcours


i 1 si ui fait partie du cycle dans le sens inverse du parcours
 0 si ui  

2.4 Circuit
On appelle circuit dans un graphe orienté G=(X, U), tout chemin fermé simple :
 = x 0 u 1 x1 … x k-1 u k xk Tel que k > 0, et x 0 = x k .
On dit que  est un circuit de longueur k.
2.5 Cycle / Circuit élémentaire
On dit qu’un cycle ou circuit est élémentaire si tous les sommets qui les composent sont distincts.
2.6 Remarques
 La longueur d’un cycle ou d’un circuit élémentaire est aussi égale au nombre de sommets formant ce cycle ou circuit.
 Dans un graphe simple, un cycle ou un circuit peuvent être déterminés juste en énumérant la suite des sommets
qui les composent.
 Une boucle est un cycle élémentaire de longueur 1.
 Une boucle dans un graphe orienté est un circuit de longueur 1.
 Tout cycle est aussi chaîne. Tout circuit est aussi chemin. Tout circuit est aussi cycle. Tout chemin est aussi
chaîne.
2.7 Proposition
Soit G=(X, E) un graphe non orienté. De tout cycle passant par une arête e  E, on peut extraire un cycle
élémentaire passant par e.
Soit G=(X, U) un graphe orienté. De tout circuit passant par un arc u  U, on peut extraire un circuit élémentaire
passant par u.
2.8 Existence d’un cycle
Si G est un graphe vérifiant  (G)  k  2 Alors G contient un cycle.
Si de plus G est simple alors G admet un cycle élémentaire de longueur  k+1 et une chaine élémentaire de
longueur  k.
Conséquence : Si m  n (m étant le nombre d’arcs ou arêtes et n le nombre de sommets dans G) alors G admet un
cycle.
2.9 Existence d’un circuit
Si G est un graphe vérifiant + (G)  k  1 (resp.  - (G)  k  1) Alors G contient un circuit.
Si de plus G est simple alors G admet un circuit élémentaire de longueur  k+1 et un chemin élémentaire de
longueur  k.

3. Matrice de fermeture transitive


Soit G=(X, U) un 1-graphe orienté d’ordre n. A partir de sa matrice d’adjacence M, on peut calculer la matrice de
 1 si ij
fermeture transitive de G qu’on note M où chaque élément mˆij

 0 sinon

3.1 Calcul Matriciel Direct  n

M M
[l ]

On peut avoir la matrice de fermeture transitive par calcul matriciel comme suit : l 1

Où chaque matrice M[l] se calcule par récurrence (sur l) à travers le produit matriciel booléen comme suit :
M [1]  M
 [l 1]
M  M [l ] * M
n
  (mik  mkj )
[l ] [ l 1]
Chaque élément de M[l] : mij k 1
où l varie de 2 à n.
[l]
La matrice M représente tous les chemins dans G de longueur l.

Page 2/6
U.S.T.H.B. L3 Informatique Académique (S5) Année Universitaire 2013/2014
Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

3.2 Algorithme de Warshall



Le calcul direct de la matrice transitive M nécessite trop d'opérations matricielles. L'algorithme de Warshall,
donné ci-dessous, permet de la calculer avec un gain considérable en nombre d'opérations : n2 tests et au plus n3
opérations , c'est donc un algorithme en O(n3 )
Algorithme Warshall (Entrée : M : « Matrice »; Sortie : M : « Matrice »)
Début
Pour j de 1 à n Faire
Pour i de 1 à n Faire
Si M[i,j] = 1 Alors
Pour k de 1 à n Faire M[i,k] = M[i,k]  M[j,k] Fait;
Fsi;
Fait;
Fait;
Fin.

4. Connexité
4.1 Définition
Un graphe est dit connexe s’il existe une chaîne joignant chaque paire de sommets x et y (x  y).
4.2 Composante connexe
Soit un graphe G = (X, E) (resp. G = (X, U)):
 Le sous graphe engendré par un sommet isolé est considéré comme une composante connexe de G.
 Si le sous graphe engendré par un ensemble de sommets S  X (GS ) est connexe et le sous graphe engendré par
S  {x} et x  S n’est pas connexe Alors GS est une composante connexe de G.
Remarque : Un graphe connexe contient une seule composante connexe.
4.3 Algorithme de Connexité
Principe :
 A partir d’un sommet r, on tentera d’atteindre tous les autres sommets du graphe en faisant un prolongement
d’une chaîne.
 Pour chaque sommet nous allons vérifier les arcs sortants et les arcs entrants.
Données :
 En entrée :
 X : ensemble de n éléments représentant les identificateurs des sommets.
 U : ensemble de m éléments sous forme (i, j) représentant les arcs où iX et jX.
 r : identificateur d’un sommet de X qu’on appelle racine.
 En sortie :
 Connexe : Booléen, sera à Vrai si le graphe est connexe.
 Autres :
 CC : sous-ensemble de X. Le sous graphe engendré par cet ensemble représente une Composante Connexe.
 Marque : vecteur de n éléments booléens pour marquer les sommets traités.
 i, j : variables sommets.
L’algorithme :
C  {r}
Pour tout i  X Marque[i]  faux
Tant que ( iC tel que Non(Marque[i]))
Pour tout (i, j)U C  C  {j}
Pour tout (j, i)U C  C  {j}
Marque[i]  vrai
Si C=X Alors Connexe  Vrai
Sinon Connexe  Faux

4.4 Graphe k-connexe


Un graphe G est dit k-connexe si et seulement si G est connexe d’ordre nk+1 et il n’existe pas d’ensemble SX
de cardinal k-1 tel que le sous graphe engendré par X-S n’est pas connexe.

Page 3/6
U.S.T.H.B. L3 Informatique Académique (S5) Année Universitaire 2013/2014
Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

En d’autres termes, en supprimant moins de k sommets, le graphe sera toujours connexe.

5. Forte Connexité
5.1 Définition
Un graphe orienté G=(X, U) est fortement connexe (f.c.) s’il existe entre chaque paire de sommets x et y X (x  y)
un chemin de x à y (x  y) et un chemin de y à x (y  x).
5.2 Composantes fortement connexes (C.F.C.)
Soit G=(X, U) un graphe orienté :
 Le sous graphe engendré par un sommet x  X tel que dG+(x) = 0 ou d G-(x) = 0 forme une composante
fortement connexe de G.
 Si le sous graphe engendré par un ensemble de sommets SX (GS ) est fortement connexe et le sous graphe
engendré par S{x} et xS n’est pas fortement connexe Alors GS est une composante fortement connexe de G.
5.3 Ascendants / Descendants
Soit G=(X, U) un graphe orienté, On définit pour chaque sommet x  X deux ensembles :
 L’ensemble des descendants de x : D(x) = { y  X / x  y }
 L’ensemble des ascendants de x : A(x) = { y  X / y  x }
5.4 Algorithme de Calcul de C.F.C.
Principe :
 A partir d’un sommet r, on calcule la c.f.c. à laquelle appartient r.
 On calcule l’ensemble des descendants de r (noté D) puis l’ensemble des ascendants de r (noté A).
 La c.f.c. est A  D  {r}
Données :
 En entrée :
 X : ensemble de n éléments représentant les identificateurs des sommets.
 U : ensemble de m éléments sous forme (i, j) représentant les arcs où iX et jX.
 r : identificateur d’un sommet de X qu’on appelle racine.
 En sortie :
 CFC : sous-ensemble de X. Le sous graphe engendré par cet ensemble représente la C.F.C.
 Autres :
 i, j : variables sommets.
 Marque : vecteur de n éléments booléens.
 A, D : sous-ensembles de X. Ils représentant l’ensemble des ascendants et l’ensemble des descendants de la racine.
L’algorithme :
(* Initialisation *)
D  {r}
Pour tout i  X Marque[i]  faux
(* Recherche des descendants de r *)
Tant que ( i  D) et (Marque[i]=faux)
Marque[i]  vrai
Pour tout (i, j)  U D  D  {j}
(* Réinitialisation *)
A  {r}
Pour tout i  X Marque[i]  faux
(* Recherche des ascendants de r *)
Tant que ( i  A) et (Marque[i]=faux)
Marque[i]  vrai
Pour tout (j, i)  U A  A  {j}
(* Calcul de la C.F.C. *)
CFC  D  A
Remarque : Il est possible d’utiliser cet algorithme comme procédure et l’appeler à répétition jusqu’à obtention
de toutes les CFC d’un graphe. Il faut aussi savoir qu’il existe d’autres algorithmes plus simplifiés.

Page 4/6
U.S.T.H.B. L3 Informatique Académique (S5) Année Universitaire 2013/2014
Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

5.5 Graphe réduit


A tout graphe orienté G=(X, U) on associe le graphe simple GR=(XR, UR) appelé graphe réduit de G défini comme suit :
XR = { A chaque c.f.c. de G correspond un sommet Ci }
UR = { (Ci, Cj) / i  j et  x  Ci et  y  Cj et (x, y)  U }
5.6 Remarques
 Un graphe fortement connexe possède une seule C.F.C.
 Le graphe réduit d’un graphe ne possède pas de circuits.

6. Parcours Eulériens
6.1 Définition
Un parcours Eulerien passe une fois et une seule fois par chaque arête (resp. arc) du graphe. Le parcours peut être
une chaîne, un chemin, un cycle ou un circuit. Soit G un graphe contenant m arêtes (resp. m arcs) :
Une chaîne simple, un chemin simple, un cycle simple ou un circuit de longueur m est appelé Eulérien.
6.2 Théorème 1 – Euler 1766
Un multigraphe G admet une chaîne Eulérienne si et seulement si il est connexe (à des points isolés près) et le
nombre de sommets de degré impair est 0 ou 2.
6.3 Conséquences
Un graphe G admet une chaîne Eulérienne d’un sommet x à un sommet y (xy) si et seulement si d G (x) et d G (y)
sont impairs et z sommet de G (zx et zy), on a d G (z) pair.
Un graphe G admet un cycle Eulérien si et seulement x sommet de G, on a d G (x) pair.
6.4 Détermination d’une chaîne Eulérienne
 On part d’un sommet a de degré impair (S’il n’y pas de sommets de degrés impairs, on démarre de
n’importe quel sommet). On construit une chaîne à partir de a comme suit :
 A chaque étape k on obtient une chaîne de longueur k et le graphe sera réduit à G k qui correspond au
graphe partiel de G engendré par l’ensemble des arêtes (resp. d’arcs) initial auquel on supprime ceux
faisant partie de la chaîne.
 A chaque étape k, en arrivant à un sommet x, il faut éviter de prendre toute arête (resp. arc) qui est isthme
dans G k . Sauf s’il s’agit de la seule et unique possibilité, on la prend et on termine.
 On termine lorsqu’il n’y a plus d’arêtes (resp. arcs) dans le graphe G k .
6.5 Proposition
Un graphe G=(X, U) admet un circuit Eulérien si et seulement si pour tout sommet x, on a d+ G (x)= d- G (x). (On dit
que G est pseudo-symétrique)

7. Parcours Hamiltoniens
7.1 Définition
Un parcours Hamiltonien passe une fois et une seule fois par chaque sommet du graphe. Le parcours peut être une
chaîne, un chemin, un cycle ou un circuit. Soit G un graphe d’ordre n (contenant n sommets) :
Une chaîne (resp. un chemin) élémentaire de longueur n-1 est appelé chaîne Hamiltonienne (resp. chemin Hamiltonien).
Un cycle (resp. circuit) élémentaire de longueur n est appelé cycle (resp. circuit) Hamiltonien.
7.2 Théorème
Le théorème ci-dessous est utilisé pour démontrer qu’un graphe n’est pas Hamiltonien (ne contient pas de cycle
Hamiltonien).
Si G=(X,E) est un graphe Hamiltonien, alors pour tout ensemble de sommets S  X, on a : p(G X-S )  |S|
où p(G X-S ) est le nombre de composantes connexes du sous graphe de G induit par l’ensemble X-S

Page 5/6
U.S.T.H.B. L3 Informatique Académique (S5) Année Universitaire 2013/2014
Faculté d’Electronique et Informatique Module Théorie des Graphes Octobre 2013
Département Informatique Chapitre 2

8. Cocycles
8.1 Cocycle dans un graphe non orienté
Soit G=(X, E) un graphe non orienté, soit S  X :
On appelle cocycle dans G associé à S, l’ensemble d’arêtes (noté (S)) ayant exactement une extrémité dans S.
(S) = { e={x, y} E / (x  S et y  S) ou (x  S et y  S) }
8.2 Cocycle dans un graphe orienté
Soit G=(X, U) un graphe orienté, soit S  X :
On note par :
+(S) = { u=(x, y) U / x  S et y  S }
-(S) = { u=(x, y) U / x  S et y  S }
(S) = +(S)  -(S)
On appelle l’ensemble d’arcs (S) cocycle dans G associé à S.
8.3 Représentation vectorielle
Soit G=(X, U) un graphe avec |U| = m.

Le vecteur  de m éléments permet de représenter un cocycle =(S) =  (S)   (S) comme suit : chaque
+ -

élément du vecteur  i correspond à un arc u i  U


 1 si ui   (S)
i 1 si ui   (S)
 0 si ui  (S)

9. Cocircuits
9.1 Définitions d’un cocircuit
1 - Un cocircuit dans un graphe orienté G=(X,U) est un cocycle dans G, dans lequel tous les arcs sont orientés
dans le même sens.
2 - Un ensemble d’arcs   U est un cocircuit. Si S  X /  = (S) et ( +(S) =  ou -(S) = )
9.2 Corollaire
Tout arc u d’un graphe G=(X, U) appartient soit à un circuit soit à un cocircuit. (Jamais aux deux)
9.3 Proposition
Un graphe G=(X, U) est fortement connexe si et seulement si SX, on a +(S) (respectivement -(S))

Page 6/6

Vous aimerez peut-être aussi