Vous êtes sur la page 1sur 62

Université de Monastir

Théorie des Graphes et Optimisation:


Graphes Orientés

Ali Ben Mrad

Faculté des Sciences de Monastir


Département d’informatique
Spring 2019–1020

May 12, 2020


The Scientific Method

2
The Scientific Method

Ibn al-Haytham (Alhazen), 965—-1039 Iraq. A polymath, considered by


some to be the father of modern scientific methodology, due to his
emphasis on experimental data and reproducibility of its results.

3
Plan

1 Definition

2 Arborescences

3 Recherche d’un parcours dans un graphe


Parcours en largeur
Parcours en profondeur
Méthode de recherche de parcours en profondeur

4
Definition

Graphe orienté

Definition
Un graphe orienté G(SO, AR) est déterminé par un ensemble
SO = {s1 , s2 , . . . , sn } dont les éléments sont appelés sommets et un
ensemble AR = {a1 , a2 , . . . , am } dont les éléments sont appelés arcs.

5
Definition

Graphe orienté
Definition
Une chaîne est une séquence d’arcs (ou d’arêtes) telle que chaque arc (ou
arête) ait une extrémité commune avec le suivant.

Definition
Un chemin est une chaîne telle que tous les arcs sont orientés dans le
même sens.

6
Definition

Graphe orienté
Definition
Un cycle est une chaîne telle que la séquence n’utilise pas deux fois le
même arc (ou arête) et le premier et le dernier arc (ou arête) de la
séquence ont une extrémité commune.

Definition
Un circuit est un cycle tel que tous les arcs sont orientés dans le même
sens. Les notions de chemin et de circuit s’appliquent exclusivement aux
graphes orientés.

7
Definition

Graphe orienté

Definition
Un graphe est connexe si pour toute paire (si , sj ) de sommets distincts, il
existe une chaîne joignant si et sj .

Definition
Un graphe orienté est fortement connexe si chaque sommet est accessible
depuis n’importe quel autre. En d’autres termes, un graphe orienté est
fortement connexe si pour toute paire (s, s0 ) de sommets distincts, il existe
un chemin allant de s à s0 .

8
Definition

Graphe orienté
Definition
La composante connexe d’un sommet s, notée CC(s), est le sous-ensemble
de sommets tels qu’il existe une chaîne entre deux sommets quelconques de
CC(s).

Definition
La composante fortement connexe d’un sommet d’un graphe orienté, notée
CF C(s), définit les sommets accessibles mutuellement par un chemin.

Les composantes fortement connexes sont les classes d’équivalence de la


relation entre sommets "sont accessibles mutuellement".

9
Arborescences

Qu’est-ce qu’une arborescence?

Definition
Une arborescence est un arbre orienté G dont tous les sommets sont de
degré entrant égal à 1 à l’exception d’un seul, appelé racine, pour lequel le
degré entrant est nul.

Dans une arborescence, tout sommet sj accessible depuis si (si 6= sj )


est désigné descendant de si tandis que si est désigné ancêtre de sj .

Soit un arc a reliant le sommet si au sommet sj , si est désigné père


de sj et sj le fils de si .

Si deux sommets ont le même père, on dit qu’ils sont frères.

10
Arborescences

Qu’est-ce qu’une arborescence?

Dans une arborescence finie, il existe trois types de sommets:


la racine (sans père),

les feuilles (sans fils),

les noeuds (un père et au moins un fils).

11
Arborescences

Qu’est-ce qu’une arborescence?

Soit une arborescence et s un de ses sommets, le sous-graphe de


l’arborescence composé des descendants de s est une arborescence de
racine s.

12
Arborescences

Qu’est-ce qu’une arborescence?

Soit un arbre fini non orienté, pour tout sommet s il existe une
orientation qui en fait une arborescence de racine s.

13
Arborescences

Qu’est-ce qu’une arborescence?

Le nombre de fils d’un sommet est appelé le degré de ce sommet

La longueur du chemin entre la racine de l’arborescence et un sommet


définit la profondeur de ce sommet.

La plus grande profondeur détermine la hauteur de l’arborescence.

14
Arborescences

