La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Licence Informatique Algorithmique des graphes

Présentations similaires


Présentation au sujet: "Licence Informatique Algorithmique des graphes"— Transcription de la présentation:

1 Licence Informatique Algorithmique des graphes
Cours 8 Algorithmes de Dijkstra et Ordinal

2 Hypothèses particulières
Sur les valeurs des arcs Sur la topologie du graphe Algorithmes GLOUTONS

3 Hypothèses particulières
Sur les valeurs des arcs Sur la topologie du graphe Algorithmes GLOUTONS

4 Chemins de valeur additive minimale (min, +)
Hypothèse : valeurs des arcs  0 plus généralement : valeurs des arcs moins bonnes que l’élément neutre de  Algorithme de DIJKSTRA

5 Principe : exploration selon la stratégie
« meilleur d’abord » INVARIANT Tout sommet z est : dehors ® non visité, l(z) = +¥ en attente visité, au moins un prédécesseur terminé, aucun arc sortant visité, l(z) = min(v(u)), u chemin de x à z dont l’avant-dernier sommet est terminé, pred(z) = prédécesseur minimal de z terminé ® visité, tous les arcs sortants visités, l(z) = min(v(u)), u chemin de x à z pred(z) = prédécesseur minimal de z

6 Arrêt : Init : plus de sommet en attente
Les sommets dehors sont inaccessibles, les sommets terminés ont leurs attributs corrects. Init : défini non ; en attente ) ( pred(x) x état l(x) tous les autres sommets sont dehors

7 Progression : Soit y en attente d’attribut  MINIMUM (des en attente) ; y devient terminé ; pourtout z successeur de y : fpourtout cas fcas z est dehors  z devient en attente ; z est en attente  z est terminé  rien

8 Preuve  Initialement, l’invariant est vérifié (par construction)
La progression maintient l’invariant (voir détails plus loin)  Finalement, le résultat obtenu est correct (Conjonction de l’invariant et de la condition d’arrêt)

9 Preuve  Initialement, l’invariant est vérifié (par construction)
La progression maintient l’invariant (voir détails plus loin)  Finalement, le résultat obtenu est correct  La condition d ’arrêt est obtenue après un nombre fini d’étapes (A chaque étape un nouveau sommet devient terminé).

10 Preuve  La progression maintient l’invariant (détails)
Invariant au début d’une étape  Invariant à la fin de l’étape Pour tout sommet y subissant une transition d’état : dehors  dehors : état non modifié

11  La progression maintient l’invariant (détail)
Pour tout sommet z subissant une transition d’état : dehors  en attente : z a un seul prédécesseur terminé (y) et ses attributs sont initialisés conformément à la propriété des sommets en attente. z est dehors  z devient en attente ; cas en attente de minimal ur prédécesse terminé est sommet dernier avant l' dont à chemin )), ( min( z pred(z) x u v = l(z)

12  La progression maintient l ’invariant (détail)
Pour tout sommet z subissant une transition d ’état : en attente  en attente : z a un nouveau prédécesseur terminé (y) et ses attributs sont mis à jour conformément à la propriété des sommets en attente. z est en attente  en attente de minimal ur prédécesse recouvert est sommet dernier avant l' dont à chemin )), ( min( z pred(z) x u v = l(z)

13  La progression maintient l’invariant (détail)
Pour tout sommet y subissant une transition d ’état : en attente  terminé : Il faut montrer que les attributs de y sont définitifs C’est-à-dire y en attente d’attribut (y) minimum  (y)=valeur minimale des chemins de x à y.

14 T A y x t z Soit u = [x * y] un chemin de x à y
Soit t=dernier sommet de u tel que tT u = [x * t].(t, z).[z * y]

15 T A y x t z u = [x * t].(t, z).[z * y]
v(u) = v([x * t])+v(t, z)+v([z * y])

16 T A y x t z u = [x * t].(t, z).[z * y]
v(u) = v([x * t])+v(t, z)+v([z * y]) 0 (hypothèse sur les arcs)

17 T A y x t z v(u)  v([x * t])+v(t, z)

18 T A y x t z t est terminé v(u)  v([x * t])+v(t, z) (t) (car t T)
® (t) = val. min. des chemins de x à t v(u)  v([x * t])+v(t, z) (t) (car t T)

19 T A y x t z z est en attente dont l’avant dernier sommet est terminé
® (z) = val. min. des chemins de x à z dont l’avant dernier sommet est terminé v(u)  (t) +v(t, z) (z) (car z A et t  T)

20 T A y x t z v(u)  (z)  (y) (critère de choix de y)

21 T A y x t z v(u)  (y)

22 T A y x t z v(u)  (y) Réciproquement : Propriété de (y) pour y A :
(y) = valeur minimum d’une catégorie de chemins donc : il existe un chemin de x à y, de valeur (y)

23 T A y x t z (y)= valeur minimum des chemins de x à y
le sommet y devient terminé

24 Un exemple d’exécution
7 7 d g 3 5 3 1 1 1 12 a b e h i 4 4 8 1 4 12 c f en attente terminés (a, 0, /) Un exemple d’exécution

25 terminés en attente (a, 0, /) (d, 5, a) (b, 1, a) (c, 4, a) 7 7 d g 3
12 (0) a b e h i 4 4 8 1 4 12 c f en attente terminés (a, 0, /) (d, 5, a) (b, 1, a) (c, 4, a)

26 terminés en attente (a, 0, /) (d, 5, a) (c, 4, a) (b, 1, a) (d, 4, b)
7 7 d g 3 5 3 1 1 1 12 (0) a (1) b e h i 4 4 8 1 4 12 c f en attente terminés (a, 0, /) (d, 5, a) (c, 4, a) (b, 1, a) (d, 4, b)

27 terminés en attente (a, 0, /) (d, 4, b) (e, 12, c) (f, 8, c) (b, 1, a)
7 7 d g 3 5 3 1 1 1 12 (0) a (1) b e h i 4 4 8 1 4 12 c f (4) en attente terminés (a, 0, /) (d, 4, b) (e, 12, c) (f, 8, c) (b, 1, a) (c, 4, a)

28 terminés en attente (a, 0, /) (e, 12, c) (f, 8, c) (g, 11, d)
7 7 (4) d g 3 5 3 1 1 1 12 (0) a (1) b e h i 4 4 8 1 4 12 c f (4) en attente terminés (a, 0, /) (e, 12, c) (f, 8, c) (g, 11, d) (b, 1, a) (e, 7, d) (c, 4, a) (d, 4, b)

29 terminés en attente (a, 0, /) (f, 8, c) (g, 11, d) (h, 8, e) (b, 1, a)
7 7 (4) d g 3 5 3 1 1 1 12 (0) a (1) b (7) e h i 4 4 8 1 4 12 c f (4) en attente terminés (a, 0, /) (f, 8, c) (g, 11, d) (h, 8, e) (b, 1, a) (f, 7, e) (c, 4, a) (d, 4, b) (e, 7, d)

30 terminés en attente (a, 0, /) (g, 11, d) (h, 8, e) (i, 19, f)
7 7 (4) d g 3 5 3 1 1 1 12 (0) a (1) b (7) e h i 4 4 8 1 4 12 c (7) f (4) en attente terminés (a, 0, /) (g, 11, d) (h, 8, e) (i, 19, f) (b, 1, a) (c, 4, a) (d, 4, b) (e, 7, d) (f, 7, e)

31 terminés en attente (a, 0, /) (g, 11, d) (i, 19, f) (b, 1, a)
7 7 (4) d g 3 5 3 1 1 1 12 (0) a (1) b (7) e (8) h i 4 4 8 1 4 12 c (7) f (4) en attente terminés (a, 0, /) (g, 11, d) (i, 19, f) (b, 1, a) (g, 9, h) (c, 4, a) (d, 4, b) (e, 7, d) (f, 7, e) (h, 8, e)

32 terminés en attente (a, 0, /) (i, 19, f) (i, 16, g) (b, 1, a)
7 7 (4) d (9) g 3 5 3 1 1 1 12 (0) a (1) b (7) e (8) h i 4 4 8 1 4 12 c (7) f (4) en attente terminés (a, 0, /) (i, 19, f) (i, 16, g) (b, 1, a) (c, 4, a) (d, 4, b) (e, 7, d) (f, 7, e) (h, 8, e) (g, 9, h)

33 terminés en attente vide (a, 0, /) (b, 1, a) (c, 4, a) (d, 4, b)
7 7 (4) d (9) g 3 5 3 1 1 1 12 (0) a (1) b (7) e (8) h (16) i 4 4 8 1 4 12 c (7) f (4) en attente terminés (a, 0, /) vide (b, 1, a) (c, 4, a) (d, 4, b) (e, 7, d) (f, 7, e) (h, 8, e) (g, 9, h) (i, 16, g)

34 Les sommets sont terminés dans l’ordre des  croissants
7 7 (4) d (9) g 3 5 3 1 1 1 12 (0) a (1) b (7) e (8) h (16) i 4 4 8 1 4 12 c (7) f (4) (a, 0, /) (b, 1, a) (c, 4, a) (d, 4, b) Les sommets sont terminés dans l’ordre des  croissants (e, 7, d) (f, 7, e) (h, 8, e) (g, 9, h) (i, 16, g)

35 Complexité O(n2) A chaque étape : 1 sommet devient terminé
 Au plus n étapes A l’étape k : Sélection du sommet y à terminer : au plus n-k en attente  au pire n-k-1 comparaisons Mise à jour des successeurs de y :  au pire |(y)| tests (comparaisons) Globalement : O(n2) O(n2) + O(m) comparaisons Nombre d ’arcs

36 Hypothèses particulières
Sur les valeurs des arcs Sur la topologie du graphe Algorithmes GLOUTONS

37 Hypothèse : GRAPHE SANS CIRCUIT
hypothèse supplémentaire : le sommet de départ est racine du graphe

38 Hypothèse : GRAPHE SANS CIRCUIT
hypothèse supplémentaire : le sommet de départ est racine du graphe point d’entrée tout sommet en est descendant Algorithme ORDINAL-RACINE

39 Principe : exploration selon la stratégie
« points d’entrée » (Marimont) INVARIANT Tout sommet y est : dehors terminé

40 Arrêt : Init : tous les sommets sont terminés
tous les autres sommets sont dehors

41 Progression : Soit y dehors dont tous les prédécesseurs sont terminés ; y devient terminé ;

42 Preuve  Initialement, l’invariant est vérifié (par construction)
 La progression maintient l’invariant (voir détail + loin)  Finalement, le résultat obtenu est correct (Conjonction de l’invariant et de la condition d’arrêt)

43 Preuve  Initialement, l’invariant est vérifié (par construction)
 La progression maintient l’invariant (voir détail + loin)  Finalement, le résultat obtenu est correct  La condition d’arrêt est obtenue après un nombre fini d’étapes (A chaque étape un nouveau sommet devient terminé).

44 Preuve  La progression maintient l’invariant (détail)
Invariant au début d’une étape Invariant à la fin de l ’étape Pour tout sommet y subissant une transition d’état : dehors  dehors : état non modifié

45  La progression maintient l’invariant (détail)
Pour tout sommet y subissant une transition d ’état : dehors  terminé : y a tous ses prédécesseurs terminés tout prédécesseur z de y a ses attributs définitifs Donc y reçoit ses attributs définitifs

46 T z1 x z2 y z3 meilleur chemin de x à y via z1, valeur (z1)=21
4 z1 x 22 2 z2 y 17 10 z3 meilleur chemin de x à y via z1, valeur (z1)=21 meilleur chemin de x à y via z2, valeur (z2)=22 meilleur chemin de x à y via z3, valeur (z3)=17

47 T z1 x z2 y z3 meilleure valeur de chemin de x à y :
21 z1 4 x 22 z2 2 y 17 z3 10 meilleur chemin de x à y via z1, valeur (z1)=21 meilleur chemin de x à y via z2, valeur (z2)=22 meilleur chemin de x à y via z3, valeur (z3)=17 meilleure valeur de chemin de x à y : min((z1) +v(z1,y) , (z2) +v(z2,y) , (z3) +v(z3,y)) = min(25, , ) pred(y) = z2

48 Preuve  La condition d’arrêt est obtenue après un nombre fini d’étapes (A chaque étape un nouveau sommet devient terminé). Progression : Soit y dehors dont tous les prédécesseurs sont terminés ; Choix toujours possible (absence de circuit) ; (cf. algorithme de Marimont)

49 Un exemple d’exécution
7 7 d g -3 5 3 1 -1 1 12 a a b e h i (0) 4 4 -1 8 -1 4 12 c f terminés (a, 0, /) (b)= (a)+1=1, pred(b)=a Un exemple d’exécution

50 (d)= min((a)+5,  (b)+3)=4, pred(d)=b
7 7 d g -3 5 3 1 -1 1 12 a a b e h i (0) (1) 4 4 -1 8 -1 4 12 c f terminés (a, 0, /) (b, 1, a) (d)= min((a)+5,  (b)+3)=4, pred(d)=b

51 (c)= min((a)+4,  (b)+4)=4, pred(c)=a
7 7 (4) d g -3 5 3 1 -1 1 12 a a b e h i (0) (1) 4 4 -1 8 -1 4 12 c f terminés (a, 0, /) (b, 1, a) (d, 4, b) (c)= min((a)+4,  (b)+4)=4, pred(c)=a

52 (e)= min((d)-3,  (c)+8)=1, pred(e)=c
7 7 (4) d g -3 5 3 1 -1 1 12 a a b e h i (0) (1) 4 4 -1 8 -1 4 12 (4) c f terminés (a, 0, /) (b, 1, a) (d, 4, b) (e)= min((d)-3,  (c)+8)=1, pred(e)=c (c, 4, a)

53 (f)= min((c)+4,  (e)-1)=0, pred(f)=e
7 7 (4) d g -3 5 3 1 -1 1 12 a a b (1) e h i (0) (1) 4 4 -1 8 -1 4 12 (4) c f terminés (a, 0, /) (b, 1, a) (d, 4, b) (f)= min((c)+4,  (e)-1)=0, pred(f)=e (c, 4, a) (e, 1, d)

54 (h)= min((e)-1,  (f)-1)=-1, pred(h)=f
7 7 (4) d g -3 5 3 1 -1 1 12 a a b (1) e h i (0) (1) 4 4 -1 8 -1 4 12 (4) c (0) f terminés (a, 0, /) (b, 1, a) (d, 4, b) (h)= min((e)-1,  (f)-1)=-1, pred(h)=f (c, 4, a) (e, 1, d) (f, 0, e)

55 (g)= min((d)+7,  (h)+1)=0, pred(g)=h
(4) d g -3 5 3 1 -1 1 12 a a b (1) e h i (0) (1) (-1) 4 4 -1 8 -1 4 12 (4) c (0) f terminés (a, 0, /) (b, 1, a) (d, 4, b) (g)= min((d)+7,  (h)+1)=0, pred(g)=h (c, 4, a) (e, 1, d) (f, 0, e) (h, -1, f)

56 terminés (i)= min((f)+12,  (h)+12,  (g)+7 )=7, pred(i)=g (a, 0, /)
(4) d g (0) -3 5 3 1 -1 1 12 a a b (1) e h i (0) (1) (-1) 4 4 -1 8 -1 4 12 (4) c (0) f terminés (a, 0, /) (b, 1, a) (d, 4, b) (i)= min((f)+12,  (h)+12,  (g)+7 )=7, pred(i)=g (c, 4, a) (e, 1, d) (f, 0, e) (h, -1, f) (g, 0, h)

57 terminés (a, 0, /) (b, 1, a) (d, 4, b) (c, 4, a) (e, 1, d) (f, 0, e)
7 7 (4) d g (0) -3 5 3 1 -1 1 12 a a b (1) e h (0) (1) (-1) (7) i 4 4 -1 8 -1 4 12 (4) c (0) f terminés (a, 0, /) (b, 1, a) (d, 4, b) (c, 4, a) (e, 1, d) (f, 0, e) (h, -1, f) (g, 0, h) (i, 7, g)


Télécharger ppt "Licence Informatique Algorithmique des graphes"

Présentations similaires


Annonces Google