
176 ______________________________________________________ Algorithmes de graphes
Dans une première partie, nous définissons les principaux problèmes de chemins optimaux,
nous précisons la distinction entre algorithmes à fixation et à correction d’étiquettes, puis
nous donnons la liste des principaux algorithmes. Nous terminons cette partie par quelques
exemples d’utilisation. La seconde partie présente un ensemble choisi d’algorithmes. Elle
est consacrée aux problèmes de loin les plus fréquents, où le coût d’un chemin, à optimiser,
est la somme des coûts de ses arcs. Pour ce groupe de problèmes, nous présentons :
des algorithmes à fixation d’étiquettes ;
des algorithmes à correction d’étiquettes.
Le chapitre se conclut par deux applications. La première concerne les problèmes
d’ordonnancement à contraintes de précédence, popularisés par la gestion de projets. La
seconde est une évaluation comparative des algorithmes du chapitre sur des graphes de
tailles et densités variables.
6.2 Les problèmes de chemins optimaux
6.2.1 Les grands types de problèmes
Considérons un graphe orienté valué G = (X,A,W). X désigne un ensemble de N sommets
(ou nœuds) et A un ensemble de M arcs. W(i,j), aussi noté Wij, est la valuation (aussi
appelée poids ou coût) de l’arc (i,j), par exemple une distance, un coût de transport, ou un
temps de parcours.
Pour la fonction économique la plus répandue, le coût d’un chemin entre deux sommets est
la somme des coûts de ses arcs. Les problèmes associés consistent à calculer des chemins
de coût minimal (en abrégé chemin minimaux, ou plus courts chemins). Ils ont un sens si G
n’a pas de circuit de coût négatif, sinon on pourrait diminuer infiniment le coût d’un
chemin en tournant dans un tel circuit, appelé pour cette raison circuit absorbant. Bien
entendu, on peut aussi chercher des chemins de valeur maximale, problème n’ayant de sens
qu’en l’absence de circuits positifs.
En l’absence de circuit absorbant, on peut restreindre la recherche des plus courts chemins
aux seuls chemins élémentaires, c’est-à-dire ne passant pas deux fois par un même sommet.
En effet, si un chemin emprunte un circuit, on peut enlever la portion passant par le circuit
sans augmenter le coût. Le problème de recherche d’un chemin optimal en présence de
circuits absorbants existe, mais il est NP-difficile [Gare79].
Il existe d’autres fonctions économiques que la somme des coûts des arcs, mais elles sont
moins répandues dans les applications. Ainsi, si on interprète les valuations comme des
capacités, on peut définir la capacité d’un chemin comme le minimum des valeurs de ses
arcs et chercher des chemins de capacité maximale [Gon95]. On peut aussi s’intéresser à la
valeur moyenne d’un chemin, somme des coûts de ses arcs divisée par le nombre d’arcs, et
calculer un chemin de valeur moyenne minimale [Gon95,Ahu93].
Nous étudions dans ce chapitre uniquement les problèmes où le coût d’un chemin est la
somme des coûts de ses arcs. La littérature distingue trois types de problèmes, que nous
notons A, B et C :