Sunteți pe pagina 1din 4

14

Algoritmul Simplex

Algoritmul simplex este o metoda tiei unei probleme de programare liniara analitica de determinare a solu . Daca tiilor problemei de programare, se poate ara n este numa rul variabilelor iar m este numa rul restric ta ca exista tie a problemei de programare liniara tin n m din variabilele x1 , . . . , xn sunt egale o solu pentru care cel pu cu zero (o astfel de solu tie se nume ste solu tie de baza si aceasta simplica tia problemei ). De mult problema (solu poate ca tiile avnd n m valori egale cu zero), problema este n continuare dicila utata numai ntre solu (n special pentru valori mari ale lui n si m), si este nevoie de o metoda tiei problemei. sistematica de ca utare a solu Metoda / algoritmul Simplex este o metoda tie admisibila si iterativa n care se pleaca de la o solu de baza se construiesc alte solu tii de baza tiei obiectiv cre ste ca astfel nct valoarea func tre valoarea optima . Vom prezenta aceasta metoda mai nti pe un exemplu concret. Exemplul 14.1 S a se rezolve problema de programare liniar a max (60x1 + 30x2 + 20x3 ) n condi tiile 48 8x1 + 6x2 + x3 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x2 5 x1 , x2 , x3 0. (73)

(74)

Solu tia 14.2 S a observ am c a problema este n form a standard (problema este de maxim, toate inegalit at ile sunt ). at ile n egalit at i: Introducem variabilele de compensare y1 , y2 , y3 0 pentru a transforma toate inegalit y1 = 48 8x1 + 6x2 + x3 y2 = 20 4x1 + 2x2 + 1.5x3 (75) y3 = 8 2x1 + 1.5x2 + 0.5x3 y4 = 5 x2 x1 , x2 , x3 , y1 , y2 , y3 , y4 0. i rezolvnd S a observ am c a o solu tie admisibil a a problemei se poate ob tine considernd x1 = x2 = x3 = 0 s sistemul anterior, adic a y1 = 48, y2 = 20, y3 = 8 s i y4 = 5. Spunem c a y1 , y2 , y3 , y4 sunt variabile de baz a iar x1 , x2 , x3 sunt variabile auxiliare. O prim a problem a este urm atoarea: este solu tia g asit a o solu tie optim a? Raspunsul este NU, deoarece observ am c a m arind pu tin valoarea x1 = 0, valoarea func tiei obiectiv f = 60x1 + 30x2 + 20x3 va cre ste ( si deci valoarea nu este maxim a). Acela si lucru se observ as i pentru x2 s i x3 . n general, solu tia g asit a NU ESTE OPTIM A dac a coecien tii variabilelor auxiliare n func tia obiectiv sunt numere pozitive (n cazul de fa t a, ace sti coecien ti sunt 60, 30 s i respectiv 20). Alegem a sadar variabila x1 ca s i variabil a care va intra n baz a (deoarece coecientul ei este 60, s i deci va produce o cre stere mai rapid a a func tiei obiectiv). O a doua problem a este urm atoarea: cu ct putem m ari valoarea valoarea variabilei ce va intra n baz a? S a observ am c a deoarece y1 , y2 , y3 0 s i x2 = x3 = 0, condi tiile de mai sus ne arat a c a trebuie s a avem: y1 = 48 8x1 0 y2 = 20 4x1 0 , (76) y3 = 8 2x1 0 y4 = 5 0 de unde ob tinem x1 6 x1 5 , x1 4 (77)

