Cercetari operationale

˘u O.M. Gurza

1

˘ 1Programare liniara

1.1 Algoritmul Simplex
(1947, G. Dantzig) Problema: ˘ canonica ˘: Program liniar sub forma ˘ se afle maximul func¸ Sa tiei

f (x1, ...xn) =
cu condi¸ tiile: (1.1.1)
n X i=1

n X i=1

cixi + cn+1

ajixi ≤ bj , j = 1, m.

(1.1.2) xi ≥ 0, i = 1, n. ˘ condi¸ în cele ce urmeaza tiile (1.1.1) le vom rescrie sub forma: n X (1.1.3) yj = bj + (aji) (−xi) ≥ 0
i=1

- 2-

∗ ˘ (program optim). Solu¸ tia (x∗ ste solu¸ tia optima 1 , ..., xn ) se nume¸ ∗ ˘ ineg.(1.1.1),(1.1.2). f (x∗ 1 , ..., xn ) ≥ f (x1, ...xn ) , ∀ (x1, ...xn ) care verifica

˘ pentru doua ˘ variabile 1.2 Interpretare geometrica

Exemplul 2.1 Sa ˘ se afle minimul, respectiv maximul func¸ tiei f (x, y ) = 3x + 4y cu restric¸ tiile: ⎧ x + 3y ≥ 3 ⎪ ⎪ ⎨ x − y ≥ −2 (1.2.1) 2x + y ≤ 4 ⎪ ⎪ ⎩ x ≥ 0, y ≥ 0 ˘ zona din plan care corespunde la inegalita ˘¸ Pentru rezolvare se deseneaza tile (1.2.1) ˘ dreapta paralela ˘ cu 3x + 4y = 0 cea mai depa ˘ rtata ˘ , respectiv cea mai s ¸i se determina ˘ de origine care intersecteaza ˘ zona: apropiata - 3-

5 4
3x +4

y
0

y-4

3
=0

x+3

y-3= 0

2 1

D

C
3x +4 y-3 8/3

x-y +

2=

=0

A
1

B
2 3 4
2x -4= +y

-3

-2

-1

O
-1

x