Arborescence binaire
Une arborescence binaire est une arborescence où chaque sommet a au
plus deux fils:
un fils gauche
un fils droit
Dans une arborescence binaire, la position du fils est importante:
gauche ou droite.

15
Arborescences

Arborescence binaire

Une arborescence binaire est complète, si chaque sommet qui a des


fils, a un fils gauche et un fils droit.

16
Arborescences

Arborescence binaire

Une arborescence peut être représentée par un tableau. Le ieme


élément du tableau définit le sommet "père" du sommet i la racine de
l’arborescence est représentée par le symbole "ˆ".

17
Recherche d’un parcours dans un graphe

Recherche d’un parcours dans un graphe

Graphe non orienté: Identifier les sommets accessibles depuis un


sommet donné d’un graphe. En d’autres termes, il s’agit d’identifier
toutes les chaînes contenant le sommet choisi.

Graphe orienté: Identifier tous les chemins qui ont pour origine le
sommet choisi.

Cette recherche de parcours est un problème fréquent de la théorie de


parcours, elle peut s’effectuer de deux manières:
parcours en largeur

parcours en profondeur.
Les résultats de ces parcours sont des arborescences qui identifient les
sommets accessibles depuis un sommet donné.

18
Recherche d’un parcours dans un graphe Parcours en largeur

Distance

Dans un graphe orienté, on définit la distance en arc, notée


DA (si , sj ), le nombre d’arcs minimum nécessaire pour relier si à sj ou
∞ s’il n’existe pas de chemin reliant si à sj .

De la même façon, on définit cette distance dans un graphe non


orienté par le nombre minimum d’arêtes reliant si à sj ou ∞ s’il
n’existe aucune chaîne entre si et sj .

19
Recherche d’un parcours dans un graphe Parcours en largeur

Description

Le parcours recherche les sommets accessibles depuis un sommet


donné.

De plus, il calcule la distance en arc entre ce sommet et tous les


sommets accessibles (à partir de ce sommet).

Le résultat de ce parcours est formalisé d’une part par une


arborescence, désignée arborescence en largeur, contenant tous les
sommets accessibles depuis un sommet donné et, d’autre part, par un
tableau mémorisant les distances en arc.

20
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple
Soit le graphe orienté suivant:

La recherche d’un parcours en largeur à partir du sommet s1 est fourni par


les deux tableaux suivants:
AL : représentation de l’arborescence en largeur
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
ˆ s3 s4 s1 s4 s5 s2 s7 s7 s6 – –
21
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple
Soit le graphe orienté suivant:

La recherche d’un parcours en largeur à partir du sommet s1 est fourni par


les deux tableaux suivants:
4L : représentation de la distance en arc
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
0 3 2 1 2 3 4 5 5 4 ∞ ∞
22
Recherche d’un parcours dans un graphe Parcours en largeur

Méthode de recherche d’un parcours en largeur

La méthode pour construire un parcours en largeur s’appuie sur un


sous-ensemble de sommets SO qui identifie les sommets accessibles.

Le tableau, noté AL , représente l’arborescence en largeur

tandis que le tableau, noté 4L , mémorise les distances en arc.

23
Recherche d’un parcours dans un graphe Parcours en largeur

L’algorithme

1 Initialiser SO = ∅, AL [s] = −− et 4L [s] = ∞ pour tous les sommets


du graphe
2 Choisir un sommet si du graphe
1 AL [si ] = ˆ
2 4L [s] = 0
3 Ajouter si à SO
3 Rechercher les sommets adjacents (vers l’extérieur dans un graphe
orienté) à SO Pour tous les sommets sk trouvés:
1 AL [sk ] = predecesseur[sk ]
2 4L [sk ] = 4L [predecesseur[sk ]] + 1
3 Ajouter les sommets sk à SO
4 Recommencer la recherche jusqu’à ce qu’il n’existe plus de sommets
adjacents (vers l’extérieur dans un graphe orienté) à SO.

24
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple1
En reprenant le graphe de l’exemple précédent, la première étape initialise la recherche du
parcours en largeur à partir de s1 .

