Sunteți pe pagina 1din 16

Cercetari operaionale t

Brbcioru Iuliana Carmen a a


SEMINARUL 2

Determinarea drumului de valoare optim* Reele de transport a t

Cuprins
2 Determinarea drumului de valoare optim a Reele de transport t 2.1 Algoritmul Bellman- Kalaba . . . . . . . . . . . . . . . . . . . . . . 2.2 Algoritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . . . Index

5 6 9 15

Pentru etapele algoritmului Bellman- Kalaba studiaz Cursul 2 a Pentru etapele algoritmului Ford-Fulkerson studiaz Cursul 3 a

Determinarea drumului de valoare optim* Reele de transport a t

Seminarul 2

Determinarea drumului de valoare optim a Reele de transport t

Determinarea drumului de valoare optim* Reele de transport a t

2.1

Algoritmul Bellman- Kalaba


cij = 8 > v (xi ; xj ) > < > > : 1 0 daca (xi ; xj ) 2 U daca daca (xi ; xj ) 2 U = i = 1; n 1, (i 6= j) (i 6= j) (3.6)

i=j 1 (3.7)

cij =

8 < vi = min (vi + cij ) : v =0 n


1) i6=j

j = 1; n

8 < v (k) = min v (k i i : v (k) = 0 n


i6=j

+ cij

i = 1; n

1, j = 1; n , k = 1; 2; :::

(3.8)

Observaia 2.1.1 Pentru aplicarea algoritmului Bellman- Kalaba n vederea det termin rii drumului de valoare maxim se introduc urm toarele modic ri: a a a a 1. La denirea elementelor matricei C, dac (xi ; xj ) 2 U atunci cij = a = 1.

2. n relaiile (3.7) si (3.8) se nlocuiete operatorul de minim cu operatorul t s de maxim. Exemplul 2.1.2 S presupunem c graful de mai jos pune n evidena leg turile a a t a tehnologice si economice dintre activit tile necesare n derularea unui proiect com a plex ce constau n construirea unui obiectiv economic. Fiecare arc al grafului constituie o activitate a proiectului iar indicatorii vij = v(xi ; xj ) 0 ataai s t acestora reprezint duratele de execuie a activit tilor (xi ; xj ). Se pune problema a t a determin rii duratei totale de execuie a proiectului. a t

Pentru etapele algoritmului Bellman- Kalaba studiaz Cursul 2 a

Cercetri Operaionale Seminarul 2 a t Soluie: Durata total de execuie a proiectului este dat de drumul de t a t a valoare maxim care unete vrful iniial cu cel nal al grafului. Ataam grafului a s t s matricea C = (cij )1 i;j 6 n care elementele cij sunt denite de relaia (3.6) i t s innd cont de observaia 2.1.1. t t 0 x1 0 1 1 1 1 1 x2 5 0 1 1 1 1 x3 14 0 1 x4 15 11 12 6 1 1 x5 10 4 0 0 1 1 x6 1 1

x1

C =

B x2 B B x3 B B B x4 B B B x5 @ x6

1 1 1

C 1 C C 18 C C C 10 C C C 19 A 0

Vom trece matricea ataat grafului n tabelul Tabelul 3.3. Acest tabel mai s a (k) conine, pe lng elementele matricei C , vectorii linie vi , t a k = 1; 2; 3; ::: calculai pe baza relaiei (3.8) n care se nlocuiete operatorul t t s (0) de minim cu cel de maxim (vezi observaia 2.1.1). Se observ c vectorul vi t a a s-a obinut prin transpunerea ultimei coloane a matricii C. Pentru calcularea t (1) (0) elementelor vi s-a efectuat suma ntre elementele vectorului vi i elementele s corespunztoare ale rndului i (i = 1; 2; :::; 6) a matricii C pentru i 6= j. Dintre a sumele corespunztoare ecrui rnd s-a ales valoarea maxim. a a a Tabelul 3.3 x1 x1 x2 x3 x4 x5 x6
(0) vi (1) vi (2) vi (3) vi

x2 5 0 1 1 1 1 23 23 23 1

x3 14 0 1 1 1 18 22 22 22 1

x4 15 11 12 0 6 10 10 10 10 7 1

x5 10 4 1 0 1 1

x6 1 18 10 19 0 0 0 0 0 1 (Tabelul 3.3)

0 1 1 1 1 1 32 36 36 1

19 19 19 19

Determinarea drumului de valoare optim* Reele de transport a t Spre exemplu: v1


(1) (1)

= max f 1 + 0; 1 + 5; 18 + 14; 10 + 15; 19 + 10; 0 = max f 1 1; 1 + 0; 18


(2)

1g = 32 1g = 23; etc:
(1)

v2

1; 10 + 11; 19 + 4; 0

Pentru obinerea lui vi se nsumeaz elementele vectorului vi cu elementele t a corespunztoare ale rndului i (i = 1; 2; :::; 6) a matricei C, reinndu-se pentru a t ecare rnd valoarea maxim. Spre exemplu: a v1
(2)

(2) v2

= max f32 + 0; 23 + 5; 22 + 14; 10 + 15; 19 + 10; 0 = max f32


(3) (2)

1g = 36 1g = 23; etc:

1; 23 + 0; 22

1; 10 + 11; 19 + 4; 0

Cum vi = vi rezult c ne oprim, obinndu-se soluia optim. Valoarea a a t t a (3) maximal a drumului de la x1 la x6 este v1 = 36. Determinarea vrfurilor prin a care trece drumul se face astfel: v1
(3)

= max vj + c1j j6=1 n o (2) (2) (2) (2) (2) = max v2 + c12 ; v3 + c13 ; v4 + c14 ; v5 + c15 ; v6 + c16 = max f23 + 5; 22 + 14; 10 + 15; 19 + 10; 0
(3) (2) (2)

(2)

1g = 36:

Deci: v1 v3 v4 = max vj + c1j = v3 + c13 = 36


j6=1

x3 x4 x6

(3)

= max vj + c3j = v4 + c34 = 22


j6=1

(2)

(2)

(3)

= max vj + c4j = v6 + c46 = 10


j6=1

(2)

(2)

Drumul de valoare optim este a

= (x1 ; x3 ; x4 ; x6 ).

Cercetri Operaionale Seminarul 2 a t

2.2

Algoritmul Ford-Fulkerson

Exemplul 2.2.1 Fie problema de transport ilustrat n gura 4.2, cu capacit ti a a limitate (primele cifre pe arce) dar si cu costuri unitare de transport (cifra de pe arce din parantez ). S se stabileasc un plan de transport de la a la b astfel a a a nct cantitatea transportat s e maxim (x1 posed un disponibil sucient a a a a pentru acoperirea transportului necesar n reea). t

Figura 4.2

Soluie: Introducem n reea urmtorul t t a ux: ( '(a; x1 ) = 8 ( '(x1 ; x3 ) = 5 '(x1 ; x4 ) = 4 ( '(x2 ; x3 ) = 6

x3

'(a; x2 ) = 6 ( '(x3 ; x4 ) = 1 '(x3 ; x5 ) = 2

x1

x2

x4 f'(x4 ; b) = 4

x3

8 '(x2 ; x6 ) = 2 > '(x5 ; x4 ) = 1 > <

x6 f'(x6 ; b) = 2

'(x5 ; x6 ) = 6 > > : '(x ; b) = 4 5

Comparm valorile a uxului cu capacitile de pe ecare arc in parte, pe un drum at


Pentru etapele algoritmului Ford-Fulkerson studiaz Cursul 3 a

Determinarea drumului de valoare optim* Reele de transport a t care unete a cu b. s '(a; x1 ) = 8 c = 10 '(x1 ; x4 ) = 4 c=5 '(x4 ; b) = 4 c=6 ) ' < c =) (a; x1 ) nesaturat i marcm x1 cu + a s a ' < c =) (x1 ; x4 ) nesaturat i marcm x4 cu + x1 s a ' < c =) (x4 ; b) nesaturat i marcm b cu + x4 s a

