Vous êtes sur la page 1sur 27

Problme du plus

court chemin

H. Bouchriha Anne universitaire 2007/2008 1


Longueur dun arc
Soit G=(X,U) ;
u=(i,j)U l(u) ou lij appel longueur
de larc u.
On dit alors que le graphe G est valu par les
longueurs l(u).
La longueur dun chemin joignant le
sommet i au sommet j est donne par :
l()= l ( u)
u

H. Bouchriha Anne universitaire 2007/2008 2


Problme du plus court chemin
(PCC)
Dfinition :
Le problme de plus court chemin entre
deux sommets i et j consiste dterminer
un chemin de i j, (i,j), de longueur
minimale.

H. Bouchriha Anne universitaire 2007/2008 3


Remarque
La longueur dun chemin comprenant un circuit
de longueur strictement ngative est non
borne (il suffit demprunter ce circuit une infinit
de fois)
Ce type de circuit est appel circuit absorbant.
Labsence dun circuit absorbant constitue une
condition ncessaire lexistence dun chemin
de longueur minimale.

H. Bouchriha Anne universitaire 2007/2008 4


Modlisation par
PCC

H. Bouchriha Anne universitaire 2007/2008 5


Stratgie de remplacement
dquipements

Une mine a une dure totale dexploitation de T annes.


Elle utilise un quipement quelle a acquis la date i=0
(quipement neuf).
- Au dbut de chaque anne i
- Soit elle garde lquipement en service pendant [i,i+1]
- Revendre cet quipement un prix de rcupration de v(x) avec
x est son ge et acheter un quipement neuf au prix p(i)
- Le cot dune anne de fonctionnement r(x) dpend de
son ge.
- Lquipement doit tre vendu la date T
Dterminer la politique de remplacement de lquipement cot
minimal

H. Bouchriha Anne universitaire 2007/2008 6


Dtermination dune politique optimale
de remplacement dquipements

0 1 2 T

Un sommet est associ chaque date (T+1 sommets)


Un arc relie deux sommets i et j Dcision dacheter un
quipement la date i et le vendre j (j>i)
La longueur dun arc = (cot dachat + cot de fonctionnement
prix de vente) ji
l ij p( i ) r ( s ) v ( j i )
s 1
Politique optimale de remplacement Plus court chemin de 0 T
H. Bouchriha Anne universitaire 2007/2008 7
Optimisation des achats
Le service dachat doit assurer lapprovisionnement
pendant T priodes pour raliser un programme de
production
Le prix dachat p(t) dpend de la priode
dapprovisionnement t.
Afin de tirer profit de la variation des prix, lentreprise
peut :
- acheter la matire en t et constituer des stocks. Le cot
dunitaire de stockage est h(t) en la priode t.
- reporter sa demande moyennant une pnalit de retard. p est la
pnalit de reporter une unit de la demande pendant une
priode
Dterminer le plan dapprovisionnement cot minimal
H. Bouchriha Anne universitaire 2007/2008 8
Dtermination dun plan dapprovisionnement

S
p(4) Politique optimale
p(1)
p(2) p(3) dapprovisionnement
Plus court chemin
1 2 3 T entre S et tous les
h(1) h(2) sommets du graphe
p p p

X = S {t, t =1,.., T} (T+1 sommets)


Un arc (S,t) correspond la dcision dacheter en la priode t. l st =
p(t)
Tout sommet t (t, t =1,.., T-1) est reli t+1. larc (t,t+1) correspond
la dcision de stocker pendant la priode t et a une longueur de
h(t)
Tout sommet t (t, t =2,.., T) est reli t-1. larc (t,t-1) correspond la
dcision de reporter la demande de la priode t la priode t-1 et a
une longueur de p.
H. Bouchriha Anne universitaire 2007/2008 9
Algorithmes de
rsolution

H. Bouchriha Anne universitaire 2007/2008 10


Principe doptimalit de Bellman
Thorme
Soit un chemin entre i et j de longueur optimale.
Toute partie 1 de reliant un sommet h un
sommet l est alors de longueur optimale.

Le chemin optimal est compos de sous-chemins


optimaux

H. Bouchriha Anne universitaire 2007/2008 11


Illustration
2 3

4 5

(5) : La longueur du plus court chemin