AL
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
ˆ – – – – – – – – – – –
4L
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
1
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
25
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple2
L’étape suivante identifie le sommet s4 comme étant le successeur de s1 .

AL

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


ˆ – – s1 – – – – – – – –

4L

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


0 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
2
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
26
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple3
L’étape suivante identifie les sommets s3 et s5 à partir des arcs adjacents vers l’extérieur au
sous-ensemble SO.

AL
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
ˆ – s4 s1 s4 – – – – – – –
4L
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
0 ∞ 2 1 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞
3
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
27
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple4
Les étapes suivantes poursuivent la construction du parcours en largeur.

AL

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


ˆ s3 s4 s1 s4 s5 – – – – – –

4L

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


0 3 2 1 2 3 ∞ ∞ ∞ ∞ ∞ ∞
4
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
28
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple5

AL

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


ˆ s3 s4 s1 s4 s5 s2 – – s6 – –

4L

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


0 3 2 1 2 3 4 ∞ ∞ 4 ∞ ∞

5
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
29
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple6

AL

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


ˆ s3 s4 s1 s4 s5 s2 s7 s7 s6 – –

4L

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


0 3 2 1 2 3 4 5 5 4 ∞ ∞

6
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
30
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple7
Il n’existe plus d’arête traversante, le parcours est donc terminé.

AL

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


ˆ s3 s4 s1 s4 s5 s2 s7 s7 s6 – –

4L

s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12


0 3 2 1 2 3 4 5 5 4 ∞ ∞
7
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
31
Recherche d’un parcours dans un graphe Parcours en largeur

Exemple8
Suite à ce traitement, le parcours en largeur depuis le sommet s1 peut être représenté par
l’arborescence suivante :

AL
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
ˆ s3 s4 s1 s4 s5 s2 s7 s7 s6 – –
4L
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12
0 3 2 1 2 3 4 5 5 4 ∞ ∞
8
le code des couleurs: arc traversant la coupure, arc de l’arborescence en
largeur, sommet de l’arborescence en largeur, sommet à ajouter dans
l’arborescence en largeur.
32
Recherche d’un parcours dans un graphe Parcours en profondeur

Parcours en profondeur

Le parcours en profondeur est un parcours qui cherche à descendre plus


profondément dans le graphe chaque fois que c’est possible. Ce parcours
construit une forêt en profondeur composée de plusieurs arborescences en
profondeur.

33
Recherche d’un parcours dans un graphe Parcours en profondeur

Algorithme de recherche de parcours en profondeur


Les étapes de la construction de ce parcours sont les suivantes:
1 Etape initiale : Tous les sommets sont coloriés en Couleur1.
2 Etape 1 : Un sommet colorié en Couleur1 est choisi arbitrairement et
il est colorié en Couleur2 et devient le sommet courant. Ce sommet
est racine d’une arborescence en profondeur.
3 Etape 2 : Si le sommet courant a un sommet successeur (ou voisin)
colorié en Couleur1, on le colorie en Couleur2 et on ajoute ce sommet
dans l’arborescence en profondeur et il devient le sommet courant.
4 Etape 3 : S’il n’existe aucun sommet successeur Couleur1, le sommet
est marqué en Couleur3 et on remonte au sommet père dans
l’arborescence en profondeur qui devient le sommet courant.
Ce parcours reprend à partir de l’étape 2 jusqu’à ce que tous les sommets
accessibles à partir du sommet défini à l’étape 1 aient été découverts. A la
fin du parcours, s’il reste des sommets coloriés en Couleur1 on recommence
à l’étape 1.
34
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple

Soit le graphe orienté suivant:

35
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple9

L’étape initiale consiste à colorier en bleu tous les sommets du graphe.

9
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
36
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple10

Il s’agit ensuite de choisir un sommet, le sommet choisi est s2 (étape 1); ce


sommet devient la racine d’une arborescence et le sommet courant.

10
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
37
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple11

L’étape suivante (étape 2) consiste à découvrir un successeur non découvert


de s2 : s1 , s5 ou s7 ; le sommet choisi est s1 et il devient le sommet courant.

11
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
38
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple12

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s1 : s4 ; ce sommet devient le sommet courant.

