Académique Documents
Professionnel Documents
Culture Documents
Type abstrait
Un type abstrait est un triplet composé de :
• un nom
• un ensemble de valeurs
• un ensemble d'opérations (souvent appelé primitives) définies
sur ces valeurs.
Exemples : Pile, File, arbre, graphe, conteneur.
Les Graphes - F. LABBENE AYACHI 3
Tout sur les ARBRES
• Une structure de modèle hiérarchique.
• Un arbre est une structure acyclique, connectée et dirigée.
• Il doit y avoir un nœud racine dans l’arbre à partir duquel on peut atteindre
tous les autres nœuds de l’arbre.
• Il existe toujours un seul chemin pour atteindre à partir du nœud racine un
autre nœud de l’arbre.
• Parcourir un arbre : à partir d’un nœud retrouver chaque nœud du sous-
arbre.
• Parcours préordre, postordre et ordre sont une sorte de parcours dans les
arbres. On les appelles aussi parcours préfixé, postfixé et infixé.
• Les arbres sont principalement utilisés pour trier et parcourir.
• La structure arbre est moins complexe que celle de graphe.
• Il existe toujours un seul chemin pour • À partir d’un nœud A il existe plusieurs
atteindre à partir du nœud racine un autre
nœud de l’arbre.
chemins pour atteindre un nœud B.
• Parcourir un arbre : à partir d’un nœud • Recherche dans un graphe : à partir d’un
retrouver chaque nœud du sous-arbre.
nœud essayer de trouver un nœud particulier.
• Parcours préordre, postordre et ordre • Parcours en largeur ou en profondeur sont
sont une sorte de parcours dans les
arbres.
des algorithmes de recherche.
• Les arbres sont principalement utilisés • La principale utilisation des graphes est la
pour trier et parcourir.
coloration et la planification des tâches.
• La structure arbre est moins complexe • Complexité élevée par rapport aux arbres
que celle de graphe.
Les Graphes - F.principalement
LABBENE AYACHIà cause des boucles. 5
Définitions
• Un graphe est un couple G = (S, A) dans lequel :
‾ S est l'ensemble des éléments mis en relation les uns avec les autres.
Les éléments de S sont nommés sommets.
‾ A représente les relations établies entre membres de S. A est donc un
ensemble de couples d'éléments de S.
6
Les Graphes - F. LABBENE AYACHI
Graphe non orienté vs graphe orienté
A E
S = {A, E, B, C, F, D, K}
D A = { {A,B}, {A,E}, {E,C},
B C {E,B}, {C,B}, {C,F}, {B,F},
K {F,E}, {D, K}}
A E
S = {A, E, B, C, F}
A = {(A,A), (A,B), (A,E),
B C (E,C), (C,B), (C,F), (B,F),
(B,E), (B,A), (F,E)}
7
Les Graphes - F. LABBENE AYACHI
F
Exemples de problèmes modélisés par des graphes valués et
étiquetés
A 142 E
Tunis Sousse
58 136
250 C
B Sfax
Bizerte
139
F
Gabes
Sommets : A, B, C, D
Arêtes : AB, BC, AC, BD
voisins(A) : B et C
voisins(B) : A, C et D
voisins(C) : A et B
voisins(D) : B
A et D ne sont pas voisins.
D et C ne sont pas voisins
degré(A) = degré(C) =2
degré(B) = 3
degré(D) =1
Les Graphes - F. LABBENE AYACHI 10
Chemin, longueur
Chemin : Suite d’arêtes permettant de relier deux sommets.
(ABC) est un chemin reliant A à D.
Longueur d’un chemin = nombre de ses arêtes
Longueur (ABC) = 2
Tout sommet isolé a une longueur 0.
Remarque :
Il existe deux chemins entre A et C soit
ABC et AC.
Le plus court chemin étant AC.
complet
Exemples :
• Pour la construction d’un réseau électrique entre habitations,
l'arbre couvrant minimum est la façon de construire un tel réseau
en minimisant par exemple la longueur totale de câble.
• Minimisation de la communication entre tous les nœuds dans un
réseau de capteurs sans fils se fait autour d’un nœud appelé
racine. Les Graphes - F. LABBENE AYACHI 16
Définitions
• Un graphe étiqueté est un couple G=(S,A) sur lequel une fonction
d’étiquetage est définie, qui associe une étiquette à chaque élément de S.
Plusieurs sommets peuvent avoir la même étiquette.
• Le poids d'un chemin est la somme des poids des arêtes qui le
composent.
• Un plus court chemin entre deux sommets est, parmi les chemins qui les
relient, le chemin de poids minimum.
17
Les Graphes - F. LABBENE AYACHI
Graphe orienté
Exemple type d’applications : ordre topologique ou
ordonnancement des tâches
Hypothèse 1 :
• On dispose d’une seule ressource.
• Toutes les tâches doivent être exécutées
➔ Exécuter les tâches les unes après les autres.
A A E
0 1 1 1 0
B 1 0 1 0 1
B C
C 1 1 0 1 1
E 1 0 1 0 1 F
F 0 1 1 1 0 M est symétrique
par rapport à sa
Liste Voisinage entre sommets première
des sommets diagonale.
Les Graphes - F. LABBENE AYACHI 20
Représentation statique d’un graphe
Matrice d’adjacence
A si (L[i], L[j]) ϵ A
0 1 1 1 0 alors M[i,j] = vrai
M[j,i] = vrai
B 1 0 1 0 1 sinon M[i,j] = faux
M[j,i] = faux
C 1 1 0 1 1
Voisins(L[i])
E 1 0 1 0 1 =
{ L[j] / M[i,j]=1 }
F 0 1 1 0 0
Liste Matrice Voisinage entre sommets
des sommets
Les Graphes - F. LABBENE AYACHI 21
MATRICE D’ADJACENCE
d’un graphe étiqueté
id ville
A Tunis -1 142 58 250 -1
B Bizerte 58 -1 -1 -1 -1
C Sfax 250 136 -1 -1 139
E Sousse 142 -1 -1 136 -1
F Gabes -1 -1 -1 139 -1
si (L[i].id, L[j].id) ϵ A
alors M[i,j] = poids((L[i], L[j])
sinon M[i,j] = -1
Les Graphes - F. LABBENE AYACHI 22
Représentation dynamique d’un graphe :
Les LISTES D’ADJACENCE
Liste ordonnée des sommets Liste des voisins
• •
G A
1 • 2 • 3
B • • 4
Exemple de
C • • 1 • 2 • 5
graphe non
3 • 5 étiqueté et
D • •
non pondéré
2
E •
A 142 E
Tunis Sousse
58 136
250 C
B Sfax
Bizerte
139
F
Gabes
Les Graphes - F. LABBENE AYACHI 24
Structures de données
des graphes orientés
A 1 1 0 1 0
A E
B 1 0 0 1 1
C 0 1 0 0 1 B C
E 0 0 1 0 0
F
F 0 0 0 1 0
F 0 0 0 1 0
1 2 3 4 5 6 7 8 9 10
Sommet isolé 0 0 0 0 0 0 0 0 0 0
Point d’entrée 0 +1 +1 0 +1 +1 +1 0 0 0
Point de sortie 0 0 0 0 0 0 -1 -1 -1 0
0 -1 -1 0 -1 0 0 +1 +1 0
Prédécesseurs Successeurs
= nombre des -1 = nombre des +1
C • • B • F
C
E • •
E
F •
A E
BFS(G, A) ?
B C
BFS(G, F) ?
F
Les Graphes - F. LABBENE AYACHI 37
Démo BFS
BFS(G, A) BFS(G, F)
➔ A B E C F ➔ F B C A E
A E A E
B C B C
F F
Arbres différents mais mêmes propriétés.
Les Graphes - F. LABBENE AYACHI 38
Parcours en profondeur d’un graphe
Principe :
Dans le parcours en profondeur à partir d'un sommet u, on tente
d'avancer le plus loin possible dans le graphe, et ce n'est que lorsque
toutes les possibilités de progression sont bloquées que l'on revient
pour explorer un nouveau chemin.
B C B C
F F
Arbres différents mais mêmes propriétés.
Les Graphes - F. LABBENE AYACHI 40
DFS vs BFS
DFS(G, A) BFS(G, A)
➔ A B E C F ➔ A B E C F
A E A E
B C B C
F F
Arbres différents mais mêmes propriétés.
Les Graphes - F. LABBENE AYACHI 41
DFS vs BFS
DFS(G, F) BFS(G, F)
➔ F B C A E ➔ F B C A E
A E A E
B C B C
F F
Arbres différents mais mêmes propriétés.
Les Graphes - F. LABBENE AYACHI 42
DFS vs BFS
A A A
B C D B C D B C D
E F E F E F
F n
E F
K b
K L b
L
-1 nil blanc A • • B • C • E
-1 nil blanc B • • A • C • F
-1 nil blanc C • • A • B • E • F
-1 nil Blanc A • C • F
E • •
-1 nil blanc B • C • E
F •
-1 nil blanc B 1 0 1 0 1
-1 nil blanc C 1 1 0 1 1
-1 nil Blanc E 1 0 1 0 1
-1 nil blanc F 0 1 1 0 0