SALMA LARGO & KHALID ELMASRY Page 2
Introduction :
Un problème de plus court chemin est un problème algorithmique de la théorie des
graphes. L'objectif est de calculer un chemin entre des sommets d'un graphe qui
minimise ou maximise une certaine fonction.
Il existe de nombreuses variantes de ce problème. On suppose donné un graphe fini,
orienté ou non selon les cas ; de plus, chaque arc ou arête possède une valeur qui peut
être un poids ou une longueur. Un chemin le plus court entre deux nœuds donnés est un
chemin qui minimise la somme des valeurs des arcs traversés. Pour calculer un plus court
chemin, il existe de nombreux algorithmes, selon la nature des valeurs et d'éventuelles
contraintes supplémentaires. Dans de nombreux cas, il existe des algorithmes
de complexité en temps polynomiale, comme l'algorithme de Dijkstra dans des graphes
avec poids positifs. En revanche, lorsqu'on ajoute des contraintes supplémentaires
comme des fenêtres de temps, le problème peut devenir NP-difficile.
L'exemple d'application le plus courant est de trouver le trajet le plus court entre deux
agglomérations. Ce problème d'apparence simple, puisqu'il s'agit simplement
d'additionner les distances kilométriques, devient plus compliqué si on veut en déduire
le temps de parcours : l'intensité du trafic, le temps de traversée des agglomérations,
sont des contraintes additionnelles. La recherche de chemin, ou pathfinding, est au
contraire un problème de l'intelligence artificielle qui se rattache à la planification. Il
consiste à trouver comment se déplacer dans un environnement entre un point de départ
et un point d'arrivée en prenant en compte différentes contraintes. Il devient un
problème complexe lorsque l'on cherche à prendre en compte diverses contraintes
additionnelles (exécution en temps réel, présence d'incertitudes, contrainte de
ressources, environnement évolutif, etc.).
Définition du problème :
On peut s'intéresser à la recherche d'un plus court chemin dans un graphe :
1 - entre deux sommets donnés
2 - d'un sommet à tous les autres
3 - entre tous les couples de sommets
Le problème 2 n'est pas plus difficile à résoudre que le problème 1 et le problème 3
peut être résolu par application du problème 2 à tous les sommets. On s'intéresse donc
au problème 2.