Graphes pondérés et algorithme de Dijkstra
1 Graphes pondérés
Activité 1 :
Avec un ordinateur (p68)
1.1 Définitions
Un graphe pondéré (orien ou non) est un graphe étiqueté dont toutes les étiquettes sont des
nombres réels positifs ou nul. Chaque nombre est appelé poids.
Le poids d’une arête est le nombre positif qui lui est affectée.
Le poids d’une chaîne est la somme des poids des arêtes qui la composent.
Une plus petite courte chaîne entre deux sommets données est une chaîne de poids minimal
parmi toutes les chaînes reliant les deux sommets.
Définition 1.
1.2 (l’algorithme de DIJKSTRA)
Exemple : Soit le graphe étiqueté G ci-dessous
A
B
C
T
La chaîne B-A-C est bien une chaîne du graphe,
partant du sommet du coté gauche vers le sommet du
coté droit: ce mot est reconnu par le graphe.
La chaîne T-A-C n’est pas une chaîne orientée du
graphe, et ne peut donc pas être un mot reconnu par
ce graphe.
2 Algorithme de Dijkstra : Poids d’une chaîne et plus court chemin
Exemple : Soit le graphe pondéré G ci-dessous
A
B
C
D
E
3
5
1
2
2
2
3
Le poids de l’arête A-C est de 5.
Le poids de la chaîne A-B-C est de 3+1=4
Le chemin de A à E a plusieurs poids :
La chaîne A-B-C-E a un poids de 7.
A-B-C-D-E a un poids de 8.
A-B-D-E a un poids de 7.
A-B-D-C-E a un poids de 10.
A-C-E a un poids de 8.
A-C-D-E a un poids de 9.
A-C-B-D-E a un poids de 10.
On remarque qu’il y a deux courts chemins ex-
æquo de A à E (A-B-C-E) et (A-B-D-E ),
cette méthode Par tâtonnement est à éviter.
La méthode la plus utilisée pour trouver le plus
court chemin est l’algorithme de Dijkstra.
M K T ES Spemaths 20152016 1/2Ch3- Dijkstra
Algorithme de Dijkstra
L’algorithme de Dijkstra est un outil de détermination d’une plus courte chaîne d’un
graphe pondéré entre deux sommets (A et E dans l’exemple étudié).
Exemple
Méthode simplifiée pour appliquer l’algorithme
de Dijkstra.
A
B
C
D
E
3
5
1
2
2
2
3
1. Étape d’initialisation,
Dans un tableau, quand c’est possible, on place le sommet du départ A à la première colonne (début) et le
sommet d’arrivée E dans la dernière colonne (à la fin).
-Ligne 1 : On fixe le poids du sommet A à 0 (Sommet du départ)
- On marque provisoirement les autres sommets du poids par .
A B C D E Sommet fixé de son poids
0 ∞ ∞ A(0)
2. Étapes d’itérations.
- On marque provisoirement chaque sommet adjacent à A du poids de l’arête reliant A à ce sommet. Ces
sommets sont des successeurs de A.
-Ligne 2 : Pour aller du sommet A au sommet B, il faut un poids de 3. On le le note 3A.
De même, pour aller du sommet A au sommet C, il faut un poids de 5. On le le note 5A.
On repère le chemin le plus court, ici 3Aet on marque définitivement ce sommet B du poids 3à la fin de
cette ligne (B(3)).
-Ligne 3 : Le sommet B est relié ensuite aux sommets C et D. On additionne les poids pour aller à chaque
sommet. Ainsi, On obtient 4Bet 5B.
On repère le chemin le plus court, ici 4B, on barre 5Aet on marque définitivement ce sommet C du poids 4
à la fin de cette ligne (C(4)).
- On réitère le procédé tant que l’arrivée au sommet En’est pas fixée. On arrête l’itération lorsque tous
les sommets ont été traités.
A B C D E Sommet fixé
0∞ ∞ A(0)
|3A5A B(3)
| | 6 5Aet 4B5BC(4)
| | | 5Bet 66C7CD(5)
| | | | 7Cet 7DE(7)
Conclusion :
A la fin de chaque algorithme de Dijkstra, on définit le ou les chemins les plus courts.
Il y a deux chaînes courtes pour aller de A à E de même poids 7.
On lit à l’envers A(0) =B(3) =D(5) =E(7) , d’où la chaîne A - B - D - E
A(0) =B(3) =C(4) =E(7) , d’où la chaîne A - B - C - E
M K T ES Spemaths 20152016 2/2Ch3- Dijkstra
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !