Document

publicité
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
Téléchargement