12
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
39
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple13

L’étape suivante (étape 2) consiste à découvrir un successeur non découvert


de s4 : s3 ou s5 ; le sommet s5 est choisi et il devient le sommet courant.

13
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
40
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple14

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s5 : s6 ; ce sommet devient le sommet courant.

14
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
41
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple15

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s6 : s10 ; ce sommet devient le sommet courant.

15
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
42
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple16

Le sommet s10 n’a pas de successeur, le sommet est donc colorié en vert
(étape 3) et le sommet s6 devient le sommet courant.

16
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
43
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple17

Le sommet s6 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s5 devient le sommet courant.

17
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
44
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple18

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s5 : s3 ; ce sommet devient le sommet courant.

18
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
45
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple19

Le sommet s3 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s5 devient le sommet courant.

19
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
46
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple20

Le sommet s5 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s4 devient le sommet courant.

20
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
47
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple21

Le sommet s4 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s1 devient le sommet courant.

21
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
48
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple22

Le sommet s1 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s2 devient le sommet courant.

22
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
49
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple23

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s2 : s7 ; ce sommet devient le sommet courant.

23
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
50
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple24

L’étape suivante (étape 2) consiste à découvrir un successeur non découvert


de s7 : s8 ou s9 ; le sommet choisi est s9 et il devient le sommet courant.

24
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
51
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple25

Le sommet s9 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s7 devient le sommet courant.

25
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
52
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple26

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s7 : s8 ; ce sommet devient le sommet courant.

26
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
53
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple27

Le sommet s8 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s7 devient le sommet courant.

27
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
54
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple28

Le sommet s7 n’a pas de successeur (non découvert), le sommet est donc


colorié en vert (étape 3) et le sommet s2 devient le sommet courant.

28
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
55
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple29
Le sommet s2 n’a pas de successeur (non découvert), le sommet est donc
colorié en vert (étape 3). Le sommet défini à l’étape 1 étant colorié en vert,
le parcours à partir de ce sommet est terminé. Il reste des sommets non
découverts dans le graphe (s11 et s12 ). On choisit s12 comme racine d’une
nouvelle arborescence (étape 1) et ce sommet devient le sommet courant.

29
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
56
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple30

L’étape suivante (étape 2) consiste à découvrir un successeur non


découvert de s12 : s11 ; ce sommet devient le sommet courant.

30
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
57
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple31

Le sommet s11 n’a pas de successeur (non découvert), le sommet est donc
colorié en vert (étape 3) et le sommet s12 devient le sommet courant.

31
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
58
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple32
Le sommet s12 n’a pas de successeur (non découvert), le sommet est donc
colorié en vert (étape 3) et il n’existe plus de sommet non découvert (bleu)
dans le graphe. Le parcours est donc terminé.

32
le code des couleurs: sommet non découvert, sommet découvert mais
existence de sommets successeurs (ou voisins) non découverts, sommet
totalement exploré, arc adjacent vers l’exterieur d’un sommet en cours de
traitement (autre qu’un arc de l’arborescence en profondeur), arc de
l’arborescence en profondeur.
59
Recherche d’un parcours dans un graphe Parcours en profondeur

Exemple
Ce parcours à donc permis d’identifier les deux arborescences en profondeur
suivante:

60
Recherche d’un parcours dans un graphe Parcours en profondeur

Recherche de composantes fortement connexes


Algorithme

Soit G = (V, E) et x ∈ V , l’algorithme suivant permet de déterminer les


composantes fortement connexe de x.

61
Recherche d’un parcours dans un graphe Parcours en profondeur

Recherche de composantes fortement connexes


Exemple

On identifie 5 composantes fortement connexes: CF C(s12 ) =


CF C(s11 ) = {s11 , s12 } CF C(s1 ) = CF C(s2 ) = CF C(s3 ) =
CF C(s4 ) = CF C(s5 ) = {s1 , s2 , s3 , s4 , s5 } CF C(s7 ) = CF C(s8 ) =
CF C(s9 ) = {s7 , s8 , s9 } CF C(s6 ) = {s6 } CF C(s10 ) = {s10 }.

62