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 Réponses 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.