Académique Documents
Professionnel Documents
Culture Documents
Brahim Hnich
April 2017
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
2
The Scientific Method
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
3
Plan
1 Definition
2 Arborescences
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
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, s) de sommets distincts, il existe
un chemin allant de s à s.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
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.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
9
Arborescences
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.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
10
Arborescences
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
11
Arborescences
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
12
Arborescences
Soit un arbre fini non orienté, pour tout sommet s il existe une
orientation qui en fait une arborescence de racine s.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
13
Arborescences
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
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
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
16
Arborescences
Arborescence binaire
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
17
Recherche d’un parcours dans un graphe
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
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
19
Recherche d’un parcours dans un graphe Parcours en largeur
Description
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
20
Recherche d’un parcours dans un graphe Parcours en largeur
Exemple
Soit le graphe orienté suivant:
Exemple
Soit le graphe orienté suivant:
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
23
Recherche d’un parcours dans un graphe Parcours en largeur
L’algorithme
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
△L
Exemple2
L’étape suivante identifie le sommet s4 comme étant le successeur de s1 .
AL
△L
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
△L
Exemple4
Les étapes suivantes poursuivent la construction du parcours en largeur.
AL
△L
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
△L
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
△L
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
△L
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
△L
Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
33
Recherche d’un parcours dans un graphe Parcours en profondeur
Exemple
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
35
Recherche d’un parcours dans un graphe Parcours en profondeur
Exemple9
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Intervalles de traitement
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
61
Recherche d’un parcours dans un graphe Parcours en profondeur
Intervalles de traitement
Intervalles de traitement
Théorème des parenthèses
Dans un parcours en profondeur dans graphe G = (S, A), pour tous
sommets quelconques si et sj , une seule des conditions suivantes est
vérifiée:
les intervalles [Id [si ], If [si ]] et [Id [sj ], If [sj ]] sont complètement
disjoints,
l’intervalle [Id [si ], If [si ]] est inclus dans [Id [sj ], If [sj ]] et si est un
descendant de sj dans l’arborescence en profondeur,
l’intervalle [Id [sj ], If [sj ]] est inclus dans [Id [si ], If [si ]] et sj est un
descendant de si dans l’arborescence en profondeur.
Intervalles de traitement
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
64
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
66
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
68
Recherche d’un parcours dans un graphe Parcours en profondeur
3 Reconstruire le graphe.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
69
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
70
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
71
Recherche d’un parcours dans un graphe Parcours en profondeur
33
Le graphe transposé Gt d’un graphe G est le graphe tel que, pour tout arc a de Gt ,
. . . . . . . . . . . . . . . . . . . .
il existe un arc b de G tel que o(a) = d(b) et d(a) = o(b).. . . . . . . . . . . . . . . . . . . .
72
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
73
Recherche d’un parcours dans un graphe Parcours en profondeur
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
74
Recherche d’un parcours dans un graphe Parcours en profondeur
34
5 composantes fortement connexes: CF C(s12 ) = {s11 , s12 } CF C(s2 ) =
{s1 , s2 , s3 , s4 , s5 } CF C(s7 ) = {s7 , s8 , s9} CF C(s6 ) =. {s
. 6.} . CF . . {s
. .10 .}
. . . . . . . . . . . . . . . . . . . .
. . . C(s . ). =
. . . 10 . . .
75