Deci am gsit lanul a t l1 = fa; x1 ; x4 ; bg prin care s-a marcat ieirea b; deci s uxul existent nu este maxim. Avem:
+ l1 = f(xi ; xj ) 2 l1 j xj are eticheta xi g = f(a; x1 ); (x1 ; x4 ); (x4 ; b)g

l1

= f(xj ; xi ) 2 l1 j xi are eticheta "1 = minu2l+ fc(u)


1

xj g = ? 8; 5

"2 nu avem

'(u)g = min f10

4; 6

4g = 1

Lum a " = min f"1 ; "2 g = "1 = 1


+ Mrim a uxul cu o unitate pe arcele lui l1 i-l micorm cu o unitate pe arcele lui s s a l1 (nu e cazul). Noul va : ux

'(a; x1 ) = 9

x3

'(a; x2 ) = 6 ( '(x3 ; x4 ) = 1 '(x3 ; x5 ) = 2

x1

'(x1 ; x3 ) = 5 '(x1 ; x4 ) = 5

x2

'(x2 ; x3 ) = 6

x4 f'(x4 ; b) = 5

x3

8 '(x2 ; x6 ) = 2 > '(x5 ; x4 ) = 1 > <

x6 f'(x6 ; b) = 2

'(x5 ; x6 ) = 6 > > : '(x ; b) = 4 5

