Vous êtes sur la page 1sur 23

Licence dinformatique Algorithmique des graphes

Cours 7 et 8 : Graphes valus Chemins de valeur optimale Algorithme de Bellmann-Kalaba

Utilisation de ce document strictement rserve 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.

Graphes valus Chemins de valeur optimale


G = ( X , v ) o v : X X a E
E : ensemble de valeurs (numriques ou autres)
Chaque couple de sommets (x, y) est muni dune valeur v(x, y)

Relation avec les arcs :


Une valeur spcifique indique labsence darc.

Exemple 1
E={vrai, faux}

vrai s i( x, y) v( x, y) = faux s i ( x, y )
= faux

valeurs dexistence des arcs

Exemple 2
E = R {+ } une valeur relle s i ( x, y) v( x, y) = + s i ( x, y)
= +

valeurs numriques des arcs

Exemple 3
E = R { } une valeur relle s i ( x, y) v( x, y) = s i ( x, y)
= -

valeurs numriques des arcs

Exemple 4
E = [0,1] une valeur relle s i ( x, y) v( x, y) = probabilit 0 s i ( x, y)
= 0

dexistence (fiabilit) des arcs

Valeurs des chemins


v[x1, x2 ,L, xk ] = v( x1, x2 ) v( x2 , x3 ) L v( xk 1, xk )
o est une loi de composition sur E, associative avec comme lment absorbant :

x E : x = x =
v[x1 , x 2 ,L , xk ] [x1 , x 2 , L, x k ] est un chemin de G
7

Exemple 1
E={vrai, faux}

vrai s i( x, y) v( x, y) = faux s i ( x, y )
= faux

valeurs dexistence des arcs

ET (conjonction logique) x {vrai, faux} : x ET faux = faux ET x = faux

Exemple 2
E = R {+ } une valeur relle s i ( x, y) v( x, y) = + s i ( x, y)
= +

valeurs numriques des arcs

+ (addition) x R {+ } : x + (+ ) = (+ ) + x = (+ )

Exemple 3
E = R { } une valeur relle s i ( x, y) v( x, y) = s i ( x, y)
= -

valeurs numriques des arcs

+ (addition) x R { } : x + ( ) = ( ) + x = ( )

10

Exemple 4
E = [0,1] une valeur relle s i ( x, y) v( x, y) = probabilit 0 s i ( x, y)
= 0

dexistence (fiabilit) des arcs

(multiplication) x [0,1]: x 0 = 0 x = 0

11

Comparaison des valeurs de chemins


Relation dordre

telle que llment absorbant est le pire (maximal) :

p=

( meilleur que )

x E : x p =

12

Exemple 1
E={vrai, faux}

vrai s i( x, y) v( x, y) = faux s i ( x, y )
= faux

valeurs dexistence des arcs

ET (conjonction logique) x {vrai, faux} : x ET faux = faux ET x = faux

vraip faux
13

Exemple 2
E = R {+ } une valeur relle s i ( x, y) v( x, y) = + s i ( x, y)
= + CHEMINS DE VALEUR ADDITIVE MINIMALE

+ (addition) x R {+ } : x + (+ ) = (+ ) + x = (+ )

x R {+ } : x +

p <

14

Exemple 3
E = R { } une valeur relle s i ( x, y) v( x, y) = s i ( x, y)
= - CHEMINS DE VALEUR ADDITIVE MAXIMALE

+ (addition) x R { } : x + ( ) = ( ) + x = ( )

x R { } : x

p >

15

Exemple 4
E = [0,1] une valeur relle s i ( x, y) v( x, y) = 0 s i ( x, y)
= 0 CHEMINS DE FIABILITE MAXIMALE

(multiplication) x [0,1]: x 0 = 0 x = 0

x [0 ,1 ] : x 0

p >

16

Chemins de valeur optimale


Donne : un graphe valu

G = ( X , v ) o v : X X a E
But : calculer la valeur optimale des chemins du sommet x au sommet y 3 types de problmes : Problmes 1-1 (x et y donns) Problmes 1-* (x donn, tout y) Problmes *-* (tout x, tout y)
17

Chemins de valeur optimale


Ils ne peuvent pas tre rsolus sans rsoudre un pb 1-*

3 types de problmes : Problmes 1-1 (x et y donns) Problmes 1-* (x donn, tout y) Problmes *-* (tout x, tout y)
18

Chemins de valeur optimale


x donn. Pour tout y, calculer y = valeur optimale des chemins de x y

3 types de problmes : Problmes 1-1 (x et y donns) Problmes 1-* (x donn, tout y) Problmes *-* (tout x, tout y)
19

Chemins de valeur optimale


Pour tout x et tout y, calculer xy = valeur optimale des chemins de x y

3 types de problmes : Problmes 1-1 (x et y donns) Problmes 1-* (x donn, tout y) Problmes *-* (tout x, tout y)
20

Chemins de valeur optimale issus dun sommet donn


Sommet initial x =1. i = valeur optimale des chemins de 1 i predi = prdcesseur optimal de i

i = min v (u) = v (1,L, predi , i)


u C 1 i

