Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
262
UMLV ã Plus courts chemins Toutes paires d'états algorithme de Floyd 0(|S| 3) Chemins de même origine algorithme de Dijkstra 0 (|S|2) ou 0 (|S|+|Allog|S|) algorithme de Bellman-Ford (|S|.|A|) ~ plus court chemin même destination
263
3 6 7 2 1 4 5 S UMLV ã Problème : G = (S, A, V) s Î S
" t Î S calculer d (s,t) = min V (c) pour c chemin de s à t. Exemple 3 6 7 2 1 4 5 S
264
UMLV ã d 3 9 5 11 et arbres de plus courts chemins 3 9 11 5
265
UMLV ã Lemme G=(S,A,V) c plus court chemin de p à r si c = p q ® r alors d (p,r) = d (p,q)+v(q,r) Preuve : car p q est un plus court chemin de p à q Lemme 2 " (q,r) arc d (p,r) £ d (p,q)+v(q,r) d
266
UMLV ã Relaxation t Î S d(t) estimation de d (s,t) Initialisation Pour chaque t Î S faire d(S)¬ 0 ; Relaxation (p,q) si d(q) > d(p) + v(p,q) alors {d(q) ¬ d(p)+v(p,q) (q) ¬ p ; }
267
UMLV ã Propriété d(q) ³ d (s,q) invariant de relax Preuve induction sur le nombre d'éxécution de "relax"
268
ssi pas de circuit de valeur < O
UMLV ã Lemme " t d (s,t) > - ¥ ssi pas de circuit de valeur < O
269
UMLV ã Algorithme de Dijkstra début v ³ o init Q ¬ S ; tant que Q ¹ Æ faire { p ¬ MINd(Q) ; Q ¬ Q - {p} pour chaque q Î A (p) faire relax (p,q) ; } fin.
270
UMLV ã Implémentation Matrice d'adjacence O (|S|2) Liste d'adjacence Q : file de priorité par "tas" |S| opér.MIN ® |S| log|S| |A| opér relax ® |A|log|S| ®(|S|+|A|) log |S|
271
UMLV ã Algorithme de Bellman-Ford début v Î R init ; répéter |S| - 1 fois pour chaque (p,q) Î A faire relax (p,q) ; si d(q) + v(p,q) < d (q) alors retour faux retour vrai fin
272
UMLV ã Exemple 6 - 2 7 2 9 S 5 8 -3 -4 Complexité O (|S|.|A|)
273
pour chaque p Î S en ordre topologique faire
UMLV ã Graphes acycliques plus courts chemins début init ; pour chaque p Î S en ordre topologique faire pour chaque q Î A (u) faire relax (p,q) ; fin 2 4 3 5 7 -1 -2 6 1 S
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.