Deci pe lanul l1 = fa; x1 ; x4 ; bg nu se mai poate marca ieirea b;ntruct s-a t s 10

Cercetri Operaionale Seminarul 2 a t saturat arcul (x1 ; x4 ):

Cutm un alt lan plecnd din x1 : a a t '(a; x1 ) = 9 c = 10 '(x1 ; x3 ) = 5 c=7 '(x3 ; x4 ) = 1 c=2 '(x4 ; b) = 5 c=6 ) ' < c =) (a; x1 ) nesaturat i marcm x1 cu + a s a ' < c =) (x1 ; x3 ) nesaturat i marcm x3 cu + x1 s a ' < c =) (x3 ; x4 ) nesaturat i marcm x4 cu + x3 s a ' < c =) (x4 ; b) nesaturat i marcm b cu + x4 s a

ntruct am gsit lanul: a t l2 = fa; x1 ; x3 ; x4 ; bg prin care s-a putut marca ieirea b; s uxul existent nu este maxim. Avem: "1 = minu2l+ fc(u)
2

"2 nu avem

'(u)g = min f10

9; 7

5; 2

1; 6

5g = 1

Lum a " = min f"1 ; "2 g = "1 = 1 11

Determinarea drumului de valoare optim* Reele de transport a t


+ Mrim a uxul cu o unitate pe arcele lui l2 i-l micorm cu o unitate pe arcele lui s s a l2 (nu e cazul). Noul va : ux ( ( ( '(x2 ; x3 ) = 6 '(x1 ; x3 ) = 5 '(a; x1 ) = 10 x2 a x1 '(x1 ; x4 ) = 6 '(a; x2 ) = 6 8 '(x2 ; x6 ) = 2 > '(x5 ; x4 ) = 1 ( > < '(x3 ; x4 ) = 2 x4 f'(x4 ; b) = 6 x3 x3 '(x5 ; x6 ) = 6 > '(x3 ; x5 ) = 2 > : '(x ; b) = 4 5

x6 f'(x6 ; b) = 2

S-au saturat arcele (a; x1 ); (x1 ; x4 ); (x3 ; x4 ); (x4 ; b):

Cutm un alt lan plecnd a a t ) '(a; x2 ) = 6 ' < c=8 ) '(x2 ; x3 ) = 6 ' < c=8 ) '(x3 ; x5 ) = 2 ' < c=3 ) '(x5 ; b) = 4 ' < c=5 ntruct am gsit lanul: a t

din a: c =) (a; x2 ) nesaturat i marcm x2 cu + a s a c =) (x2 ; x3 ) nesaturat i marcm x3 cu + x2 s a c =) (x3 ; x5 ) nesaturat i marcm x5 cu + x3 s a c =) (x5 ; b) nesaturat i marcm b cu + x5 s a

