1. Dr. Ammar LADJAILIA Université de Souk Ahras
Introduction aux graphes
UNIVERSITÉ DE SOUK AHRAS
FACULTÉ DES SCIENCES ET DE LA TECHNOLOGIE
DÉPARTEMENT DE MATHÉMATIQUES ET INFORMATIQUE
2. Dr. Ammar Ladjailia Université de Souk Ahras
Plan
➔ Définitions
➔ Représentation des graphes
➔ Parcours des graphes
➔ Problème de plus court chemin
2
3. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Théorie des graphes
La théorie des graphes est la discipline mathématique et
informatique qui étudie les graphes, lesquels sont des modèles
abstraits de dessins de réseaux reliant des objets.
4. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Graphe en Informatique
Un graphe en informatique est une structure de données
composée d’un ensemble de sommets (nœuds ou points), et
d’un ensemble des relations (arcs ou arêtes) entre ces sommets.
6. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Graphe orienté
Un graphe est dit orienté (asymétrique) si les relations (arcs)
sont orientées
7. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Graphe non orienté
Un graphe est dit non orienté (symétrique) si les relations
(arêtes) ne sont pas orientées.
La relation est supposée exister dans les deux sens.
8. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Graphe connexe
Un graphe non orienté est dit connexe si on peut aller de tout
sommet vers tous les autres sommets.
9. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Graphe fortement connexe
Un graphe orienté est dit fortement connexe si on peut aller de
tout sommet vers tous les autres sommets
10. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Boucle
Une boucle (autoboucle) est une relation (Si, Si)
11. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Multigraphe
Un multigraphe ou graphe multiple est un graphe tel qu’il
existe plusieurs arcs entre certains sommets.
12. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Graphe pondéré
Un graphe est dit valué (pondéré) si à chaque arc on associe
une valeur représentant le coût de la transition de cet arc.
13. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : chemin
Un chemin dans un graphe est une suite d’arcs consécutifs.
14. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : longueur d’un chemin
La longueur d’un chemin est le nombre d’arcs constituant ce
chemin.
15. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Chemin simple
Un chemin simple est un chemin où aucun arc n’est utilisé
deux fois.
16. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : circuit simple
Un circuit simple est un chemin simple tel que le premier et le
dernier sommet sont les mêmes.
17. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : circuit eulérien
Un circuit eulérien est un circuit qui passe une et une seule fois
par tous les arcs.
18. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : circuit hamiltonien
Un circuit hamiltonien est un circuit qui passe une et une seule
fois par tous les sommets.
19. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : graphe planaire
Un graphe est planaire si aucun de ses arcs ne se coupent.
20. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Définition : Degré d’un sommet
21. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation d’un graphe
22. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Matrice d’adjacence
Principe :
Matrice logique (V,F) ou une matrice des (0,1) tels que :
Si arc(Si , Sj) tels que: Si, Sj Sommets ➔ Matrice[i,j]=V ou 1
Sinon Matrice[i,j]=F ou 0.
23. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Matrice d’adjacence
24. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Matrice d’adjacence
Exercice 1:
Ecrire un programme qui permet de créer un graphe donné à
l’aide de la matrice d’adjacence.
25. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Table de liste d’adjacence
Principe : La partie contenant les sommets est mémorisée dans
une table, pour chaque entrée, une liste des sommets que l’on
peut atteindre directement (successeurs) en partant du sommet
correspondant à cette entrée.
26. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Table de listes d’adjacence
Exercice 2:
Ecrire un programme qui permet de créer un graphe donné à
l’aide du table de listes d’adjacence.
27. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Liste de listes d’adjacence
Principe : La partie contenant les sommets est mémorisée dans
une liste, pour chaque entrée, une liste des sommets que l’on
peut atteindre directement en partant du sommet correspondant
à cette entrée.
28. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Représentation : Liste de listes d’adjacence
Exercice 3:
Ecrire un programme qui permet de créer un graphe donné à
l’aide de la liste de listes d’adjacence.
29. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Parcours d’un graphe
Le parcours d’un graphe est un algorithme qui permet d’examiner
(passage | explorer) les sommets une et une seule fois.
31. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Parcours en profondeur
Principe : Cet algorithme permet pour chaque sommet visité, de
choisir un des sommets successeurs du sommet en cours, jusqu’à
arriver sur une impasse ou un sommet déjà visité. Dans ce cas,
on revient en arrière pour repartir avec un des successeurs non
visité du sommet courant.
33. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Parcours en profondeur
Exercice 4:
Implémenter en C/C++ l’algorithme du parcours en
profondeur,
36. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Parcours en largeur
Principe : On part d’un sommet donné. On énumère tous les fils
(les suivants) de ce sommet, puis tous les petits-fils non encore
énumérés, etc. C’est une énumération par génération : les
successeurs directs, puis les successeurs au 2e degré, etc.
41. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Problème de plus court chemin
42. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Problème de plus court chemin
43. Dr. Ammar Ladjailia Université de Souk Ahras
Graphe
Algorithme de DIJKSTRA
L’algorithme de Dijkstra résout le problème de la recherche d’un
plus court chemin à origine unique pour un graphe orienté
pondéré G = (S , A) dans le cas où tous les arcs ont des poids
positifs ou nuls