a de cea de-a treia inegalitate). A treia inegalitate se s i deci valoarea maxim a care o poate lua x1 este x1 = 4 (dat refer a la y3 , ceea ce ne arat a c a y3 va deveni o variabil a auxiliar a (cu valoarea y3 = 0, deoarece x1 = 4), iar x1 va deveni o variabil a de baz a cu valoarea x1 = 4. 61

A treia etap a pentru continuarea procedeului este s a rescriem membrul drept al func tiei obiectiv s i al egalit at ilor n func tie de variabilele auxiliare, adic a n func tie de x2 , x3 s i y1 . Pentru aceasta, rezolv am a treia ecua tie n (75) n func tie de x1 , iar apoi elimin am variabila x1 din restul ecua tiilor s i din func tia obiectiv folosind aceast a ecua tie. Dup a calcule, ob tinem: max (240 15x2 + 5x3 30y3 ) y1 = 16 +x3 y2 = 4 +x2 0.5x3 x1 = 4 0.75x2 0.25x3 y4 = 5 x2 x1 , x2 , x3 , y1 , y2 , y3 0. (78) +4y3 +2y3 0.5y3 (79) (80)

Repetnd acum pa sii 1 3 de mai sus, observ am c a variabila x3 devine variabil a de baz a, cu valoarea x3 = 8 dat a de a doua ecua tie, iar y2 devine variabil a auxiliar a, cu valoarea 0. Ob tinem noua problem a: max (280 5x2 10y2 10y3 ) y1 = 24 +2x2 2y2 x3 = 8 +2x2 2y2 x = 2 1 . 25 x +0 .5y2 1 2 y4 = 5 x2 x1 , x2 , x3 , y1 , y2 , y3 0. (81) +8y3 +4y3 1.5y3 (82) (83)

cu solu tia x2 = y2 = y3 = 0 s i x1 = 2, x3 = 8, y1 = 24 s i y4 = 5. Cum coecien tii variabilelor auxiliare (x2 , y2 , y3 ) n func tia obiectiv sunt negativi, solu tia g asit a este optim a. Valoarea maxim a a func tiei obiectiv este deci f = 280, s i se ob tine pentru x1 = 2, x2 = 8 s i x3 = 0. Putem simplica calculul de mai sus procednd n felul urma tii func tiei obiectiv si tor. Aranja m coecien ai restric tiilor date ntr-un tabel, n care pe prima linie apar coecien tii din func tia obiectiv (73), iar pe liniile urma tiile (75), pe care le rescriem trecnd n membrul stng necunoscutele problemei. n prima toare apar ecua coloana tii lui x1 , n adoua coloana tii lui x2 , samd. Ob tinem astfel urma apar coecien coecien torul tabel: x1 60 8 4 2 0

x2 30 6 2 1.5 1

x3 20 1 1.5 0.5 0

y1 0 1 0 0 0

y2 0 0 1 0 0

y3 0 0 0 1 0

y4 0 0 0 0 1

Valori 0 48 20 8 5

Baza y1 y2 y3 y4 = 48 = 20 = 8 = =5

La pasul urma tia obiectiv a tor, pentru a determina care variabila va intra n baza , alegem din linia 1 (func problemei) variabila auxiliara va avnd cel mai mare coecient pozitiv, adica x1 . Pentru determina care variabila ie si din baza si cei ai coloanei lui x1 (variabila ce va intra n , forma m rapoartele ntre termenii coloanei Valori baza si l alegem pe cel mai mic. Ob tinem ), pentru care coecientul respectiv este strict pozitiv, 48 20 8 = 6, = 5, = 4, 8 4 2 si deci valoarea minima de penultima linie - aceasta arata ca variabila respectiva (y3 n este x1 = 4, ind data acest caz) este variabila ce va ie si din baza si n linia . Numa rul 2, situat n coloana variabilei ce intra n baza corespunza ste pivot. toare variabilei ce iese din baza se nume Se poate verica u sor ca procedeul indicat pentru etapa a treia de mai sus revine la: linia pivotului se mparte la pivot toate numerele din coloana pivotului, cu excep tia pivotului, devin 0 restul numerelor din tablou se modica dupa regula dreptunghiului, dupa cum urmeaza : pentru a determina noua valoare a unui numa turile dreptunghiului avnd diagonala r, se considera cele patru numere aate n col formata si de numa de pivot rul ales. Noua valoare a numa rului se determina astfel: se scade din vechea valoarea a numa tine rului produsul numerelor de pe cealalta diagonala a dreptunghiului (cea care nu con 62

pivotul) mpa tit la pivot. Spre exemplu, n cazul de fa ta r pivotul are valoarea 2, ind situat n prima coloana si a patra linie a tabelului de mai sus. Noua valoare a numa si a doua coloana rului aat n a doua linie a tabelului, este 8 1.5 6 = 6 6 = 0. 2 Numa si a doua coloana rul aat n prima linie a tabelului devine 30 60 1.5 = 30 45 = 15. 2

Procednd astfel, ob tinem al doilea tabel (a doua etapa din algoritmul simplex): x1 0 0 0 1 0 x2 15 0 1 0.75 1 x3 5 1 0.5 0.25 0

y1 0 1 0 0 0

y2 15 0 1 0 0

y3 30 4 2 0.5 0

y4 0 0 0 0 1

Valori 240 16 4 4 5

Baza y1 = 16 y2 = 4 = x1 = 4 y4 = 5

Variabilele auxiliare au valoarea 0, iar valorile variabilelor de baza sunt date de coloana Valori a tabelului (acestea se trec n coloana Baza a tabelului). n continuare, pentru a determina daca tia este optima tii din func tia obiectiv solu , se determina daca coecien (prima linie a tabelului) ai vreuneia din variabilele auxiliare este pozitiv. Daca tia ga da, atunci solu sita nu este optima tia ind optima , n caz contrar solu . n cazul de fa ta tia nu este optima solu , variabila x3 urmnd a intra n baza (are coecient +5). Procednd ca mai sus, se determina si deci variabila y2 va ie si din baza pivotul 0.5 (linia 3, coloana 2 a tabelului), . Dupa tie a algoritmului simplex, rezulta o noua itera tabelul x1 0 0 0 1 0 x2 5 2 2 1.25 1 x3 0 0 1 0 0 y1 0 1 0 0 0 y2 10 2 2 0.5 0 y3 10 8 4 1.5 0 y4 0 0 0 0 1 Valori 280 24 8 2 5 Baza y1 = 24 x3 = 8 x1 = 2 y4 = 5

Variabilele auxiliare sunt x2 , y2 , y3 , toate avnd coecien ti negativi in func tia obiectiv (prima linie a tabelului), si deci solu tia ga sita este optima . Valoarea optima este f = 280 (coloana Valori, prima linie, dar cu semn schimbat), ind ob tinuta si x3 = 8. pentru x1 = 2, x2 = 0 Aloritmul simplex consta si: deci n urma torii pa 1. Se determina tie admisibila o solu (prin introducerea variabilelor suplimentare y1 , y2 , . . . SAU prin rezolvarea unei probleme suplimentare) 2. Se determina tia gasita ti coecien tii variabilelor auxiliare din func tia obiectiv daca solu este optima (daca to sunt negativi). Daca DA, atunci ne oprim: valoarea maxima este data de elementul din prima linie a coloanei Valori, dar cu semn schimbat, valorile variabilelor de baza ind date de ultima coloana a tabelului, restul ind egale cu zero. Daca tia nu este optima solu , determina m variabila care intra n baza (variabila cu cel mai mare coecient pozitiv din func tia obiectiv) si variabila care iese din baza (forma m rapoartele ntre termenii coloanei Valori si cei ai coloanei variabilei ce va intra n baza si alegem cea mai mica , care sunt pozitivi, valoare. Linia corespunza toare este linia variabilei ce iese din baza ). Pivotul este elementul situat n coloana variabilei ce intra si n linia variabilei ce iese din baza n baza . 3. Se determina noul tabel simplex (linia pivotului se mparte la valoarea pivotului, elementele din coloana pivotului devin 0, cu excep tia pivotului, iar restul numerelor se modica cu regula dreptunghiului, de mai sus). Se revine apoi la pasul 2. Exerci tii

63

n ecare din problemele de mai jos, sa si sa se scrie problema n forma standard se rezolve prin metoda simplex, presupunnd ca toate variabilele x1 , x2 , . . . sunt ne-negative. Exerci tiul 14.1 S a se maximizeze f (x1 , x2 ) = 30x1 + 20x2 n condi tiile x1 + x2 5, 2x1 + x2 10. Exerci tiul 14.2 O rm a dore ste s a maximizeze produc tia total a zilnic a, producnd x1 unit at i de produs ntr-un proces P1 s i x2 unit at i de produs ntr-un proces P2 . Procesul P1 necesit a 2 ore de munc a zic as i 5 ore de lucru a unei ma sini, iar procesul P2 necesit a 4 ore de munc a zic as i 2 ore de lucru a unei ma sini. Firma are la dispozi tie zilnic 800 de ore de munc a zic as i 600 de ore de lucru a ma sinilor. S a se determine alegerea optim a pentru x1 s i x2 . Exerci tiul 14.3 f (x1 , x2 ) = 40x1 + 88x2 , n condi tiile 2x1 + 8x2 60, 5x1 + 2x2 60. Exerci tiul 14.4 S a se maximizeze produc tia zilnic a n cazul producerii a x1 scaune ntr-un proces P1 s i x2 scaune ntr-un proces P2 n condi tiile 3x1 + 4x2 550 (num arul de ore-ma sin a pe zi), 5x1 + 4x2 650 (num arul de ore de munc a manual a pe zi). Exerci tiul 14.5 S a se maximizeze f (x1 , x2 , x3 ) = 2x1 + x2 + 3x3 n condi tiile 4x1 + 3x2 + 6x3 12. Exerci tiul 14.6 S a se maximizeze protul zilnic n producerea a x1 rame R1 (prot 90 lei) s i x2 rame R2 (prot 50 lei) n condi tiile x1 + 3x2 18 (restric tii de materiale), x1 + x2 10 (restric tii ore-ma sin a) s i 3x1 + x2 24 (restric tii ore munc a manual a). Exerci tiul 14.7 S a se minimizeze f (x1 , x2 ) = 5x1 20x2 n condi tiile 2x1 + 10x2 5, 2x1 + 5x2 10. Exerci tiul 14.8 S a se minimizeze f (x1 , x2 , x3 ) = 4x1 10x2 20x3 n condi tiile 3x1 +4x2 +5x3 60, 2x1 +x2 20, 2x1 + 3x3 30. Exerci tiul 14.9 S a se maximizeze protul unei rme ce produce x1 baterii B1 ntr-un proces P1 s i x2 baterii ntrun proces P2 , s i x3 baterii B2 ntr-un proces P3 s i x4 ntr-un proces P4 , n condi tiile 12x1 + 8x2 + 6x3 + 4x4 120 (num arul ore-ma sin a) s i 3x1 + 6x2 + 12x3 + 24x4 180 (num arul de ore de munc a manual a).

64