Dr C. Bachtarzi Filière : L2 Socle commun informatique
18
Si l’on considère un problème de type P1, on a le choix entre Les algorithmes de
Dijkstra et de Bellman–Ford. Lorsque le graphe ne comporte pas de cycle, on utilise
généralement l’algorithme de Bellman–Ford. Lorsque les longueurs des arcs sont toutes
positives, on utilise l’algorithme de Djikstra.
Pour les problèmes de type P2, on a également le choix entre deux algorithmes :
l’algorithme de Dantzig et celui de Floyd-Warshall qui sont des algorithmes matriciels
applicables quelque soient les longueurs des arcs.
4.1 Résolution de problèmes de type P1
Dans cette section sont présentés les algorithmes suivants : l’algorithme de Djikstra
et l’algorithme de Bellman-Ford.
4.1.1 Algorithme de Djikstra
Comme l’algorithme de Bellman-Ford, il utilise le principe de la programmation
dynamique. Mais contrairement à ce dernier, l'algorithme de Djikstra ne permet pas de
considérer les arcs négatifs, car une fois qu’un sommet est marqué on ne peut changer ce
marquage lors des itérations suivantes.
!
"
#$ #%%% %&& '#'(!
)
*
+
"
),+
($ -%!
./ 01 234"
#5
6
+
)
*+
($ & %788
9:
:-%8
;<
#)=>#
./ 01
8# %$
-%!
)
?
2#4+-%#
)
?
2 ##4+-%(& @& %
7%%A
B#A
C
<
"
A5=
"
A>#D #A+
<%
<-%
EF!%
&& %788
"
#%% %788
<