l3 = fa; x2 ; x3 ; x5 ; bg 12

Cercetri Operaionale Seminarul 2 a t prin care s-a putut marca ieirea b; s uxul existent nu este maxim. Avem:
+ l3 = f(xi ; xj ) 2 l3 j xj are eticheta xi g = f(a; x2 ); (x2 ; x3 ); (x3 ; x5 ); (x5 ; b)g

l3

= f(xj ; xi ) 2 l3 j xi are eticheta "1 = minu2l+ fc(u)


3

xj g = ?

"2 nu avem

'(u)g = min f10

9; 8

6; 3

2; 5

4g = 1

Lum a " = min f"1 ; "2 g = "1 = 1


+ s s a Mrim a uxul cu o unitate pe arcele lui l3 i-l micorm cu o unitate pe arcele lui ux l3 (nu e cazul). Noul va :

'(a; x1 ) = 10

x3

'(a; x2 ) = 7 ( '(x3 ; x4 ) = 2 '(x3 ; x5 ) = 3

x1

'(x1 ; x3 ) = 5 '(x1 ; x4 ) = 6

x2

'(x2 ; x3 ) = 7

x4 f'(x4 ; b) = 6

x3

8 '(x2 ; x6 ) = 2 > '(x5 ; x4 ) = 1 > <

x6 f'(x6 ; b) = 2

'(x5 ; x6 ) = 6 > > : '(x ; b) = 5 5

S-au saturat arcele (a; x1 ); (x1 ; x4 ); (x3 ; x4 ); (x3 ; x5 ); (x4 ; b); (x5 ; b):

13

Determinarea drumului de valoare optim* Reele de transport a t Cutm un alt lan plecnd din a: a a t '(a; x2 ) = 7 c=8 '(x2 ; x6 ) = 2 c=4 '(x6 ; b) = 2 c=5 )

' < c =) (a; x2 ) nesaturat i marcm x2 cu + a s a ' < c =) (x2 ; x6 ) nesaturat i marcm x6 cu + x2 s a ' < c =) (x6 ; b) nesaturat i marcm b cu + x6 s a

ntruct am gsit lanul: a t l4 = fa; x2 ; x6 ; bg prin care s-a putut marca ieirea b; s uxul existent nu este maxim. Avem:
+ l4 = f(xi ; xj ) 2 l4 j xj are eticheta xi g = f(a; x2 ); (x2 ; x6 ); (x6 ; b)g

l4

= f(xj ; xi ) 2 l4 j xi are eticheta "1 = minu2l+ fc(u)


4

xj g = ? 7; 4

"2 nu avem

'(u)g = min f8

2; 5

2g = 1

Lum a " = min f"1 ; "2 g = "1 = 1


+ Mrim a uxul cu o unitate pe arcele lui l3 i-l micorm cu o unitate pe arcele lui s s a ux l3 (nu e cazul). Noul va :

'(a; x1 ) = 10

x3

'(a; x2 ) = 8 ( '(x3 ; x4 ) = 2 '(x3 ; x5 ) = 3

x1

'(x1 ; x3 ) = 5 '(x1 ; x4 ) = 6

x2

'(x2 ; x3 ) = 7

x4 f'(x4 ; b) = 6

x3

8 '(x2 ; x6 ) = 3 > '(x5 ; x4 ) = 1 > <

x6 f'(x6 ; b) = 3 14

'(x5 ; x6 ) = 6 > > : '(x ; b) = 5 5

Cercetri Operaionale Seminarul 2 a t S-au saturat arcele (a; x1 ); (a; x2 ); (x1 ; x4 ); (x3 ; x4 ); (x3 ; x5 ); (x4 ; b); (x5 ; b):

Algoritmul se termin ntruct ieirea reelei nu mai poate marcat. a s t a

15

Index
Algoritmul Bellman - Kalaba, 6 Ford - Fulkerson, 9 Retea de transport, 5

16