chemin de valeur i predi chemin de valeur i

21

Chemins de valeur optimale issus dun sommet donn


Rsultat dexistence Les valeurs i sont dfinies il ny a pas de circuit de valeur < 0 dans la descendance du sommet 1 Rciproquement: 1 v=a v=a + < a v()=<0b i

Valeurs non minores


22

v=a + 2 < a + < a

Chemins de valeur optimale issus dun sommet donn


Rsultat dexistence Les valeurs i sont dfinies il ny a pas de circuit de valeur < 0 dans la descendance du sommet 1 Rciproquement: 1 CQFD

v(u) = v(ue ) + v( ) v(ue )


i donc valeurs minores par celles des chemins lmentaires
23 ensemble FINI

tout circuit de valeur est de longueur 0

Chemins de valeur optimale issus dun sommet donn


CARACTERISATION Les valeurs i constituent LA solution MAXIMALE du systme d quations

1 = 0 i 1 : = min ( + v ( j, i) ) i j j

24

(2) b 2 2 (0) a 4 (4) 2 f (2) c 1 -2 2 1

(4) d 1 e(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 4 = min(0+4, 2+1, 4+2, 2+2) 4 = min(2+2, 2+1) 2 = min(4-2, 4+1) 2=2

FAUX! FAUX!

SYSTEME NON VERIFIE : VALEURS TROP GRANDES


25

(2) b 2 2 (0) a 4 (2) 2 f (0) c 1 -2 2 1

(1) d 1 e(0) 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) 1 = min(2+2, 0+1) 0 = min(2-2, 1+1) 0=0

VRAI! VRAI!

26

(2) b 2 2 (0) a 4 (2) 2 f (0) c 1 -2 2 1

(1) d 1 e(0) 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) 1 = min(2+2, 0+1) 0 = min(2-2, 1+1) 0=0

SYSTEME VERIFIE

VALEURS TROP Pas de chemin de valeur x de a tout x. PETITES Le sommet a nest pas racine du sous-graphe minimal.
27

(2) b 2 2 (0) a 4 (3) 2 f (1) c 1 -2 2 1

(2) d 1 e(1) 0

VALEURS CORRECTES

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 3 = min(0+4, 2+1, 2+2, 1+2) 2 = min(2+2, 1+1) 1 = min(3-2, 2+1) 1=1

SYSTEME VERIFIE

Il y a un chemin de valeur x de a tout x. Le sommet a est racine du sous-graphe minimal.


28

Algorithme de Bellmann-Kalaba
Rsolution du systme par approximations successives

i : i (1) = v (1, i ) avec v (1,1) = 0


j =1 ..n

k : i : i (k ) = min j (k 1 ) + v( j , i )

(initialisation avec la premire ligne de la matrice)

29

Algorithme de Bellmann-Kalaba
Proposition

k : i : i

(k )

= valeur minimale des chemins de 1 i , de longueur k

Dmonstration: Par rcurrence sur k

30

10

Algorithme de Bellmann-Kalaba
Proposition

k : i : i

(k )

= valeur minimale des chemins de 1 i , de longueur k

Dmonstration: Par rcurrence sur k vrai pour k=1, par construction

i : i

(1 )

= v(1, i )

avec v(1,1) = 0
31

Algorithme de Bellmann-Kalaba
Proposition

k : i : i

(k )

= valeur minimale des chemins de 1 i , de longueur k

Dmonstration: vrai pour k vrai pour k+1

i
1 lg k j

( k +1 )

=min j +v (j,i ) j=1 ..n


(k )

i lg =1

32

Algorithme de Bellmann-Kalaba
Proposition

Pas de circuit absorbant(de valeur < 0) k n : i : i


( k +1 )

= i

(k )

Si pas de circuits de valeur < 0 alors cette proposition est vrifie pour la plus grande longueur k de chemin lmentaire Corollaire: valeurs min obtenues existence de circuits de valeur < 0
33

11

-5 g 7 k 4 2

-2 l

(2)

4 i -1

1 2 f -1 -3 4 (-1) e 2 d 6 b -4 6 j a 3 1

(3)
c -2 h

(0)

CHEMINS DE LONGUEUR 1 BELLMAN-KALABA : PRINCIPE


34

-5 g 7

(0)
k 4 2

-2 l

(2)

4 i -1

1 2

(3) f
-1 -3 4 (-1) e 2 d 6 a

(3)
3 1 c -2

(0)

(7)

-4 b

(1)

(4)

CHEMINS DE LONGUEUR <= 2

35

(4)

-5 g 7

(0)
k 4 2

-2 l

(2)

4 i -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

-4 6 b

(0) (1)

(4)

CHEMINS DE LONGUEUR <= 3

36

12

(4)

-5 g 7

(-1) (0)
k 4 2

-2 l

(2)

4 i -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

-4 6 b

(0) (1)

(4)

CHEMINS DE LONGUEUR <= 4

37

(4)

-5 g 7

(-1) (0)
k 4 2

-2

(1) (2)
l 5

4 i 2 -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

-4 6 b

(0) (1)

(4)

