Vous êtes sur la page 1sur 7

Problmes de cheminements optimaux dans un

rseau
Nizar El Hachemi

12 mai 2011

Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Introduction

Dans tous les algorithmes quon dcrira ci-dessous, n reprsente le


nombre de sommets et m le nombre darcs du graphe considr. On
a donc n = |V | et m = |A|.
On notera N + (x) lensemble des successeurs immdiats de x et
N (x) lensemble de ses prdcesseurs immdiats. De plus, on
notera dG+ (x) le nombre de sommets dans N + (x), et dG (x) le
nombre de sommets dans N (x).

Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Recherche des plus courts chemins du sommet 1 aux autres


sommets du graphe
Algorithme de Dijkstra
Hypothse : tous les arcs ont des longueurs non ngatives.
(1) S := {2, ..., n} ; (1) := 0 ; pour tout x 6= 1 faire


d1x si x N + (1)
(x) :=
sinon
+
(2) Dterminer x tel que (x) (y ) pour tout y dans S et poser
S = S {x}. Si S = alors STOP.
(3) Pour tout y dans S N + (x) faire
(y ) := min{(y ), (x) + dxy } et retourner (2).
Complxit est de O(n2 ). Pour retrouver les plus courts chemins, il
suffit de mmoriser le prdcesseur de x et y chaque fois (y ) est
modifi.
Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Recherche des plus courts chemins du sommet 1 aux autres


sommets du graphe

Algorithme de Dijkstra adapt dans le cas o toutes les longueurs


sont unitaires
(1) S := ; (1) := 0 pour tout x 6= 1 faire (x) := + ; k := 0 ;
(2) Dterminer Sk = {x : (x) = k} ; S := S Sk . Si S = V
STOP.
(3) k := k + 1 ; pour tout arc (x,y) tel que x S et y
/ S poser
(y ) := k ; retourner (2).
Complxit : O(m)

Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Recherche des plus courts chemins du sommet 1 aux autres


sommets du graphe
Algorithme de Moore
Hypothse : les longueurs peuvent tre ngatives, mais il nexiste
pas de circuit de longueur ngative.
(1) S := {2, ..., n} ; (1) := 0 ; pour tout x 6= 1 faire


d1x si x N + (1)
(x) :=
sinon
+
(2) Dterminer x tel que (x) (y ) pour tout y dans S et poser
S = S {x}.
(3) Pour tout y dans N + (x) faire := min{(y ), (x) + dxy }. Si
< (y ) alors poser (y ) := et rajouter y dans S sil ne se
trouve pas dj. Si S = alors STOP sinon aller (2).
Lalgorithme est une extension naturelle de lalgorithme de
Disjkstra au cas o des longueurs peuvent tre ngatives.
Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Recherche des plus courts chemins du sommet 1 aux autres


sommets du graphe

Algorithme de Bellman
Hypothse : aucune (cest dire que les longueurs peuvent tre
ngatives, et il peut y avoir des circuits de longueur ngative)
(1) 0 (1) := 0 ; 0 (x) := + pour tout x 6= 1 ; k := 1 ;
(2) k (1) := 0 ;
k (x) := min{ k1 (x), min{ k1 (y ) + dyx }y N (x)}
(3) Si k (x) = k1 (x) pour tout x STOP. Si k n 1 poser
k := k + 1 et aller (2). Si k = n STOP : il existe un circuit de
longueur ngative
Complxit : O(mn)

Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Recherche des plus courts chemins du sommet 1 aux autres


sommets du graphe

Algorithme de Ford
Hypothse : aucune sur les longueurs des arcs (cest--dire que les
longueurs peuvent tre ngatives). Par contre, on sait quil nexiste
pas de circuits de longueur ngative.
(1) (1) := 0 ; (x) := + pour tout x 6= 1 ;
(2) Pour x = 2 n faire
(x) := min{(x), min{(y ) + dyx }y N (x)}.
(3) Si (x) a t modifi pour au moins un sommet x, alors
retourner (2), sinon STOP.
Remarque : On a de la flxibilit sur la numrotation des sommets
considre ltape 2.

Nizar El Hachemi

Problmes de cheminements optimaux dans un rseau

Vous aimerez peut-être aussi