Algorithme de DIJKSTRA Application sur un Graphe orient










- Slides: 10
Algorithme de DIJKSTRA Application sur un Graphe orienté
Avant de commencer l’algorithme • Dessinez un tableau de 9 colonnes et 8 lignes. • Sur la première ligne, écrivez les sommets du graphe, en allant du sommet de départ A vers le sommet d’arrivée G. • Appelez la dernière colonne : «Sommet de poids minimal dans la ligne »
1ère Etape : Initialisation • Sur la 2ème ligne du tableau, écrivez les marques (poids) des sommets : 0 pour le sommet de départ A, et le symbole ∞ pour les autres sommets. Dans la colonne « Sommet de poids minimal » indiquez le sommet de poids minimal A(0). • Le poids du sommet A est définitivement fixé. Attention : Le passage par un sommet de poids définitivement fixé, est impossible jusqu’à la fin de l’algorithme.
2ème étape : Itérations Questions • Quels sont les sommets adjacents à A ? Quels sont les poids des arrêtes reliant A à ces sommets ? Réponses • B et C sont les sommets adjacents à A, les poids des arrêtes reliant ces deux sommets à A sont : 34 et 25. Tableau • • Dans la 3ème ligne marquez : « 34, A » pour le sommet B et « 25, A » pour le sommet C. Le poids minimum de cette ligne est ainsi « 25 » . Dans la colonne « sommet de poids minimal » indiquez « C(25) » (le poids de C est définitivement fixé). Pour les sommets non adjacents à A on remet le symbole ∞.
4ème Ligne Questions • Quels sont les sommets adjacents à C ? Quels sont les poids des chaines reliant les sommets A , C et les sommets adjacents à C? Réponses • Sommets adjacents à C : B, D et F • Le poids de la chaine A—C—B est : 25+12=37, ce poids est supérieur au poids de la chaine A—B ( qui est de 34). Donc on maintient la marque « 34, A » dans la cellule du sommet B. • Le poids de la chaine A—C—D est : 25+24=49. Indiquez « 49, C » dans la cellule. • Le poids de la chaine A—C—F est : 25+37=62. Indiquez « 62, C » dans la cellule. Le tableau • Remettez le symbole ∞ aux sommets non adjacents à C. Le sommet qui a le poids minimum est B, dans la colonne « sommet de poids minimal » indiquez « B(34) » (le poids de B est définitivement fixé). On obtient le tableau suivant:
5ème Ligne Questions • Quels sont les sommets adjacents à B? Quels sont les poids des chaines reliant les sommets A, B et les sommets adjacents à B? Réponses • Sommets adjacents à B : D et E. • Le poids de la chaine A—B—D est 34+15=49 • Le poids de la chaine A—B—E est 34+20=54 Tableau • Les chaine A—B—D et A—C—D ont le même poids (49), on peut choisir l’un ou l’autre. Indiquez « 49, B » dans la colonne D. • Dans la colonne E indiquez « 54, B» et reportez le poids de « 62, C» au sommet F et ∞ aux sommets non adjacents à B. • Le poids minimum est celui de la chaine A—B—D donc indiquez «D(49)» dans la colonne « sommet de poids minimal » (le poids de D est fixé définitivement).
6ème Ligne Questions : Quels sont les sommets adjacents à D ? Quels sont les poids des chaines reliant les sommets A, B, D et les sommets adjacents à D? Réponses: • E et F sont les sommets adjacents à D. • Le poids de la chaine A—B—D—E est 49+13=62, ce poids est supérieur au poids de la chaine A—B—E. Le poids de la chaine A—B—D—F est 60, ce poids est inferieur à celui de la chaine A—C—F donc on garde le poids minimal (60). Tableau: Dans la colonne E reportez la marque « 54, B » . Dans la colonne F indiquez la marque « 60, D » . Dans la colonne « sommet de poids minimal» indiquez le sommet de poids minimal qui est « E(54) » (le poids de E est définitivement fixé).
7ème Ligne Questions : quels sont les sommet adjacents au sommet E? quels sont les poids des chaines reliant A, B, D, E et les sommets adjacents à E? Réponse: G est le seul sommet adjacent à E. La chaine A—B—D—E—G a pour poids 54+15=69. Tableau: • Dans la colonne F reportez la marque « 60, D » . Dans la colonne G indiquez la marque « 69, E » . Sur cette ligne, le sommet qui a le poids minimal est F. Indiquez «F(60)» dans la colonne! « sommet de poids minimal » (F est définitivement fixé).
8ème ligne Questions: • Quels sont les sommets adjacents à F ? quels sont les poids des chaines reliant A, B, D, F et les sommets adjacents à F? Réponses: G est le seul sommet adjacent à F. La chaine A—B—D—F—G a pour poids 60+16=76. Ce poids est supérieur à celui trouvé dans la ligne précédente, colonne G. Tableau • Dans la colonne G reportez la marque « 69, E » . Sur cette ligne, le sommet qui a le poids minimal est G. Indiquez G(69) dans la colonne « sommet de poids minimal » (le poids de G est définitivement fixé). Les poids de tous les sommets sont fixés donc le tableau est terminé.
3ème étape : Lecture du chemin le plus court • Pour lire le chemin le plus court, on doit remonter la chaine en partant du point d’arrivée G. Ø Pour arriver à G on vient de E Ø Pour arriver à E on vient de B Ø Pour arriver à B on vient de A. • Le chemin le plus court est : A—> B—> E —> G le poids de cette chaine est la somme des poids des arêtes qui la composent : 34+20+15=69.