Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSolange Mauger Modifié depuis plus de 9 années
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 tT 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)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.