
Algorithme 1 Algorithme de Dijsktra
Entr´ees : Nnombre de sommets du graphe, cmatrice des coˆuts du graphe, dmatrice des poids du
graphe, S,T
1: pour j= 1, N faire
2: l(j) = c1j, p(j)=0
3: si j > 1et c1j<∞alors
4: p(j)=1
5: fin de test si
6: fin de boucle pour
7: while Tn’est pas vide faire
8: Choisir idans Ttel que l(i) minimum
9: Retirer ide Tet l’ajouter `a S
10: pour chaque successeur j∈Tde ifaire
11: si l(j)> l(i) + d(i, j)alors
12: l(j) = l(i) + d(i, j), p(j) = i
13: fin de test si
14: fin de boucle pour
15: end while
Sorties : l,p
1.2.3 Exemple
1
15
2
4
5
7
3
3
2
4
10
3
5
Initialisation : S={1},T={2,3,4,5},l={0,15,∞,∞,4},p={0,1,0,0,1}
1`ere it´eration : i= 5 car l(5) = min(15,∞,∞,4) = 4, S={1,5},T={2,3,4}
les successeurs de 5 dans Tsont 3 et 4
l(3) prend la nouvelle valeur min(∞, l(5) + d(5,3)) = min(∞,4 + 7) = 11, p(3) = 5
l(4) prend la nouvelle valeur min(∞, l(5) + d(5,4)) = 9, p(4) = 5
d’o`u les nouveaux vecteurs l={0,15,11,9,4}et p={0,1,5,5,1}
2`eme it´eration : i= 4, l(4) = 9, S={1,5,4},T={2,3}
le seul successeur de 4 dans Test 2
l(2) prend la nouvelle valeur min(15, l(4) + d(4,2)) = min(15,9 + 3) = 12, p(2) = 4
d’o`u les nouveaux vecteurs l={0,12,11,9,4}et p={0,4,5,5,1}
3`eme it´eration : i= 3, l(3) = 11, S={1,5,4,3},T={2}
le seul successeur de 3 dans Test 2
l(2) garde sa valeur car min(12, l(3) + d(3,2)) = min(12,11 + 3) = 12
d’o`u les vecteurs inchang´es l={0,12,11,9,4}et p={0,4,5,5,1}
4`eme it´eration ; i= 2, l(2) = 12, S={1,5,4,3,2},T=
FIN : l={0,12,11,9,4},p={0,4,5,5,1}
3