CHEMINS DE LONGUEUR <= 5

38

(4)

-5 g 7

(-1) (0)
k 4 2

-2

(1) (2)
l 5

4 i 2 -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

h (6)

-4 6 b

(0) (1)

(4)

CHEMINS DE LONGUEUR <= 6

39

13

(4)

-5 g 7

(-1) (0)
k 4 2

-2

(1) (2)
l 5

4 i 2 -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

h (6)

-4 6 b

(0) (1)

(4)

CHEMINS DE LONGUEUR <= 7 AUCUNE REMISE EN CAUSE : MINIMA OBTENUS


40

(4)

-5 g 7

(-1) (0)
k 4 2

-2

(1) (2)
l 5

4 i 2 -1

1 2

(3) f
-1 -3 4 (-1) e 2 a

(3)
3 1 c -2

(0)

(7)

h (6)

-4 6 b

(0) (1)

(4)

GRAPHE MINIMAL (chemins issus de a)


41

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e

2 -5 (a) (a)

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

BELLMAN-KALABA : EXEMPLE DEXECUTION SUR LA MATRICE


f 6

42

14

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : 0 Minimum : 0

2 -5 (a) (a)

( 2 )

0 3 4 5

-7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

43

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : 2 Minimum : 2 (a)

2 -5 (a) (a) 2 (a)

( 2 )

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

44

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : -5 -1 Minimum : -5 (a)

2 -5 (a) (a) 2 -5 (a) (a)

( 2 )

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

45

15

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : -1 Minimum : -1 (c)

2 -5 (a) (a) 2 -5 -1 (a) (a) (c)

( 2 )

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

46

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : 6 Minimum : 6 (b) 9

2 -5 (a) (a) 2 -5 -1 6 (a) (a) (c) (b)

( 2 )

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

47

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e -2 Minimum : 3 (a) -2 (c) Courant : 3

2 -5 (a) (a)

( 2 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c)

4 5 -7 6

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

48

16

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 0 (a) Courant : 0 2

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c)

4 5 -7 6

49

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 2 (a) Courant : 2 3

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 (a)

4 5 -7 6

50

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : -5 -1 11 Minimum : -5 (a)

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 (a) (a)

4 5 -7 6

51

17

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : -1 -1 Minimum : -1 (c)

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 (a) (a) (c)

4 5 -7 6

52

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Courant : 6 4 Minimum : 6 (b) 4 (f)

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f)

4 5 -7 6

53

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e -2 1 Minimum : 3 (a) -2 (c) Courant : 3

2 -5 (a) (a)

( 2 ) ( 3 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c)

4 5 -7 6

54

18

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 0 (a)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c)

4 5 -7 6

55

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 2 (a)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c)

4 5 -7 6

0 2 (a)

56

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : -5 (a)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) 2 -5 (a) (a) -2 (c)

4 5 -7 6

57

19

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : -1 (c) -3 (e)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c)

4 5 -7 6

0 2 -5 -3 (a) (a) (e)

58

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 6 (b) 4 (f)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f)

59

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 3 (a) -2 (c)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) 2 -5 -3 4 (a) (a) (e) (f) -2 (c) -2 (c)

4 5 -7 6

60

20

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 0 (a) 0 (d)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f) 0 (d)

61

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 2 (a) 1 (d)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f) 0 1 (d) (d)

62

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : -5 (a)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) 2 -5 -3 4 (a) (a) (e) (f) -2 (c) -2 (c)

4 5 -7 6

0 1 -5 (d) (d) (a)

63

21

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : -1 (c) -3 (e)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f) 0 1 -5 -3 (d) (d) (a) (e)

64

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 6 (b) 4 (f)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f) 0 1 -5 -3 4 (d) (d) (a) (e) (f)

65

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e Minimum : 3 (a) -2 (c)

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) 2 -5 -3 4 (a) (a) (e) (f) -2 (c) -2 (c) -2 (c)

4 5 -7 6

0 1 -5 -3 4 (d) (d) (a) (e) (f)

66

22

a ( 1 ) 0

f 3 (a)

a 0

b 2

c -5 -3 4

e 3 4 3

f a b c 2 d e

2 -5 (a) (a)

( 2 ) ( 3 ) ( 4 ) ( 5 ) ( 6 )

2 -5 -1 6 -2 (a) (a) (c) (b) (c) 2 -5 -1 4 (a) (a) (c) (f) -2 (c) -2 (c) -2 (c) -2 (c)

4 5 -7 6

0 2 -5 -3 4 (a) (a) (e) (f) 0 1 -5 -3 4 (d) (d) (a) (e) (f) 0 1 -5 -3 4 (d) (d) (a) (e) (f)

b -5 a 2 3

-3 4 3

c 4 5 -7 2 4 d

STABILITE !
IL Y A UN CIRCUIT DE VALEUR 0

67

Complexit
Au plus n tapes A chaque tape : n mises jour de valeurs (i) Une mise jour : Un produit scalaire min + n additions et n-1 comparaisons Globalement : n 3 additions et n2(n-1) comparaisons

O(n3)
68

23

Vous aimerez peut-être aussi