690 likes | 844 Views
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.
E N D
Licence d’informatiqueAlgorithmique 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.
Relation avec les arcs : Une valeur spécifique indique l’absence d’arc. 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)
E={vrai, faux} = faux Exemple 1 valeurs d’existence des arcs
= + Exemple 2 valeurs numériques des arcs
= - Exemple 3 valeurs numériques des arcs
= 0 Exemple 4 probabilité d’existence (fiabilité) des arcs
aveccomme élément absorbant : Valeurs des chemins où est une loi de composition sur E, • associative
Exemple 1 valeurs d’existence des arcs E={vrai, faux} = faux
Exemple 2 valeurs numériques des arcs = +
Exemple 3 valeurs numériques des arcs = -
Exemple 4 probabilité d’existence (fiabilité) des arcs = 0
Comparaison des valeurs de chemins Relation d’ordre (« meilleur que ») telle que l’élément absorbant est le pire (maximal):
Exemple 1 valeurs d’existence des arcs E={vrai, faux} = faux
Exemple 2 CHEMINS DE VALEUR ADDITIVE MINIMALE = +
Exemple 3 CHEMINS DE VALEUR ADDITIVE MAXIMALE = -
Exemple 4 CHEMINS DE FIABILITE MAXIMALE = 0
Donnée : un graphe valué 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) Chemins de valeur optimale But : calculer la « valeur »« optimale » des chemins du sommet x au sommet y
Chemins de valeur optimale Ils ne peuvent pas être résolus sans résoudre un pb 1-* 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)
Chemins de valeur optimale x donné. Pour tout y, calculer y= valeur optimale des chemins de x à 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)
Chemins de valeur optimale Pour tout x et tout y, calculer xy= valeur optimale des chemins de x à 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)
1 predi i chemin de valeur i Chemins de valeur optimale issus d’un sommet donné Sommet initial x =1. i= valeur optimale des chemins de 1 à i predi = prédécesseur optimal de i chemin de valeur i
Réciproquement: v()=<0b i 1 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 Valeurs non minorées v=a + < a v=a + 2 < a + < a
i 1 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 Réciproquement: donc valeurs minorées par celles des chemins élémentaires CQFD tout circuit de valeur est de longueur 0 ensemble FINI
Chemins de valeur optimale issus d’un sommet donné CARACTERISATION Les valeurs i constituent LA solution MAXIMALE du système d ’équations
2 2 2 1 1 a f e d c b 1 4 -2 0 2 (2) (4) (0) (2) (4) (2) 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 0 = 0 2 = 0 + 2 FAUX! 4 =min(0+4, 2+1, 4+2, 2+2) FAUX! 4 = min(2+2, 2+1) 2 = min(4-2, 4+1) 2 = 2 SYSTEME NON VERIFIE : VALEURS TROP GRANDES
2 2 2 1 1 a f e d c b 1 4 -2 0 2 (2) (1) (0) (0) (2) (0) 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 0 = 0 2 = 0 + 2 VRAI! 2 =min(0+4, 2+1, 1+2, 0+2) VRAI! 1 = min(2+2, 0+1) 0 = min(2-2, 1+1) 0 = 0
a f e d c b (2) (1) 2 2 2 1 1 (0) 1 4 -2 (0) (2) 0 2 (0) 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 0 = 0 2 = 0 + 2 2 =min(0+4, 2+1, 1+2, 0+2) SYSTEME VERIFIE 1 = min(2+2, 0+1) 0 = min(2-2, 1+1) 0 = 0 VALEURS TROP PETITES Pas de chemin de valeur x de a à tout x. Le sommet a n’est pas racine du sous-graphe minimal.
a f e d c b (2) (2) 2 VALEURS CORRECTES 2 2 1 1 (0) 1 4 -2 (1) (3) 0 2 (1) 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 0 = 0 2 = 0 + 2 SYSTEME VERIFIE 3 =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 aest racine du sous-graphe minimal.
Algorithme de Bellmann-Kalaba Résolution du système par approximations successives (initialisation avec la première ligne de la matrice)
Algorithme de Bellmann-Kalaba Proposition Démonstration: Par récurrence sur k
Algorithme de Bellmann-Kalaba Proposition Démonstration: Par récurrence sur k vrai pour k=1, par construction
1 i j lg =1 lg k Algorithme de Bellmann-Kalaba Proposition Démonstration: vrai pour kvrai pour k+1
Proposition Algorithme de Bellmann-Kalaba Si pas de circuits de valeur < 0 alors cette proposition est vérifiée pour laplus grande longueur k de chemin élémentaire valeurs min obtenues Corollaire: existence de circuits de valeur < 0
(2) a a (3) (-1) a -2 -5 4 i g k l 2 7 4 -1 5 2 1 2 f 3 -2 h c -1 -3 4 (0) 1 e 2 -4 6 j d b 6 CHEMINS DE LONGUEUR 1 BELLMAN-KALABA : PRINCIPE
(2) (0) a a (3) (3) (7) (-1) (1) (4) a -2 -5 4 i g k l 2 7 4 -1 5 2 1 2 f 3 -2 h c -1 -3 4 (0) 1 e 2 -4 6 j d b 6 CHEMINS DE LONGUEUR <= 2
(2) (0) (4) a a (3) (3) (7) (-1) (0) (1) (4) a -2 -5 4 i g k l 2 7 4 -1 5 2 1 2 f 3 -2 h c -1 -3 4 (0) 1 e 2 -4 6 j d b 6 CHEMINS DE LONGUEUR <= 3
(-1) (2) (0) (4) a a (3) (3) (7) (-1) (0) (1) (4) a -2 -5 4 i g k l 2 7 4 -1 5 2 1 2 f 3 -2 h c -1 -3 4 (0) 1 e 2 -4 6 j d b 6 CHEMINS DE LONGUEUR <= 4
(1) (2) (0) (4) a a (3) (3) (7) (-1) (0) (1) (4) a (-1) -2 -5 4 i g k l 2 7 4 -1 5 2 1 2 f 3 -2 h c -1 -3 4 (0) 1 e 2 -4 6 j d b 6 CHEMINS DE LONGUEUR <= 5
(1) (2) (4) a a (3) (6) (-1) (0) a (-1) -2 -5 (0) 4 i g k l 2 7 4 -1 5 2 1 2 (3) f 3 -2 h c -1 (7) -3 4 (0) 1 e 2 -4 6 j d b (1) 6 (4) CHEMINS DE LONGUEUR <= 6
(1) (2) (4) a a (3) (6) (-1) (0) a (-1) -2 -5 (0) 4 i g k l 2 7 4 -1 5 2 1 2 (3) f 3 -2 h c -1 (7) -3 4 (0) 1 e 2 -4 6 j d b (1) 6 (4) CHEMINS DE LONGUEUR <= 7 AUCUNE REMISE EN CAUSE : MINIMA OBTENUS
(1) (2) (4) a a (3) (6) (-1) (0) a (-1) -2 -5 (0) 4 i g k l 2 7 4 -1 5 2 1 2 (3) f 3 -2 h c -1 (7) -3 4 (0) 1 e 2 -4 6 j d b (1) 6 (4) GRAPHE MINIMAL (chemins issus de a)
a b c d e f a 2 2 -5 -5 3 3 0 (a) (a) (a) b c d e f d f c b e a -3 -5 4 2 4 4 3 3 5 2 -7 3 6 a b c d e f 0 l(1) -3 4 4 3 3 4 2 5 -7 6 BELLMAN-KALABA : EXEMPLE D’EXECUTION SUR LA MATRICE
a b c d e f a 2 2 -5 -5 3 3 (a) (a) (a) b c d e f a d f e c b -3 -5 4 2 4 4 3 3 5 2 -7 3 6 a b c d e f 0 0 Courant : 0 l(1) -3 4 Minimum : 0 0 4 3 l(2) 3 4 2 5 -7 6
a b c d e f a 2 -5 3 b 2 c (a) d e f b f c e a d -3 -5 4 2 4 4 3 3 5 2 -7 3 6 a b c d e f 0 0 2 -5 3 Courant : 2 l(1) (a) (a) (a) -3 4 Minimum : 2 (a) 0 4 3 l(2) 3 4 2 5 -7 6
a b c d e f a 2 -5 3 b 2 -5 c (a) (a) d e f a d b c f e -3 -5 4 2 4 4 3 3 5 2 -7 3 6 a b c d e f 0 0 2 -5 3 Courant : -5 l(1) -1 (a) (a) (a) -3 4 Minimum : -5 (a) 0 4 3 l(2) 3 4 2 5 -7 6
a b c d e f a 2 -5 3 b 2 -5 -1 c (a) (a) (c) d e f f c b d a e a b c d e f 0 0 2 -5 3 Courant : l(1) -1 (a) (a) (a) -3 -1 (c) 4 Minimum : 0 4 3 l(2) 3 4 2 5 -7 6 -3 -5 4 2 4 4 3 3 5 2 -7 3 6
a b c d e f a 2 -5 3 b 2 -5 -1 6 c (a) (a) (c) (b) d e f c b a e d f a b c d e f 0 0 2 -5 3 Courant : l(1) 6 9 (a) (a) (a) -3 6 (b) 4 Minimum : 0 4 3 l(2) 3 4 2 5 -7 6 -3 -5 4 2 4 4 3 3 5 2 -7 3 6
a b c d e f a 2 -5 3 b 2 -5 -1 6 -2 c (a) (a) (c) (b) (c) d e f d a f e c b a b c d e f 0 0 2 -5 3 Courant : 3 l(1) -2 (a) (a) (a) -3 4 Minimum : 3 (a) -2 (c) 0 4 3 l(2) 3 4 2 5 -7 6 -3 -5 4 2 4 4 3 3 5 2 -7 3 6
a b c d e f a 2 -5 3 b 2 -5 -1 6 -2 c (a) (a) (c) (b) (c) d e f a b c d e f 0 0 2 -5 3 Courant : 0 l(1) 2 (a) (a) (a) -3 4 Minimum : 0 (a) 0 4 3 l(2) 3 4 2 0 5 -7 l(3) 6
a b c d e f a 2 -5 3 b 2 2 -5 -1 6 -2 c (a) (a) (a) (c) (b) (c) d e f a b c d e f 0 0 2 -5 3 Courant : 2 l(1) 3 (a) (a) (a) -3 4 Minimum : 2 (a) 0 4 3 l(2) 3 4 2 0 5 -7 l(3) 6