entre 1 et 5
= min {(2) + l25 ; (3) + l35 ; (4) + l45}

H. Bouchriha Anne universitaire 2007/2008 12


Quelques algorithmes de recherche
de PCC
Les algorithmes de rsolution du problme de recherche
du plus court chemin seront diffrents suivant :

les proprits du graphe :


graphe valu par des longueurs positives,
graphe valu par des longueurs de signes quelconques,
graphe sans circuit,

le problme considr :
recherche du plus court chemin dun sommet un autre,
recherche du plus court chemin dun sommet tous les autres,
recherche du plus court chemin entre tous les couples de sommets.

H. Bouchriha Anne universitaire 2007/2008 13


Cas dun graphe valu par des
longueurs positives
Algorithme de Dijkstra-Moore (1959)
Recherche du plus court chemin partant dun sommet
(not 1) tous les autres.
On dsigne par (x) : la longueur du plus court
chemin entre le sommet 1 et le sommet x
n-1 itrations (n tant lordre du graphe G=(X,U))
Les sommets sont partitionns en deux sous-ensembles
P : ensemble de sommets ayant une tiquette permanente
T = X-P : ensemble de sommets ayant une tiquette temporaire
chaque itration un sommet est transfr de T vers P
Le calcul des plus courtes distances se fait de proche en
proche par ajustements successifs. 14
H. Bouchriha Anne universitaire 2007/2008
Algorithme de Dijkstra-Moore
(1959)
Etape 1 : Initialisation
(1)=0
P={1} (P dsigne le prdcesseur dun sommet sur le
chemin)
T={2, , N}

i T, (i)= l1i si (1,i) U


= sinon
Etape 2 :
Slectionner j T tel que (j)= miniT (i)
Faire : T=T\{j}
P=P{j}
Si T = alors fin sinon aller ltape 3.
H. Bouchriha Anne universitaire 2007/2008 15
Algorithme de Dijkstra-Moore
(suite)
Etape 3:
i T tel que (j,i)U
faire : (i) min ((i), (j)+ lji)
(Pricipe doptimalit de Bellman)
Aller ltape 2.

H. Bouchriha Anne universitaire 2007/2008 16


Exemple
Une entreprise doit distribuer
la marchandise ses clients 4
situs aux nuds 2 6. La 40 50
20
distance parcourir dun point 2 5
un autre et le sens de 70 10
circulation sont indiqus dans 1 50 30
20
la figure ci-contre.
10
3 6
40
Dterminer les plus courts
chemins entre 1 et 2 et
entre 1 et 6 ?
H. Bouchriha Anne universitaire 2007/2008 17
Etape 1 : Etape 2 :
(1)=0, (2)=70, (3)=10, (4)= j=6
(5)= (6)= P={1, 3,5,6}, T={2, 4}
P={1}, T={2, 3, 4, 5, 6} Etape 2 :
Etape 2 :
j=2
j=3 P={1, 3,5,6,2}, T={4}
P={1, 3}, T={2, 4, 5, 6} Etape 3 :
Etape 3 :
(4)=min{30+50,50+40} = 80
(2)=min{70, 10+50} = 60 Etape 2 :
(5)=min{, 10+20} = 30 j=4
(6)=min{, 10+40} = 50 P={1, 3,5,6,2,4}, T=
Etape 2 :
j=5 Fin de lalgorithme
P={1, 3,5}, T={2, 4, 6}
Etape 3 : Le plus court chemin de 1 2
(2)=min{60, 30+20}= 50 est 1, 3, 5, 2 de longueur 50.
(4)=min{, 30+50} = 80 Le plus court chemin de 1 6
(6)=min{50, 30+30} = 50 est 1, 3, 6 de longueur 50.
H. Bouchriha Anne universitaire 2007/2008 18
Cas dun graphe valu par des
longueurs de signes quelconques
Algorithme de Bellman
Graphe ayant des cots quelconques
Recherche du plus court chemin entre un
sommet et tous les autres
Il y a convergence en absence de circuit
absorbant

Processus itratif : Dterminer le plus court chemin


de proche en proche en calculant chaque itration
le plus court chemin un sommet donn i en utilisant
les plus courts chemins tous les prdcesseurs de i
H. Bouchriha Anne universitaire 2007/2008 19
Algorithme de Bellman
Soit G = (X,U) un graphe dordre N
Etape 1 : Initialisation
m=1
1(1)=0
j # 1 1 (j) = l1j si (1,j) U
= + sinon