˘ zona din plan care corespunde la inegalita ˘¸ tile (1.2.2) Pentru rezolvare se deseneaza ˘ dreapta paralela ˘ cu −3x + 6y = 0 care intersecteaza ˘ axa Oy în cel mai s ¸i se determina ˘ rtat) de origine s ˘ zona: apropiat (depa ¸i intersecteaza - 4-

Exemplul 2.2 Sa ˘ se afle minimul, respectiv maximul func¸ tiei f (x, y ) = −3x + 6y cu restric¸ tiile: ⎧ x + 2y ≥ −1 ⎪ ⎪ ⎨ 2x + y ≥ 4 (1.2.2) x − y ≥ −1 ⎪ ⎪ ⎩ x − 4y ≥ 13, −4x + y ≥ −23

0

10 y 5 0 15 1= y= 6 + y + x-3x 1 x-4y+ 3=0 -1 1 2 3 4 5 6 7 8 9 x O x+ -5 2y +1 =0 23=0 4x-y+ 2x+ = y-4 0 -10 .5- .

Pasul de baza ˘ atasa ˘ m tabelul simplex: La problema de optimizare liniara −x1 −x2 · · · −xn 1 y1 = a11 a12 · · · a1n b1 y2 = a21 a22 · · · a2n b2 (1.. .1. . . .6- . adica ˘ (x1. . . .. 2. .. date.2.xn) care verifica 1. Se "imbuna te¸ ste" solu¸ tia astfel ga ˘ este "pas Gauss-Jordan modificat".3) . ..2. .1 Algoritmul general Algoritmul va consta din 2 faze: ˘ ineg. Se determina tie admisibila ˘ ta ˘¸ ˘ sita ˘. . ym = am1 am2 · · · amn bm f = −c1 −c2 · · · −cn cn+1 ˘ m în acest tabel (−x1) cu y1 : Schimba ec 1: n X y1 = (−a1i) xi + b1 i=1 a11 6= 0 . ˘ o "solu¸ ˘ ".

Pn µ ¶ X n −y1 + i=2 (a1i) (−xi) + b1 = a21 − a2i (−xi) + b2 = + a11 i=2 n X a21 −a21b1 + a11b2 −a21a1i + a2ia11 = − (−y1) + (−xi) + a11 a11 a11 i=2 n X i=1 a2i (−xi) + b2 = . ym avem: y2 = .(1.... .4) x1 = −y1 + Linia 1 din tabelul modificat: Pn i=2 (a1i ) (−xi ) + b1 a11 1 a12 a11 a11 .2....7- . b1 a11 înlocuind x1 în expresiile y2...

. . La linia k adun linia 1 înmul¸ tita a11 Linia 1 devine linia 1 : a11 Coloana 1 devine − coloana 1:a11. .... ... . · · · a11 a11 11 a21 a21 a21 21 y2 = − a11 a22 − a11 a12 · · · a2n − a11 a1n b2 − a a11 b1 .ym = P µ ¶ X n −y1 + n ( a ) ( − x ) + b 1i i 1 i=2 = am1 − ami (−xi) + bm = + a11 i=2 n X am1 −am1b1 + a11bm −am1a1i + amia11 = − (−y1) + (−xi) + a11 a11 a11 i=2 ak1 ˘ cu − . .8- . . −y1 −x2 ··· −xn 1 a1n b1 x1 = a1 . . . Obs. . am1 am1 am1 m1 ym = − a a − a · · · a − a b − m 2 12 mn 1 n m a11 a11 a11 a11 b1 c1 c1 c1 c1 f = −a c − a · · · c − a c − 2 12 n 1 n n +1 a11 a11 a11 b1 11 n X i=1 ami (−xi) + bm = .

2. .Procedând la fel cu x2. n j =1 n X j =1 cij (−yj ) + di ≥ 0. i = n + 1. m . . .9- . . . x3. .. .2 · · · cn+1. . .2. n ˘ tura cu variabilele ini¸ ˘ de: iar lega tiale este data n X xi = cij (−yj ) + di. i = 1.n dn+1 . xn se ajunge la tabelul: −y1 −y2 · · · −yn 1 x1 = c11 c12 · · · c1n d1 x2 = c21 c22 · · · c2n d2 . . . .. . .. . ...7) yi = yi ≥ 0. .5) yn+1 = cn+1.. . .1 cn+1.6) max f (y ) = qi (−yi) + Q i=1 cu condi¸ tiile: (1.. .2. xn = cn1 cn2 · · · cnn dn (1. i = 1. . ym = cm1 cm2 · · · cmn dm f= q1 q2 · · · qn Q ˘ toarea problema ˘ de optimizare: Acest tabel corespunde la urma n X (1.

1 Sa ˘ se elimine necunoscutele x1.Exemplul 2. x2 pentru problema: max f (x1.10- . ˘ tor: Tabelul simplex corespunza −x1 −x2 1 pivot y1 = y2 = y3 = y4 = y5 = f= −1 −2 1 −2 −1 −4 −1 1 1 −1 4 13 4 −1 23 3 −6 0 . x2) = −3x1 + 6x2 x1 + 2x2 + 1 ≥ 0 2x1 + x2 − 4 ≥ 0 x1 − x2 + 1 ≥ 0 x1 − 4x2 + 13 ≥ 0 −4x1 + x2 + 23 ≥ 0.

11- .−x2 1 −2 1 x1 = = 2 −1 −1 = −1 pivot ¢ ¡ ¡ −2 ¢ −2 −2 (−2) = 3 −4 + ¡− −1 ¢ 1 = −6 y2 = − −1 = −2 −1 +¡ − −1 ¢ 1 1 1 y3 = − − 1 + ¡− − 1 + ¡− − −1 = −1 −1 ¢ (−2) = 3 −1 ¢ 1 = 0 1 −1 −1 y4 = − − = − 1 4 + − 13 + − ( − 2) = 6 −1 −1 ¢ −1 ¢ 1 = 12 ¡ ¡ 4 4 4 ( − 2) = − 9 y5 = − − = 4 − 1 + − 23 + − 1 −1 −1 ¢ 1 = 27 ¢ ¡ ¡ 3 3 3 ( − 2) = − 12 f = −− = 3 − 6 + − 0 + − 1 −1 −1 1 = 3 − y1 ¢ −y2 1 ¡ 1 2 1 −2 2 x1 = − 3 1 = −1 + − 3 (−2) : 3 −1 = 2(−1/3) : − 3 pivot ¡ −2 ¢ −2 2 1 ( − 2) = 3 / 3 / 3 x2 = − −1 = −2/3 : − 3 −1¡+ − : −2 −1 3 ¢ 1 −1 y3 = − − = − 1 + ( − 1) ( − 2) : 1 1 + − 6 −1 −1 ¢ (−2) = 3 (−1/3) : −1 ¡ 1 −1 (−2) = 6 (−1/3) : −2 y4 = − − = − 1 + ( − 2) ( − 2) : 3 4 + − 24 −1 −1 ¢ ¡ 4 4 (−2) = −9 (−1/3) : 3 9 y5 = − − = 4 + (3) ( − 2) : − 2 − 1 + − 1 −1 ¢ ¡ 3 3 f = −− 1 = 3 + (4) (−2) : −5 −6 + − −1 (−2) = −12 (−1/3) : 4 −21 −y1 1 −1 = −1 .

. Definitia 2.2.2. . . . ˘ de urma ˘ toarea teorema ˘: Importan¸ ta solu¸ tiilor bazice este data Teorema 2. ym} este solu¸ atunci solu¸ tia bazica ˘ se nume¸ ste degenerata ˘ . y2.2. .1 {y1. . y2.7) are solu¸ tie optima ˘ daca ˘ . tie bazica ˘ atunci cele n variabile nule se Definitia 2.7) daca ˘ este solu¸ tie pentru sistemul de inegalita ˘¸ ti (1. ym} se nume¸ ste solu¸ tie bazica ˘ a problemei (1. ym} este solu¸ numesc variabile nebazice. y2.7) (solu¸ tie admisibila ˘) s ¸i n din componente sunt nule. . tie bazica ˘s ¸i exista ˘ variabile bazice nule. .6)-(1.2.6)-(1. .x1 = x2 = y3 = y4 = y5 = f= −y1 −y2 1 1 2 − 3 3 3 1 −2 −2 f = (−5) (−y1) + 4 (−y2) − 21 3 3 2 1 −1 6 ( − y ) − x1 = 1 1 3 3 (−y2) + 3 1 ( − y ) + 3 −2 24 x2 = − 2 1 3 3 (−y2) − 2 −2 3 9 −5 4 −21 Definitia 2.2 Daca ˘ {y1.1 Problema de programare liniara ˘ (1. . . iar celelalte variabile bazice.2. si nedegenerata ˘ în caz contrar.3 Daca ˘ {y1.12- . .

7). ym} care verifica Demonstra¸ tie: Presupunem ca . m rezulta tia 2.1 cn+1. i = n + 1.5) exista ˘ dr < 0 (n + 1 ≤ r ≤ m) s ¸i cri ≥ 0. m s ˘. ˘ (1. .2.2. ) {y1. . .2. i = n + 1. . . n yi = di. ˘ ca ˘ daca ˘ yi = 0. y2. .1 Daca ˘ în tabelul (1. .7). .2. Atunci ˘ exista ˘ {y1.2. . ym = cm1 cm2 f= q1 q2 · · · −yn 1 · · · cn+1. .5) di ≥ 0.2 . . · · · cmn dm · · · qn Q Lema 2. ym} care sa ˘ verifice inegalita ˘¸ tile (1.5) rezulta ˘ ca ˘ (vezi defini¸ ¸i conform ipotezei di ≥ 0. . i = 1. y2.. i = 1. i = n + 1. m atunci o solu¸ tie bazica ˘ este data ˘ de: (1. −y1 −y2 yn+1 = cn+1. .n dn+1 . y2. . . ym} este solu¸ tie bazica Lema 2. i = n + 1. . . n atunci nu exista ˘ {y1. .2.2 Daca ˘ în tabelul (1. ..s ¸i numai daca ˘ are solu¸ tie optima ˘ bazica ˘.8) yi = 0. n atunci yi = Demonstra¸ tie: Din tabelul (1. i = 1.13- . . m.1 di. .

conform Gaussîncât c > 0.yi ≥ 0.5) exista ˘ dr < 0 (n + 1 ≤ r ≤ m) s ¸i exista ˘1≤s≤n asfel încât crs < 0 atunci efectuând un pas Gauss Jordan modificat cu pivotul ci0s ales dupa ˘ regula: ¾ ½ di0 di (1.2 Pentru orice problema ˘ de programare liniara ˘ dupa ˘ un numa ˘ r finit de pa¸ si se ajunge la o solu¸ tie admisibila ˘ bazica ˘ sau se ajunge la concluzia ca ˘ problema nu are solu¸ tie. i = 1.3 Daca ˘ în tabelul (1.9).14- . ci0s Teorema 2.9) 0< = min >0 ci0s n+1≤i≤m cis (adica ˘ în tabelul (1. contradic¸ crj (−yj ) + dr rezulta tie cu yr ≥ 0.2. Daca is Jordan : di0 0 dr = dr − crs > dr .2.5) se schimba ˘ −ys cu yi0 ) avem (notând elementele noului tabel ˘ nebazica ˘ . Lema 2. deci cu accent) pentru i0 6= r d0r > dr iar pentru i0 = r yr este variabila yr = 0 > dr .2. ˘ din cele trei leme precedente. Demonstra¸ tie: Rezulta .2. Alegem i0 conform regulii (1. ˘ cel pu¸ Demonstra¸ tie: Conform ipotezei în coloana s exista tin un indice i astfel di ˘ i0 6= r atunci. n s ¸i din yr = n X j =1 ˘ yr < 0.

k = 1. Teorema precedenta ˘ m tot de la tabelul (1. n... Dar f = −qst + Q → ∞ când t → ∞. 1 ≤ s ≤ n s ¸i exista ˘ cis > 0. i = 1. k = 1. yk = 0. Lema 2.6 Daca ˘ exista ˘ qs < 0 .2. n + 1 ≤ r ≤ m atunci sup f (x1. k 6= s.4 Daca ˘ în (1.15d .5) în care presupunem ca ˘ ultima Pentru optimizare pleca ˘ are doar numere pozitive (adica ˘ de la o solu¸ ˘ ).˘ rezolva ˘ prima faza ˘.5) qi ≥ 0.9) se ob¸ tine efectuând un pas G-J modificat un nou tabel simplex (notând elementele noului tabel cu accent) cu Q0 > Q. n. n avem yi = −cist + di ≥ 0. k = 1.2. Demonstra¸ tie: Alegând elementul pivot ca în enun¸ t avem Q0 = − cii0s qs + Q > Q. dupa ˘ . m. Demonstra¸ tie: Alegem ys = t > 0. ∀t > 0. coloana tie bazica tia optima ˘ este yi = 0. Lema 2. egalitatea având loc doar pentru yk = 0. 1 ≤ s ≤ n s ¸i crs ≤ 0. i = n + 1.2.5 Daca ˘ exista ˘ qs < 0 . 0 ˘: Din cele trei leme rezulta Teorema 2. i = 1. xn) = ∞. n.. n + 1 ≤ i ≤ m atunci alegând un element pivot din coloana s dupa ˘ regula (1. Lema 2.3 Oricare ar fi problema de progamare liniara ˘ cu solu¸ tii admisibile. n atunci solu¸ Pn Demonstra¸ tie: Avem f = − k=1 qk yk + Q ≤ Q pentru yk ≥ 0. .

2 Continuare la exemplul 2. = c11 1 c21 3 aleg i0 = 1 : pivot:c11 −y3 −y2 1 −y3 −y4 1 y1 = 1 −1 6 y1 = 1 + 1 ∗ (−3) = −2 1 6 + 1 ∗ 6 = 12 pivot pivot y4 = −3 1 6 y2 = −3 1 6 y5 = 2 1 21 y5 = 2 + (−1) ∗ (−3) = 5 −1 21 − 1 ∗ 6 = 15 f = 5 −1 9 f = 5 + 1 ∗ (−3) = 2 1 9 + 1 ∗ 6 = 15 fmax = 15 . Exemplul 2.un numa ˘ r finit de pa¸ si G-J modifica¸ ti se ob¸ tine sau solu¸ tia optima ˘ sau concluzia ca ˘ maximul este infinit.16- .1. −y1 pivot −y2 1 y3 = 1 −1/1 6/1 y4 = −3/1 −2 + (−3/1) (−1) = 1 24 + (−3/1) 6 = 6 y5 = − (−2) /1 = 2 3 + (− (−2) /1) (−1) = 1 9 + (− (−2) /1) 6 = 21 f = − (−5) /1 = 5 4 + (− (−5) /1) (−1) = −1 −21 + − (−5) /1 ∗ 6 = 9 f = (−5) (−y1) + 4 (−y2) − 21 2 ( − y ) − x1 = 1 1 3 3 (−y2 ) + 3 1 ( − y ) + x2 = − 2 1 3 3 (−y2 ) − 2 q1 = −5 < 0 d1 6 d2 24 = .

elementele de pe coloana s se înlocuiesc cu ele/pivot s ¸i cu semn schimbat. Celelalte elemente din noul tabel se ob¸ tin din adunarea în locul pivotului se pune c1 rs la vechiul element a (elementului de pe coloana corespunza ˘ toare s ¸i linia pivotului din vechiul tabel)*elementul de pe linia lui s ¸i coloana pivotului din noul tabel. iar . Elementele de pe linia pivot se împart cu pivotul. ys.1 La pas G-J modificat cu pivot crs se fac urma ˘ toarele modifica ˘ ri: elementele din capul de tabel de pe coloana s s ¸i linia r se schimba ˘ intre ele. yr ↔ −yr . (adica ˘ −ys.17- .1 2 1 2 x1 = 1 3 (−y1) − 3 (−y2 ) + 3 = 3 (−12) − 3 (−6) + 3 = 3 1 2 1 ( − y ) + ( − y ) − 2 = − ( − 12) + x2 = − 2 1 2 3 3 3 3 (−6) − 2 = 4 Remarca 2. Exemplu: . cu schimbare de semn.

−21 = 84 deci pivotul e − 7 −x1 −12 −8 −20 −1 −x2 −28 −5 −7 −1 pivot 7 −28 1 −28 − 17 4 −21 −3 3 4 5 7 − 28 − 28 28 . −7 = 3 deci pivotul este (−28) −6 −42 −1 0 −x1 −y1 −x3 1 −12 3 1 1 −84 = 3¢ −28 ¡ 7 ¢ −28 4 −28 = ¡ 41 5 35 5 −8 + (−12) ¡−5 − − 40 + ( − 84) = − 28 ¢ 7 −28 4 −28 ¢ = −25 ¡ 7 17 7 −20 + (−12) ¡ −7 − − 42 + ( − 84) = − 17 28 ¢ −28 4 −28 ¢ = −21 ¡ 4 1 3 1 = − −1 + (−12) −1 − 0 + ( − 84) 28 7 −28 4 −28 = 3 −x1 −y1 −x3 1 3 1 1 3 7 −28 4 n o 41 5 35 − 7 −28 − 4 −25 min −25 .y1 = y2 = y3 = f1 = x2 = y2 = y3 = f1 = x2 = y2 = y3 = −17 f 1 = −4 7 −x3 1 −7 −84 © −40 −84 −42 ª −10 −40 min −5 .18- . −28 .

(−17) / (−7/28) = 68 − 28 = −4 17 7 1 ¡ 1 ¢ 13 4 1 f 1 = − 7 + (−17) − 7 = 7 − −728 = − 1 7 −7 y1 = −x1 −y3 −x3 1 6 x2 = 20 − 7 7 7 y2 = 44 7 y1 = 68 13 f1 7 pivot −5 7 −x1 −y3 −x3 1 1 ¡ 1 ¢ 20 ¡ 1¢ 3 1 6 −28 x2 = 7 + (−17) − 7 = 7 − 7 = − 7 7 3 + (−21) − 7 = 6 −28 ¡ 5 ¢ 44 − −528 ¡ 5¢ 41 5 40 y2 = − 7 + (−17) − 7 = 7 = − 7 − 7 −25 + (−21) − 7 = −10 7 −28 1 6 −28 (−21) / (−7/28) = 84 ¡ 1 ¢ 33 3 + (−12) − 7 = 7 − 40 7 −10 −4 17 84 1 33 −1 − 7 7 7 −x1 −y2 −x3 1 44 8 1 1 x2 = 20 + ( − 1 / 5) = − / (5 / 7) = − 2 6 + (−10) (−1/5) = 8 7 7 5 7 5 pivot ¢ ¡ ¡ 5¢ ¡ 5¢ 44 5 44 7 −5 14 y3 = 1/ − 7 : − 5 8 −10/ − 7/ 7 = ¡ 44− ¡ ¢7 ¡ = ¢ ¢ 28 164 28 28 y1 = 68 + ¡ − 4 / (5 / 7) = − 49 84 + ( − 10) − − = 7 ¢¡ 5 ¢ 5 5 5 ¢ = 140 ¡ 13 44 3 1 33 1 47 −1 f1 −1 1 7 + 7 5 = 5 7 / (5/7) = − 5 7 + (−10) − 5 = 7 .19- .

20- . x2 = 28.3 .2 −x1 −y2 −x3 1 1 x2 = 8 − 2 8 5 5 7 y3 = − 44 − 8 14 5 5 28 y1 = 164 − 49 140 5 5 3 1 47 f1 − 1 5 5 7 ˘ :x1 = 0. y3 = 0. y2 = 10. 10/ (44/7)} = 17 deci e 68 −x2 −y3 −x3 1 1 x1 = 1/68 = 68 −4 17 28 ¢ ¡ 20 5 3 1 5 150 = y2 = −7 /68 = − 119 10 + 28 − 119 7 17 ¢ 126 ¡ 119 −44 11 41 51 11 = 17 y1 = 7 /68 = − 119 − 119 − 7 10 + 28 ¡ − 119 ¢ 13 13 4 17 13 55 = − f 1 = − −7 /68 = 476 − 4 + 28 119 28 476 17 Exemplul 2. 10/ (20/7) . solu¸ tie bazica 7 pivotul: min {28/68. y1 = 10. x3 = 0.

−x1 −x2 −x3 pivot 1 y1 = −2 y2 = −2 f 1 = −1 −x1 x2 = 2 x3 = 0 f1 = 3 −x1 x2 = 2 x3 = f1 = −2 −8 −5 −12 y2 = −3 0 f 1 = −y1 −1 + (−1) (2/3) = − 5 3 1 −1/ (−3) = 3 −2 + (−1) (1/3) = − 7 3 −y1 −y2 1 2 16 −5 3 3 3 pivot 1 3 −7 3 −1 −1 −2 −x1 −y1 −x3 1 x2 = 2 −1 2 8 pivot −1 −3 −2 1 −y2 −2/ (−3) = 2 3 1 1 −3 = − 3 −1/ (−3) = 1 3 0 3 −4 16 1 8 + (−4) ∗ (2/3) = 16 3 4 −4/ (−3) = 3 16 + (−4) ∗ (1/3) = 44 3 x3 = f1 = 4 0 −1 3 3 1 44 3 3 3 −x1 ¡ ¢ − y1 ¢ ¡ 1 −5 / − x2 = 2 3 3 =5 0 3 ¡ 7 −3 pivot 1 1 / 3 ¢ ¡ : 3¢ / −1 3 =7 −y2 ¢ ¡ 2 1 + 5 ∗ − 3 3 = −1 −1 /3)¢= −1 3 /(1 ¡ 1 1 3 + 7 − 3 = −2 .21- 1 16 3 + 5 ∗ 4/3 = 12 (1/3) = 4 44 3 + 7 ∗ 4/3 = 24 4 3/ .

3 Problema de transport ˘ cu cij costul transSe dau m centre de produc¸ tie s ¸i n centre de desfacere. i la c.1 Exemplul 3. i la c. m Pjm .1. n i=1 xij = bj ³ Pi=m.22- . Se noteaza portului unei unita¸ ti de produs de la c. i = 1. i.2) min cij xij = f (X ) Pn =1 xij = ai .p. j. Se cere sa ˘ se determine xij astfel încât costul total al transportului necesara ˘ fie minim.1) cu condi¸ tiile: (1.p. j = 1. d. sa j =n i =m X i=1 j =1 (1.j =n ´ Pm Pn xij i=1 ai = j =1 bj i.d. cu xij cantitatea de produs ˘ de la c. cu ai cantitatea produsa ˘ la c. j .p. j . d.j =1 xij ≥ 0 Exemplul 3. cu bj cantitatea transportata ˘ la c.2 Exemplul 3.3.3.3 .

3 4 .23- .

X = ⎝ ..2) sunt un sistem de n+m−1 ecua¸ tii cu nm necunoscute.... xmn bn a1 .... (de aflare a unei solu¸ tii bazice) ⎛ ⎞ ⎛ x11 . xmn b1 . .1 O solu¸ tie a (1. . Definitia 3.3. 1.24- x1n ... . x11 . ⎠ . ..3. x11 = min{a1.Remarca 3....2) se nume¸ ste solu¸ tie bazica ˘ daca ˘ are cel mult n + m − 1 variabile nenule.. . X = ⎜ ⎝ xm1 . ..3.. b1}.1 Metoda col¸ tului de N-V. Primul pas va consta în determinarea unei solu¸ tii de pornire. xm1 . La ex. . . care are o infinitate de solu¸ tii. x1n ⎜ .. nedegenerata ˘ daca ˘ are exact n + m − 1 variabile nenule..1 Conditiile (1. ⎟ ⎟ am ⎠ 0 ⎞ ... degenerata ˘ în caz contrar. 1 x11 = 100.

x34 = 135 85 135 500 2 100 0 3 0 4 25 0 1 135 1 0 0 4 0 0 125 0 0 135 0 0 0 0 4 0 2 20 3 85 0 105 0 0 0 0 1 0 0 5 0 0 4 135 0 0 135 0 0 100 0 180 0 220 0 1270 0 0 0 0 . Daca ˘ m pâna ˘ elimina ˘ m toate liniile s Continua ¸i coloanele lui X.˘ x11 = a1 atunci x1j = 0. x12 = x13 = ⎞ x14 = 0. Tai coloana 1 din X . 180 := 180 ⎞ − 25 x22 x23 x24 155 X = ⎝ x32 x33 x34 220 ⎠ 135 105 135 500 135. 105 ¶:= 105 − 20. Daca ˘ x11 = b1 atunci xi1 = 0. x33 x34 220 X= x33 = 85. x32 = 0. Pe ex. x24 = 0. i = 2. b1 := 125 − 100 = 25. m. "Tai" linia 1 din X . n. b1 := b1 − a1. x21 x22 x23 x24 180 X = ⎝ x31 x32 x33 x34 220 ⎠ 25 135 105 135 500 x21 =⎛ 25. j = 2. 155 x22 =⎛ ⎞ := 155 − 135 x23 x24 20 X = ⎝ x33 x34 220 ⎠ 105 135 500 x23 =µ 20.⎛ 1: x11 = 100.25- . x31 = 0.a1 := a1 − b1.

˘ se cauta ˘ printre sol.1 Având o solu¸ tie bazica ˘ X se nume¸ ste lan¸ t de celule un s ¸ir de celule cu proprieta ˘¸ tile ca ˘ nu exista ˘ 3 celule pe aceea¸ si linie sau coloana ˘ s ¸i 2 celule succesive sunt în aceea¸ si linie sau coloana ˘.3 O solu¸ tie bazica ˘ se nume¸ ste aciclica ˘ daca ˘ nu exista ˘ un ciclu cu el.1 Metoda poten¸ tialelor Definitia 4.2 Se nume¸ ste ciclu un lan¸ t la care indicele de linie sau de coloana ˘ de la primul el. nenule. Exemplul 4. x13.1 x12. Ideea : Solu¸ tia optima . Exemplul 4. s ¸i ultimul coincid.4. x23.1. x13.26- . x22 Definitia 4.4 Optimizarea solu¸ tiei bazice 1. x23.2 x12. bazice aciclice. Definitia 4.

j = 1. j pentru care xij > 0. m Pjm x0ij = bj³ .j =n = i=1 ui j =1 xij + j =1 vj i=1 xij = i=1. Fie Demonstra¸ tie: dem.j =1 (ui + vj ) xij = f (X ) ˘ . j = 1.j =n i=1.j =n i =1 0 ´ 0 Pi=m.. n + m nec.) calcula δ ij = −cij + ui + vj . i = 1. optima ˘ .j =n Pi=m.j =1 Pi=m. i = 1.j =1 xij i=1 ai = j =1 bj i. poten¸ tiala ˘ daca ˘ exista ˘ numerele ui.j =n Pi=m.j =n 0 0 0 0 c x ≥ ( u + v ) x = u x + v x ij i j i j ij ij ij ij i =1 .j =1 i =1 .j =n Pi=m.(n + m − 1 ec. ca X este poten¸ tiala n 0 x =1 ij = ai . m.j =1 Pn Pm 0 Pm Pn Pm Pn 0 = i=1 ui j =1 xij + j =1 vj i=1 xij = i=1 uiai + j =1 vj bj = Pn Pm Pm Pn Pi=m.j =1 cij xij Pi=m.j =n Pn X o solu¸ tie a sistemului Pm c x ij ij ≥ i =1 .4 Solu¸ tia bazica ˘ X se nume¸ ste sol. optima ˘ daca ˘s ¸i numai daca ˘ este poten¸ tiala ˘. n Pi=m.27- x0ij ≥ 0 .1 Solu¸ tia bazica ˘ X este sol.j =1 i =1 . vj astfel încât: ui + vj ≤ cij ¡ ¢ egalitatea având loc pentru indicii i.Definitia 4. ˘ daca ˘P ˘ atunci X este sol. determina ˘ m uis Fie X o sol. n Teorema 4.j =1 i =1 . bazica ¸i vj din: ui + vj = cij ˘m pentru ij pentru care xij > 0.u1 = 0..

3 O sol. Rezulta Exemplul 4.˘ δ ij < 0.28- . se numeroteaza ˘ r par ciclului pornind de la xi0j0 în sens trig. impar. x22 = 135. x33 = 85. bazica ˘ x11 = 100. Se alege cel mai mic element cu numa ˘ solu¸ ˘ sca ˘ zând din ele. u1 = 0 = 4 = 1 = 2 = 3 = 4 . Se construie¸ ste o noua tie bazica ¸i ˘ sol. cu numa ˘ r par pe e s xi0j 0 = e. x23 = 20. bazica ˘ X. Daca ˘ exista ˘ ij astfel incât δ ij > 0 atunci X nu e optima ˘ . adunând pe e la cele cu nr. x21 = 25. aleg i0j0 : daca max δ ij = δ i0j0 ˘ un ciclu pornind de la i0j0 s ˘ el Se formeaza ¸i elem. nenule din X. x34 = 135 u1 + v1 u2 + v1 u2 + v2 u2 + v3 u3 + v3 u3 + v4 = 2.

u2 = 2. δ 31 = −1 + 3 + 2 = 4?. δ 13 = −4 + 0 + 0 = −4.29- . v4 = 1. δ 14 = −1 + 0 + 1 = 0. δ 32 = −4 + 3 − 1 = −2. u3 = 3. δ 24 = −5 + 2 + 1 = −2. = 31 i0 j0 ⎛ ⎞ 100 0 0 0 X=⎝ 254 135 203 0 ⎠ 1 2 0 ∗ 0 85 135 ⎞ ⎛ 100 0 0 0 X = ⎝ 0 135 45 0 ⎠ 25 0 60 135 2 100 0 3 0 4 25 0 1 135 1 0 4 4 0 0 125 2 0 135 4 0 2 1 4 0 2 20 3 85 0 105 4 0 0 0 1 0 5 0 4 135 0 135 0 2 0 1 0 100 0 180 0 220 0 1270 0 2 3 0 . v2 = −1. v3 = 0.v1 = 2. δ 12 = −3 + 0 − 1 = −4.

u3 + v3 = 3. u3 + v4 = 4 2 100 4 0 1 25 0 125 0 4 0 2 3 0 1 135 4 0 0 135 0 0 2 3 4 0 2 45 3 60 0 105 0 0 0 4 1 0 5 0 4 135 0 135 4 2 0 5 0 100 0 180 0 220 0 1170 0 2 1 0 . u2 + v3 = 2 u3 + v1 = 1.30- .2 100 0 3 0 4 25 0 1 135 1 0 0 4 0 0 125 0 0 135 2 100 0 3 0 4 0 0 1 135 1 25 0 4 0 0 125 0 0 135 0 0 0 0 0 0 0 0 4 0 2 20 3 85 0 105 4 0 2 45 3 60 0 105 0 0 0 0 0 0 0 0 1 0 0 5 0 0 4 135 0 0 135 0 1 0 0 5 0 0 4 135 0 0 135 0 0 100 0 180 0 220 0 1270 0 100 0 180 0 220 0 1170 0 0 0 0 0 0 0 0 v1 = 0. u1 + v1 = 2 u2 + v2 = 1.

2 100 0 3 0 4 0 0 1 135 1 25 0 4 0 0 125 0 0 135 2 0 0 4 0 0 1 125 0 0 125 0 0 0 0 0 4 0 2 45 3 60 0 105 0 0 0 0 0 0 0 0 1 0 0 5 0 0 4 135 0 0 135 0 0 100 0 180 0 220 0 1170 0 0 0 0 0 0 0 0 3 0 0 4 0 1 135 0 2 45 4 0 0 3 60 0 135 0 0 105 1 100 0 0 100 5 0 0 0 180 4 35 0 0 220 0 135 0 0 770 2 0 4 0 1 125 0 125 4 4 0 2 3 0 1 135 4 0 0 135 4 0 2 1 4 0 2 45 3 60 0 105 4 0 0 0 1 100 5 0 4 35 0 135 0 2 0 1 0 0 0 0 100 180 220 770 0 2 3 0 .31- .

Exemplul 1.1 Vom nota vârfurile cu vi sau cu i. iar muchiile cu ej sau cu (vi. vj ) sau (i.2Grafe 2.32- . j ) . Remarca 1. din V numite muchii. iar E o mul¸ time de perechi neordonate de el. E ) unde V este o mul¸ time finita ˘ de vârfuri.1 Se nume¸ ste graf neorientat un cuplu G = (V.1 Grafe neorientate Definitia 1.1 5 4 1 3 2 .

8 2 vârfuri sunt adiacente daca ˘ exista ˘ o muchie formata ˘ din perechea celor 2 v. Definitia 1. lui V se nume¸ ste ordinul grafului. (3. el. 4) . (5. 2) . 5) . Definitia 1. 2. E ) este un graf atunci nr.4 Un graf se nume¸ ste simplu daca ˘ n-are bucle.6 2 muchii sunt adiacente daca ˘ au un vârf comun.V = {1. (3. Definitia 1. i) se nume¸ ste bucla ˘. E = {(1.3 O muchie (i. (2. 4) . Definitia 1. Definitia 1. Definitia 1. 1) . muchia.5 Se nume¸ ste lan¸ t într-un graf o succcesiune de muchii adiacente. el. 3)} Definitia 1. . lui E dimensiunea grafului G. (2. iar nr. (3.7 O muchie este incidenta ˘ cu un vârf daca ˘ vârful face parte din perechea care def.2 Daca ˘ G = (V. 4. 3) . 5}. 3.33- .

2 grad(3) = 5.9 Se nume¸ ste gradul unui vârf numa ˘ rul muchiilor incidente cu vârful respectiv. Definitia 1. Definitia 1.10 Se nume¸ ste ciclu într-un graf un lan¸ t la care ultimul vârf coincide cu primul.13 Se nume¸ ste lan¸ t (ciclu) hamiltonian un lan¸ t (ciclu) care con¸ tine toate vârfurile o singura ˘ data ˘.(!!).34- .11 Se nume¸ ste lan¸ t (ciclu) simplu un lan¸ t (ciclu) care nu con¸ tine de doua ˘ ori aceea¸ si muchie.12 Se nume¸ ste lan¸ t (ciclu) eulerian un lan¸ t (ciclu) simplu care con¸ tine toate muchiile.Definitia 1. Definitia 1.1 Daca ˘ dimensiunea grafului este m atunci suma gradelor vârfurilor este 2m. . Teorema 1. Demonstra¸ tie: Fiecare muchie contribuie cu 2 la gradele vârfurilor. Definitia 1. Exemplul 1.

4).Exemplul 1. 3. (sud). 4). (1. Atasam un "graf" Vârfuri: 1.3 Este posibil ca un grup de 11 persoane fiecare sa ˘ strânga ˘ mâna la exact 5 persoane?NU: suma gradelor este 55. Muchii (1. (1. 4) . (2. 2) . 2(est). 3(nord). 3.Gradele vârfurilor: 3. 4(insula) . 4). 3). 5. (3. (3. Exemplul 1.35- . (2.4 Problema podurilor din Königsberg: sa ˘ se ga ˘ seasca ˘ un traseu care sa ˘ permita ˘ trecerea o singura ˘ data ˘ pe fiecare pod s ¸i sa ˘ se ajunga ˘ la punctul de plecare.2 Intr-un graf exista ˘ un circuit eulerian daca ˘s ¸i numai daca ˘ toate gradele vârfurilor sunt pare. Teorema 1. .

Teorema 1. 4 vârfuri de grad 1 s ¸i 7 vârfuri de grad 4? Total grade vârfuri:2 ∗ 31 = 62. cu gradele vârfurilor: 2. 5.3 Intr-un graf exista ˘ un lan¸ t eulerian daca ˘ s ¸i numai daca ˘ toate gradele vârfurilor sunt pare cu excep¸ tia a exact doua ˘. Grad minim la un vârf e 15 > 12. Exemplul 1. 2.2 Algoritmi . NU. 5 4 1 3 2 2. Exemplul 1.5 Exista ˘ un graf simplu cu 13 vârfuri. 31 muchii.36- .6 Sa ˘ se construisca ˘ un graf cu 5 vârfuri. 2.T otal grade 2 vârfuri: 62 − 4 − 28 = 30. 3.

1 G = (V. Definitia 2.6 Daca ˘ G1 este subgraf al grafului G se nume¸ ste muchie frontiera ˘ o muchie din G care are un vârf în G1 si unul în G\G1. se nume¸ V1 ⊂ V. E ) se nume¸ ste conex daca ˘ între oricare doua ˘ vârfuri exista ˘ un lan¸ t. Definitia 2. Definitia 2.3 Un subgraf al unui graf se nume¸ ste arbore daca ˘ este simplu. .1 Defini¸ tii s ¸i nota¸ tii ste subgraf al lui G graful G1 = (V1. Definitia 2.4 Se nume¸ ste arbore de acoperire a unui graf conex un arbore care con¸ tine toate vârfurile.2 Graful G = (V. conex s ¸i fa ˘ ra ˘ cicluri. E1) cu Definitia 2.2.2. E1 ⊂ E. E ) graf.5 Se nume¸ ste frunza ˘ într-un arbore un vârf de grad 1. Definitia 2.37- .

1. cu FT mul¸ ˘ ale lui T .38- . 4. cea ami mica ˘ arborele.1 Ca ˘ vârfurile cu eticheta notata ˘ df _numa ˘ de la ultimul Ideea: se eticheteaza ˘r s ¸i se pleaca vârf etichetat. df _numa ˘ utare în la ˘¸ 2. df _numa ˘r(r) := [0]. Date de intrare în algoritm: un graf G conex s Date de ie¸ sire din algoritm: un arbore de acoperire T s ¸i o etichetare ˘ de df _numa data ˘r. 2.2. de numa Pasul de baz˘ a al algoritmului: cât timp T nu arbore de acoperire: ˘ FT .2. Ini¸ tializ˘ ari: T = ({r}. 3.2. i := 1 (i este un contor ˘ rare).2 Algoritmi de generare arbore de acoperire ˘ utare în adâncime 2. nota¸ tii: cu T se noteaza timea muchiilor frontiera ¸i un vârf r. ˘ arborele.2. y } care are un vârf x cu df _numa ˘r(x) maxim. ∅). Se actualizeaza ˘ l = {x.2 Ca time ˘ vârfurile cu eticheta notata ˘ et s ˘ de la vârful cu eticheta Idee: se eticheteaza ¸i se pleaca ˘ posibila ˘. i := i + 1. Se alege muchia frontiera ˘ la T vârful y s ¸i muchia l . nota¸ tii: cu T se noteaza timea muchiilor frontiera . Se adauga ˘r(y ) := [i]. cu FT mul¸ ˘ ale lui T .

data Ini¸ tializ˘ ari: T = ({r}. i := 1 (i este un contor de ˘ rare).39- . et(y ) := [i]. ∅). y } care are un vârf x cu et(x) minim. Date de ie¸ sire din algoritm: un arbore de acoperire T s ¸i o etichetare ˘ de et. Se actualizeaza ˘ l = {x. 3. 1.Date de intrare în algoritm: un graf G conex s ¸i un vârf r. et(r) := [0]. Exemplu: Sa ˘ torul graf: pentru urma . Se alege muchia frontiera ˘ la T vârful y s ¸i muchia l . Se adauga 4. i := i + 1 ˘ se determine un arbore de acoperire untilizând cei doi algoritmi. 2. numa Pasul de baz˘ a al algoritmului: cât timp T nu arbore de acoperire: ˘ FT .

d. {[ab] . i = 5 FT = {[af ] . [af ]} . [f g ]}} . [bg ] . df _numa ˘r(e) := 4. aleg l = [de] T = {{a. [bc] . [ce] . c} . [ef ]}} . df _numa ˘r(c) := FT = {[af ] . [ef ] . df _numa FT = {[af ] .2. b. [de] . b. c. [bc] . i = 3. {[ab] . [cd] . i = FT = {[ab] . T = {{a. c. e. [bf ] . [bc]}} .40- c(2) d(3) e(4) g(6) . {[ab]}} . {[ab] . [bf ] . [bg ] . e. [bf ] . d. aleg l = [cd] ˘r(d) := 3. ∅} .aleg l = [ab] . [de]} . [de] . [cd] . {[ab] . f. [eg ] . [cg ]} . i = 4 T = {{a. i = 6 T = {{a. [cg ] . [bf ] . c. aleg l = [ef ] ˘r(f ) := 5. {[ab] . [bc] . [bc] . aleg l = [f g ] ˘r(g ) := T = {{a. e} . b. [cd] . [cd] . f } . [bg ] . [cd]}} . [ce] . [cg ] . b} . df _numa 6. d. df _numa 2. T = {{a. g } . i = 7 gata. [cg ] . b. [f g ]} . [eg ] . d} . Am ob¸ tinut: b(1) a(0) f(5) . [de]}} . c. [bc]} aleg l = [bc] . [bg ] . FT = {[af ] . b. df _numa ˘r(a) := [0]. Rezolvare: T = {{a} . [ef ]} . i := 1 ˘r(b) := 1. df _numa FT = {[bg ] .

{[ab] . [bc] . et(e) := 5. FT = {[af ] . [f e]} . [cd] . aleg: l = [bc] . i = 2. {[ab] . f. [cd]}} . aleg l = [af ]. {[ab] . gata: . [f g ] . et(g ) := 4. [bc] . ∅} . f. et(a) := [0]. et(b) := 1. {[ab] . b. et(f ) := 2. aleg: l = [cd] T = {{a. f. [bf ] . T = {{a. [bg ]}} . [cd]} . aleg l = [f e] T = {{a. [bc]} . b. f. e. [f e] .aleg l = [ab] .˘ utare în la ˘¸ Ca time: T = {{a} . FT = {[f e] . c. FT = {[ed] . {[ab]}} . {[ab] . b} . b. [bg ] . [bc]}} . et(d) := 6. [ce] . c. [bg] . [ce] . FT = {[bg ] . e} . FT = {[bc] . [af ]} . [bg ] . g. [af ] . [ge]} . [f e] . [af ] . c. T = {{a. [bc] . T = {{a. b. [f e]}} . [cg ]} . [af ] . aleg l = [bg ] T = {{a. i = 3. d} . [f g ] . [bg ] .41- . [cd] . et(c) := 3. [af ]}} . c} . f } . i = 5. i = 6. i = 7. i := 1 FT = {[ab] . [af ] . g } . g. b. i = 4.

3 Algoritmi de generare arbore de lungime minima Definitia 2. 2. ˘ l = {x. et(r) := [0]. y } cu ponderea cea mai mica 2. Se alege muchia frontiera . mica ¸i o etichetare a vârfurilor data Ini¸ tializ˘ ari: T = ({r}.2. ∅).1 Algoritmul lui Prim Date de intrare în algoritm: un graf G conex cu ponderi s ¸i un vârf r.3. pentru care s-a definit o func¸ tie (pondere) ρ : E → R+. numa Pasul de baz˘ a al algoritmului: cât timp T nu arbore de acoperire: ˘ FT .7 Se nume¸ ste graf ponderat un graf G = (V. E ) . Date de ie¸ sire din algoritm: un arbore de acoperire T de cea mai ˘ pondere s ˘ de et. i := 1 (i este un contor de ˘ rare).42- . 1.b(1) a(0) f(2) c(3) d(6) e(5) g(4) ˘ în grafe ponderate 2. Se actualizeaza ˘ (x ∈ T ). care ataseaza ˘ fiecarei muchii e ∈ E ponderea ρ (e) .

[ae] . .˘ la T vârful y s 3. et (d) = 1 (i) . i = 2. et (b) = 2 (i) . i = 3. {[ad] .43- . FT = {[ab] . T = {{a. [dc] . et (a) = 0. [ad]} . [db]} . [ad] . [de] . d. Teorema 2. [db]} . d}. aleg: l = [db] . [ae] . [ac]} aleg: l = [ad] T = {{a. et(y ) := [i]. ∅} . i = 1. 4. [ac] . i := i + 1. ˘ se afle prin algoritmul de mai sus arbori de pondere minima ˘ în grafele Exemple: Sa de mai jos: Rezolvare: T = {{a}. Se adauga ¸i muchia l . FT = {[ab] . b}.1 Arborele aflat cu algoritmul lui Prim este arbore de acoperire de pondere (lungime) minima ˘.

1. T = {{a. ∅). i = 5 gata: a(0) 6 4 1 e(3) b(2) 2 c(4) d(1) 2.44- . e. {[ad] . Date de intrare în algoritm: un graf G conex cu ponderi p s ¸i un vârf r. Ini¸ tializ˘ ari: T = ({r}. Se actualizeaza . [ac] . [ae]} . [dc] . aleg: l = [ae] . FT = {[ac] . et (e) = 3 (i) . b.FT = {[ae] . Date de ie¸ sire din algoritm: un arbore de acoperire T s ¸i distan¸ tele d (r. b. [db] . [de] . [ae] . {[ad] . et (c) = 4 (i) . [bc]} . d. [ac]} .3. [bc]} . j ) cel mai scurt lan¸ t între nodurile i s ¸i j .2 Algoritmul lui Dijsktra nota¸ tii: L (i. j ) = suma ponderilor muchiilor din L (i. aleg l = [ac] T = {{a. x) . et(r) = 0 d(r) := 0. d. j ) . [db] . c}. de numa Pasul de baz˘ a al algoritmului: cât timp T nu arbore de acoperire: ˘ FT . i = 4. [dc] . e}. i := 1 (i este un contor ˘ rare). distan¸ ta între nodurile i s ¸i j : d (i.

respectiv b: Rezolvare T = {{a} . i = 2.˘ l = {x. 1) + lung (de) = 6 . et (a) = 0. [dc] . et(y ) := [i]. 1) + lung (dc) = 8 d(a. x) + p (l) e 2. Se alege muchia frontiera ˘ minima ˘ la T vârful y s ¸i muchia l . d (a. x) + p (l) ˘ se afle cu algoritmul lui Dijsktra arborele T in grafele de mai jos. [ac] . 3. Se adauga 4. [ac]} aleg: l = [ad] T = {{a. d(a. i := i + 1. [de] . a) + lung (ab) = 3 d(a. [ad] . a) = 0. 1) = 1 = 0 + lung (ad) FT = {[ab] . i) = d (r. a) + lung (ac) = 6 d(a. [ae] .d (r. a) + lung (ae) = 4 d(a. y } cu proprietatea (x ∈ T ) ca ˘ d (r.45- . d}. [db]} . [ad]} . i = 1 FT = {[ab] . ∅} . et (d) = 1 (i) . Exemple: Sa pornind de la nodurile a. [ae] . d (a.

i = 4. d. 1 (d)) + lung (de) = 6 d(a. d (a. [ae] . d. b.46- . [dc]} d(a. [bc] . d (a. d (a. 1 (d)) + lung (dc) = 8 aleg l = [ac] T = {{a. 4 (e)) = 6 gata: . 2 (b)) + lung (bc) = 9 d(a. et (c) = 4. {[ad] . [ac]}} . i = 3. 2 (b)) + lung (bc) = 9 d(a. c} . et (e) = 3. 1 (d)) + lung (dc) = 8 aleg l = [ae] T = {{a. b}. [dc]} d(a. a) + lung (ac) = 6 d(a. b. [de] . a) + lung (ae) = 4 d(a. {[ad] . 1) + lung (db) = 7 aleg: l = [ab] . e} . 3 (e)) = 4. 2 (b)) = 3 FT = {[ac] . a) + lung (ac) = 6 d(a. [ab] . [ab] . [ae] . e. {[ad] . [ab]} . d.d(a. et (b) = 2 (i) . FT = {[ac] . [bc] . [ae]}} . T = {{a.

47- .a(0) 3 6 4 1 e(3) d(1) b(2) c(4) .