1 Licence d’informatique Algorithmique des graphes Cours 7 : Graphes valués Chemins de valeur optimale Algorithme de Bellmann-Kalaba Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation. Reproduction ou diffusion en dehors de l ’IFSIC strictement interdite sauf autorisation expresse de l’ auteur.
2 Graphes valués Chemins de valeur optimale E : ensemble de valeurs (numériques ou autres) Chaque couple de sommets (x, y) est muni d’une valeur v(x, y) Relation avec les arcs : Une valeur spécifique indique l’absence d’arc.
3 E={vrai, faux} = faux Exemple 1 valeurs d’existence des arcs
4 = + Exemple 2 valeurs numériques des arcs
5 = - Exemple 3 valeurs numériques des arcs
6 = 0 Exemple 4 probabilité d’existence (fiabilité) des arcs
7 Valeurs des chemins où est une loi de composition sur E, associative avec comme élément absorbant :
8 Exemple 1 E={vrai, faux} = faux valeurs d’existence des arcs
9 Exemple 2 = + valeurs numériques des arcs
10 Exemple 3 = - valeurs numériques des arcs
11 Exemple 4 = 0 probabilité d’existence (fiabilité) des arcs
12 Comparaison des valeurs de chemins Relation d’ordre (« meilleur que ») telle que l’élément absorbant est le pire (maximal) :
13 Exemple 1 E={vrai, faux} = faux valeurs d’existence des arcs
14 Exemple 2 CHEMINS DE VALEUR ADDITIVE MINIMALE = +
15 Exemple 3 = - CHEMINS DE VALEUR ADDITIVE MAXIMALE
16 Exemple 4 = 0 CHEMINS DE FIABILITE MAXIMALE
17 Chemins de valeur optimale Donnée : un graphe valué But : calculer la « valeur » « optimale » des chemins du sommet x au sommet y 3 types de problèmes : Problèmes 1-1 (x et y donnés) Problèmes 1-* (x donné, tout y) Problèmes *-* (tout x, tout y)
18 Chemins de valeur optimale 3 types de problèmes : Problèmes 1-1 (x et y donnés) Problèmes 1-* (x donné, tout y) Problèmes *-* (tout x, tout y) Ils ne peuvent pas être résolus sans résoudre un pb 1-*
19 Chemins de valeur optimale 3 types de problèmes : Problèmes 1-1 (x et y donnés) Problèmes 1-* (x donné, tout y) Problèmes *-* (tout x, tout y) x donné. Pour tout y, calculer y = valeur optimale des chemins de x à y
20 Chemins de valeur optimale 3 types de problèmes : Problèmes 1-1 (x et y donnés) Problèmes 1-* (x donné, tout y) Problèmes *-* (tout x, tout y) Pour tout x et tout y, calculer xy = valeur optimale des chemins de x à y
21 pred i Chemins de valeur optimale issus d’un sommet donné Sommet initial x =1. i = valeur optimale des chemins de 1 à i pred i = prédécesseur optimal de i 1 i chemin de valeur i chemin de valeur i
22 i 1 v( )= <0b Chemins de valeur optimale issus d’un sommet donné Résultat d’existence Les valeurs i sont définies il n’y a pas de circuit de valeur < 0 dans la descendance du sommet 1 v=a v=a + < a v=a + 2 < a + < a Valeurs non minorées Réciproquement:
23 Chemins de valeur optimale issus d’un sommet donné Résultat d’existence Les valeurs i sont définies il n’y a pas de circuit de valeur < 0 dans la descendance du sommet 1 1 i Réciproquement: tout circuit de valeur est de longueur 0 donc valeurs minorées par celles des chemins élémentaires ensemble FINI CQFD
24 Chemins de valeur optimale issus d’un sommet donné CARACTERISATION Les valeurs i constituent LA solution MAXIMALE du système d ’équations
25 a f e d c b a = 0 b = a +2 c = min( a +4, b +1, d +2, f +2) d = min( b +2, e +1) e = min( c -2, d +1) f = e (2)(4) (2) (0) 0 = 0 2 = = min(0+4, 2+1, 4+2, 2+2) FAUX! 4 = min(2+2, 2+1) FAUX! 2 = min(4-2, 4+1) 2 = 2 SYSTEME NON VERIFIE : VALEURS TROP GRANDES
26 a f e d c b a = 0 b = a +2 c = min( a +4, b +1, d +2, f +2) d = min( b +2, e +1) e = min( c -2, d +1) f = e (2)(1) (2) (0) 0 = 0 2 = = min(0+4, 2+1, 1+2, 0+2) VRAI! 1 = min(2+2, 0+1) VRAI! 0 = min(2-2, 1+1) 0 = 0
27 a f e d c b a = 0 b = a +2 c = min( a +4, b +1, d +2, f +2) d = min( b +2, e +1) e = min( c -2, d +1) f = e (2)(1) (2) (0) 0 = 0 2 = = min(0+4, 2+1, 1+2, 0+2) 1 = min(2+2, 0+1) 0 = min(2-2, 1+1) 0 = 0 Pas de chemin de valeur x de a à tout x. Le sommet a n’est pas racine du sous-graphe minimal. SYSTEME VERIFIE VALEURS TROP PETITES
28 a f e d c b a = 0 b = a +2 c = min( a +4, b +1, d +2, f +2) d = min( b +2, e +1) e = min( c -2, d +1) f = e (2) (3) (1) (0) 0 = 0 2 = = min(0+4, 2+1, 2+2, 1+2) 2 = min(2+2, 1+1) 1 = min(3-2, 2+1) 1 = 1 Il y a un chemin de valeur x de a à tout x. Le sommet a est racine du sous-graphe minimal. SYSTEME VERIFIE VALEURS CORRECTES
29 Algorithme de Bellmann-Kalaba Résolution du système par approximations successives (initialisation avec la première ligne de la matrice)
30 Algorithme de Bellmann-Kalaba Proposition Démonstration: Par récurrence sur k
31 Algorithme de Bellmann-Kalaba Proposition Démonstration: Par récurrence sur k vrai pour k=1, par construction
32 Algorithme de Bellmann-Kalaba Proposition Démonstration: vrai pour k vrai pour k+1 1i j lg k lg =1
33 Algorithme de Bellmann-Kalaba Proposition Si pas de circuits de valeur < 0 alors cette proposition est vérifiée pour la plus grande longueur k de chemin élémentaire Corollaire: existence de circuits de valeur < 0 valeurs min obtenues
34 a i j h gk e l b c d f aa (0) (2) (3) (-1) CHEMINS DE LONGUEUR 1 -2 BELLMAN-KALABA : PRINCIPE
35 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 2 -2
36 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 3 -2 (0) (4)
37 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 4 -2 (0) (4) (-1)
38 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 5 -2 (0) (4) (-1) (1)
39 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 6 -2 (0) (4) (-1) (1) (6)
40 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) CHEMINS DE LONGUEUR <= 7 -2 (0) (4) (-1) (1) (6) AUCUNE REMISE EN CAUSE : MINIMA OBTENUS
41 a i j h gk e l b c d f aa (0) (2) (3) (-1) (4) (7) (1) (0) (3) -2 (0) (4) (-1) (1) (6) GRAPHE MINIMAL (chemins issus de a)
42 abcdef a b c d e f abcdef 2 30 (a) (1) BELLMAN-KALABA : EXEMPLE D’EXECUTION SUR LA MATRICE a d e c f b
43 abcdef a b c d e f abcdef 2 30 (a) (1) (2) Courant : 0 Minimum : 0 0 a d e c f b
44 abcdef a b c d e f abcdef 2 30 (a) (1) (2) Courant : 2 Minimum : 2 (a) 0 2 (a) a d e c f b
45 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : -5 Minimum : -5 (a) 0 2 (a) -5 (a) -5 a d e c f b
46 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : Minimum : 0 2 (a) -5 (a) (c) (c) a d e c f b
47 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : Minimum : 0 2 (a) 6 -5 (a) -5 6 (b) (c) 9 6 (b) a d e c f b
48 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : 3 Minimum : 3 (a) 0 2 (a) -5 (a) -5 (c) -2 6 (b) -2 (c) -2 (c) a d e c f b
49 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : 0 Minimum : 0 (a) 0 2 (a) -5 (a) -5 (c) 2 6 (b) -2 (c) (3) 0
50 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : 2 Minimum : 2 (a) 0 2 (a) -5 (a) -5 (c) 3 6 (b) -2 (c) (3) 02 (a)
51 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : -5 Minimum : -5 (a) 0 2 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) (a)
52 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : Minimum : 0 2 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) -1 (c) (c)
53 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : Minimum : (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) 4 -5 (a) 6 (b) (c) 4 (f) 4 (f)
54 abcdef a b c d e f abcdef 230 (a) (1) (2) Courant : 3 Minimum : 3 (a) 02 (a) -5 (a) -5 (c) -2 6 (b) -2 (c) (3) 02 (a) -5 (a) -2 (c) (c) 4 (f) -2 (c) 1
55 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 0 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0
56 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 2 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a)
57 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : -5 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a)
58 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : -1 (c) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) -3 (e)
59 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 6 (b) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) 4 (f) -3 (e) 4 (f)
60 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 3 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -2 (c) -3 (e) 4 (f) -2 (c)
61 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 0 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) 0 (d) -3 (e) 4 (f) -2 (c) (5) 0 (d)
62 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 2 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) 1 (d) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1
63 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : -5 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1 -5 (a)
64 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : -1 (c) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1 -5 (a) -3 (e) -3 (e)
65 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 6 (b) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1 -5 (a) 4 (f) -3 (e) 4 (f)
66 abcdef a b c d e f abcdef 230 (a) (1) (2) Minimum : 3 (a) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1 -5 (a) -2 (c) -3 (e) 4 (f) -2 (c)
67 abcdef a b c d e f abcdef 230 (a) (1) (2) 02 (a) -5 (a) -5 (c) 6 (b) -2 (c) (3) 02 (a) -5 (a) (c) 4 (f) -2 (c) (4) 0 2 (a) -5 (a) -3 (e) 4 (f) -2 (c) (5) 0 (d) 1 -5 (a) -3 (e) 4 (f) -2 (c) (6) 0 (d) 1 -5 (a) -3 (e) 4 (f) -2 (c) STABILITE ! a d e c f b IL Y A UN CIRCUIT DE VALEUR 0
68Complexité A chaque étape : n mises à jour de valeurs (i) Au plus n étapes Une mise à jour : Un « produit scalaire » min + n additions et n-1 comparaisons Globalement :n 3 additions et n 2 (n-1) comparaisons O(n 3 )