Etape 2 :
Tant que {m N-1} ou { il existe j / m+1 (j) < m (j) } Faire
Dbut
m+1 (j) = min (m (j) , min k#j { m (k) + lkj } )
m=m+1
Fin

Remarque : Lalgorithme converge en N-1 itrations.


Si m=N et il existe j / m (j) < m-1 (j) il existe un circuit de longueur ngative
(circuit absorbant)

H. Bouchriha Anne universitaire 2007/2008 20


Exemple
Un agent commercial se trouvant
la ville S dcide de participer une
foire la ville T. Pour cela, il doit
emprunter le rseau routier donn
par la figure ci-contre. Lagent
commercial a estim le cot de son A
7
D
transport ainsi que les bnfices 2 -8 4 5
rapportes par la vente de produits -5
aux diffrentes villes intermdiaires. S B -1 T
Sur le graphe, les dpenses ont t 4 1 3
reprsentes par des longueurs 7
C E
positives ; les bnfices raliss ont 4
t reprsents par des longueurs
ngatives.

Trouver le chemin emprunt par


lagent permettant de minimiser ses
cots nets
H. Bouchriha Anne universitaire 2007/2008 21
Application
Itration O A B C D E T
1 0/O 2/O -5/O 4/O + + +
2 0/O 2/O -6/A 4/O -1/B -2/B +
3 0/O 2/O -6/A 4/O -3/E -3/B 4/D
4 0/O 2/O -6/A 4/O -4/E -3/B 2/D
5 0/O 2/O -6/A 4/O -4/E -3/B 1/D

Le chemin le plus court est O A B E D T de cot = 1


H. Bouchriha Anne universitaire 2007/2008 22
Cas dun graphe sans circuit
Dans un graphe sans circuit, il existe au moins un
sommet ne possdant aucun prcdent, sinon G
possderait un circuit. Ce sommet est appel racine du
graphe. Soit 1 ce sommet.

Dans un graphe sans circuit, il existe au moins un


sommet ne possdant aucun successeur, sinon G
possderait un circuit.

Algorithme plus simple de recherche du plus court chemin du


sommet 1 tous les autres

H. Bouchriha Anne universitaire 2007/2008 23


Rang dun sommet
Dfinition :
On dfinit le rang dun sommet i dun graphe
G sans circuit par :
rg(1) = 0,
rg(i) = le nombre darcs dans un chemin allant
de 1 i, de cardinalit maximum.

H. Bouchriha Anne universitaire 2007/2008 24


Rang dun sommet
Algorithme de dtermination des rangs dans un graphe
sans circuit

Etape 1 :
Initialisation : S=X, k=0
Etape 2 :
Sk={ensemble des sommets sans prcdent dans S}
Pour tout i Sk, rg(i) = k
Etape 3 :
S=X-Sk
Si S= fin
Sinon
Dbut
Eliminer du graphe tous les arcs ayant pour origine un sommet de Sk
k=k+1,
Retour ltape 2
H. Bouchriha Fin Anne universitaire 2007/2008 25
Algorithme de dtermination du plus court
chemin dans un graphe sans circuit
Etape 1 : Initialisation
On pose (1)=0, k=1 et S=X-{iX / rg(i)=0}

Etape 2 :
Sk={ iX / rg(i)=k}
Pour tout i Sk faire
(i) min ( (j)lji)
(j,i)U
Etape 3 :
Faire S=S- Sk
Si S= fin
Sinon faire k=k+1, retour ltape 2

H. Bouchriha Anne universitaire 2007/2008 26


Exemple
1
2 4
3
10

1 2 5
6

4
2
3 5
7

Plus court chemin de 1 6 ?

rg(1) =0, rg(3)=1, rg(2)=rg(5)=2, rg(4)=3, rg(6)=4.


(1)=0, (3)=4, (2)=min (4+2, 3) =3, (5)=min (4+7)=11,
(4)=min (3+1, 11+5)=4, (6)=min (4+10, 11+2)=13.
Le plus court chemin de 1 6 est : 1, 3, 5 et 6.
H. Bouchriha Anne universitaire 2007/2008 27