Académique Documents
Professionnel Documents
Culture Documents
Algorithm e Dijk Stra
Algorithm e Dijk Stra
Présentant de grands avantages de rapidité, cet algorithme ne permet que la recherche des chemins
de longueur minimale et pour des graphes pondérés par des poids positifs.
Donnons cet algorithme, autorisant la recherche d’un chemin minimal entre deux sommets I
(initial) et F (final). Il se décompose en quatre phases, comme suit :
Phase 2 : initialisation
- Attribuer au sommet I, le couple (0, I) ;
- Attribuer à chaque sommet adjacent à I, le couple (poids de l’arc le reliant à I, I) ;
- Attribuer aux autres sommets, le couple (+ ∞, ?) ;
Phase 3 : fonctionnement
Tant que tous les sommets ne sont pas dans Σ, ou que le sommet F n’est pas affecté de la plus
petite distance provisoire :
- Choisir parmi les sommets non placés dans Σ, un dont la distance provisoire est minimale :
appelons-le S ;
- Mettre S dans Σ ;
- Pour chacun des sommets Yi qui lui sont adjacents et qui ne sont pas dans Σ :
• Calculer s = dist(S) + poids de l’arc [S, Yi ] ;
• Si s est inférieur à la distance provisoire de Yi , attribuer à Yi le couple (s, S);
(ainsi, dist( Yi ) := min{dist(S) + poids de l’arc [S, Yi ] , dist( Yi )})
Phase 4 : conclusion
- La longueur du plus court chemin de I à F est alors dist(F) ;
- La chaîne de poids minimum se lit « à l’envers », de F à chacun de ses prédécesseurs
successifs.
Le principe est donc le suivant : on affecte provisoirement le poids maximal (+ ∞) à tous les
sommets, sauf pour le sommet initial de poids 0 et ses successeurs (recevant le poids de l’arc les
reliant à I) ; tant que c’est possible, on diminue les poids provisoires qui deviennent définitifs (un
sommet affecté d’un poids définitif est dit marqué) lorsque leur diminution devient impossible.
Remarque : il se peut que l’algorithme se termine avant que tous les sommets ne soient marqués
(cf. l’alternative du début de la phase 3) ; cela voudra dire qu’aucun des chemins passant par ces
sommets non marqués ne sera un chemin de longueur minimale.
I G
6 3 1
2
1 C M
5 3 5
A 12
4 H
8
4 3
1 D 9
2 N F
4 2 6
B 2 K
1
1
E 6
4 7 P
I A B C D E G H K L M N P F Σ
(0,I) (1,I) (+∞, ?) (6,I) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) I
(2,A) (5,A) A
(4,B) B
(6,D) D
(9,C) C
(10,E) E
(11,H) (14,H) (17,H) H
(16,L) (17,L) L
(12,G) G
(24,M) M
K
(23,P) P
N
F