LE PROBLEME DU PLUS COURT CHEMIN Nazih Abderrazzak Gadhi La recherche d'un plus "court" chemin d'un point à un autre est un problème de la vie quotidienne. La valuation des arêtes ( arcs ) du réseau peut représenter des coûts de transit, des distances kilométriques, les durées nécessaire de voyage entre villes,... Ils apparaissent aussi en sous-problèmes en optimisation combinatoires, notamment les flots dans les graphes et les ordonnancements. Tout ceci a motivé très tôt la recherche d´algorithmes efficaces. Le problème du plus court chemin Nazih Abderrazzak Gadhi 2 La littérature distingue trois types de problèmes de plus courts chemins : Problème 1 : Recherche du plus court chemin d´un sommet origine (source ) s a un sommet destination (puit) t. Problème 2 : Recherche des plus courts chemins d´un sommet origine (source ) s à tous les autres sommets du graphe. Problème 3 : Recherche des plus courts chemins entre toutes les paires ordonnées (s,t) de sommets du graphe. Le problème du plus court chemin Nazih Abderrazzak Gadhi 3 Notions importantes Graphe valué Un graphe valué est un graphe auquel on associe à chaque arc un nombre réel appelé longueur de l'arc. On notera l(x,y) la longueur de l'arc (x,y). Le problème du plus court chemin Nazih Abderrazzak Gadhi 4 Remarque Le nombre réel associé à chaque arc peut représenter bien autre chose qu'une longueur au sens géométrique du terme. Par exemple, un temps, un coût, ... c'est pourquoi il peut être négatif. Dans certains ouvrages, on utilise le mot "poids" plutôt que "longueur". Longueur d'un chemin Etant donné un chemin d'un sommet x à un sommet y, on appelle longueur de ce chemin, la somme des longueurs des arcs qui le constituent. Le problème du plus court chemin Nazih Abderrazzak Gadhi 5 Racine d´un graphe Etant donné un graphe valué, on dit qu´un sommet s est une racine si tous les sommets de ce graphe sont accessibles à partir de s. Les sommets accessibles à partir d´un sommet s sont des descendants de s. Le sommet "c" n'est pas descendant du sommet s. Le problème du plus court chemin Nazih Abderrazzak Gadhi 6 Remarque Pour que l´on puisse être sur de trouver le plus court chemin entre tous les sommets, le graphe doit être connexe. Le graphe suivant n´est pas connexe Le problème du plus court chemin Nazih Abderrazzak Gadhi 7 Principe d´optimalité de Bellman Tout plus court chemin est formé de plus courts chemins. Si C est un plus court chemin de s à t et si u appartient à ce plus court chemin, alors les sous-chemins de s à u et de u à t sont également des plus courts chemins. Le problème du plus court chemin Nazih Abderrazzak Gadhi 8 Algorithme de MOORE-DIJKSTRA Données nécessaires à l´algorithme Un graphe dont les arcs sont valués par des nombres positifs. Un sommet s racine du graphe, à partir duquel on veut déterminer les plus courts chemins aux autres sommets. Pour chaque sommet x de X, l’ensemble succ(x) désigne les successeurs de x. Initialisation de l´algorithme Pour tous les sommets x s dans X, poser : Initialiser deux ensembles S et E par : Le problème du plus court chemin Nazih Abderrazzak Gadhi (s)= 0 et (x)= +infini S = X et E = ø 9 Algorithme de MOORE-DIJKSTRA Corps de l´algorithme Tant que S ø , faire : Choisir dans S le sommet x correspondant au (x) minimum. Actualiser E et S : mettre x dans E et l´enlever de S. Examen de tous les successeurs y de x qui sont dans S : Pour tout y Fin Le problème du plus court chemin succ(x) S , si (y) > (x) +l(x,y) alors poser : pére(y) = x et (y) = (x) +l(x,y) Nazih Abderrazzak Gadhi 10 Algorithme de MOORE-DIJKSTRA Les résultats Pour chaque sommet x, (x) est égal à la longueur d'un plus court chemin de s à x. pére(y) = x indique que le sommet x est le prédécesseur de y sur le plus court chemin de s à y. Le problème du plus court chemin Nazih Abderrazzak Gadhi 11 Analyse et explication de l´Algorithme de MOORE-DIJKSTRA L'algorithme comporte une phase d'initialisation A chaque sommet on attribue une étiquette ( une marque ), notée (x) . Cette étiquette vaut 0 pour le point de départ s et infini pour les autres sommets. Le corps de l'algorithme consiste à examiner les sommets les uns après les autres, dans un ordre donné. On choisit le sommet x ayant la plus petite étiquette (x) et on le sort de l'ensemble S des sommets à examiner, pour le mettre dans l'ensemble E des sommets examinés. Le problème du plus court chemin Nazih Abderrazzak Gadhi 12 Analyse et explication de l´Algorithme de MOORE-DIJKSTRA Une fois un sommet x choisi, on examine tous ses successeurs qui sont dans S : pour chaque successeur y de x, on compare (y) avec (x) +l(x,y) où l(x,y) est la longueur de l'arc reliant x à y. Selon le résultat de cette comparaison, on change ou non (y). Si l'étiquette (y) est changée, on enregistre qu'elle a été obtenue à partir de x. On recommence tant qu'il reste des sommets à examiner. Le problème du plus court chemin Nazih Abderrazzak Gadhi 13 Analyse et explication de l´Algorithme de MOORE-DIJKSTRA Remarque Dès qu'un sommet x est choisi et mis dans l'ensemble E, sa marque n'est plus modifiée; elle est égale à la longueur d'un plus court chemin du sommet de départ s à ce sommet x. On dispose ainsi des informations pour déterminer le plus court chemin de s à ce sommet. Le problème du plus court chemin Nazih Abderrazzak Gadhi 14 Exemple d´application On considère le graphe valué orienté suivant : Cherchons les plus courts chemins entre s et les autres sommets du graphe. Le problème du plus court chemin Nazih Abderrazzak Gadhi 15 S Choix de x dans S s a b c d e 0(s) + + 1(s) + + + + s ------ 5(s) Itération 2 sabcd e abcde + + c ------ 3(c) 3(c) ----- 6(c) + Itération 3 abde a ------ ----- 3(c) ----- 5(a) + Itération 4 bde b ------ ----- ----- ----- 4(b) 7(b) Itération 5 de d ------ ----- ----- ----- ----- 6(d) Itération 6 e e ------ ----- ----- ----- ----- ---- Itération 1 Entre parenthèses, on a noté le nom du père (sommet qui a permis de lui attribuer sa marque). Le problème du plus court chemin Nazih Abderrazzak Gadhi 16 Par exemple, à l'itération 3, les sommets s et c sont définitivement étiquetés (marqués). On choisit parmi les sommets restant dans S un sommet de marque minimale : a et b ont tous deux comme marque 3, on retient par exemple a. Le problème du plus court chemin Nazih Abderrazzak Gadhi 17 On examine alors ses 2 successeurs b et d : La marque de b n'a pas besoin d'être changée : (b) = 3 < (a) +l(a,b) = 3+1 En revanche, on a : (d) = 6 > (a) +l(a,d) = 3+2 On pose donc (d) = 5 et on retient que le sommet d a été marqué à partir de a. Le problème du plus court chemin Nazih Abderrazzak Gadhi 18 Détermination des plus courts chemins Les étiquettes fournissent la longueur des plus courts chemins de s aux différents sommets. Pour déterminer les plus courts chemins eux-même, on remonte de "père" en père". par exemple le sommet e a pour père d, qui a pour père b, qui a pour père c, qui a pour père s. On en déduit que le plus court chemin de s à e est le chemin s c b d e de longueur 6. Le problème du plus court chemin Nazih Abderrazzak Gadhi 19 Les plus courts chemins sont représentés en gras sur le graphe ci-dessous. Le problème du plus court chemin Nazih Abderrazzak Gadhi 20 Remarque Considérons le graphe suivant dans lequel l'arc (b,e) a maintenant pour longueur 3. Le problème du plus court chemin Nazih Abderrazzak Gadhi 21 Dans ce cas de figure, le sommet e possède deux pères, puisqu’on a simultanément : (e) = (b) +l(b,e) = 6 et (e) = (d) +l(d,e) = 6 On a plusieurs plus courts chemins de Le problème du plus court chemin sàe: Nazih Abderrazzak Gadhi s c b e et s c b d e. 22