Sunteți pe pagina 1din 8

Capitolul

Algoritmul Simplex
3.1. Considera ii teoretice
n practic , majoritatea problemelor de programare liniar au multe variabile, fapt ce face ca
metoda solu iei grafice de rezolvare s nu poat fi aplicat i n cazul problemelor de
programare liniar cu mai mult de dou variabile.
n acest capitol se va discuta despre algoritmul Simplex utilizat n rezolvarea unei mare
variet i de probleme de programare liniar . n multe aplica ii industriale, algoritmul Simplex
este utilizat n rezolvarea problemelor de programare liniar cu mii de restric ii i variabile.
n 1947, George Dantzig a dezvoltat o metod eficient pentru rezolvarea problemelor de
programare liniar , numit algoritmul simplex. Algoritmul implic o c utare prin mul imea
solu iilor posibile pentru g sirea solu iei optime obiectivului propus. De la dezvoltarea
algoritmului simplex, programarea liniar este utilizat n toate domeniile de la industrie la
bancar, educa ie, forestier, petrolier conducnd la rezolvarea unei mari variet i de probleme:
stabilirea resurselor umane, opera iile sistemelor hidroenergetice, traseele ma inilor de
aprovizionare,etc. Metoda lui Danzing, cu unele schimb ri relativ minore, este cea mai
important metod n g sirea solu iilor problemelor de programare liniar .
Aplicarea algoritmului simplex presupune parcurgerea urm toarelor etape:
aducerea problemei la forma standard;
transformarea formei standard n forma tabelar ;
rezolvarea problemei cu ajutorul metodei simplex.

3.1.1. Forma standard


O problem de programare liniar se spune c este n forma standard atunci cnd toate
restric iile devin ecua ii i toate variabilele nenegative. O inegalitate devine egalitate prin
introducerea unei noi variabile, numit variabil de compensare, ea reprezentnd valoarea
r mas neutilizat din resursa respectiv .

3.1.2. Forma tabelar


O problem de programare liniar este n form tabelar atunci cnd toate constrngerile
sunt ecua ii avnd partea dreapt mai mare sau egal cu zero i atunci cnd n fiecare ecua ie
apare o variabil care are coeficientul egal cu +1 ntr-o singur ecua ie i egal cu 0 n toate
celelalte ecua ii. Variabila cu coeficient egal cu +1 ntr-o ecua ie i 0 n celelalte se nume te

34

Algoritmul Simplex

35

variabil de baz asociat ecua iei. Toate celelalte variabile care nu sunt variabile de baz se
numesc variabile secundare.
n general, atunci cnd exist mai multe variabile dect ecua ii, exist un num r infinit de
solu ii ntr-un sistem de ecua ii. Dar chiar dac exist o infinitate de solu ii, uneori este dificil
de a g si o singur solu ie. Valoarea formei tabelare este aceea c ofer cu u urin g sirea
unei solu ii prin stabilirea valorilor variabilelor secundare la zero i a valorilor variabilelor de
baz la valoarea corespunz toare membrului drept al ecua iei. Aceste solu ii se numesc solu ii
fezabile de baz . Aceste solu ii corespund punctelor extreme ale regiunii fezabile de baz .
Urm torul exemplu ilustreaz forma tabelar :

x1

x2 + 3x3
-2x5
=7
4x3 + x4 + 3x5
=8
- 2x3 +
2x5
= 16
4x5 + x6 = 10

Variabilele de baz sunt x2, x4, x1 i x6. Solu iile fezabile de baz sunt respectiv x1 = 16; x2=7;
x3=0; x4=8; x5=0 i x6 =10.
O problem n form tabelar poate fi scris ntr-un tablou. Un tablou este acea reprezentare a
coeficien ilor ecua iilor care respect urm toarele condi ii:
1. Deasupra tabelului coeficien ilor ecua iilor se scriu coeficien ii func iei obiectiv. Ace tia
reprezint cre terea direct pe unitate a func iei obiectiv prin cre terea fiec rei variabile cu
o unitate, neglijnd efectul constrngerilor.
2. La stnga tabloului se scriu variabilele de baz corespunz toare fiec rei ecua ii i
coeficientul acesteia din func ia obiectiv.
3. La baza tabloului exist dou linii:
- linia zj care reprezint descre terea n valoare a func iei obiectiv ca urmare a cre terii
cu o unitate a variabilelor xj, descre tere datorat efectelor constrngerilor. Ea se
ob ine prin multiplicarea coeficien ilor fiec rei coloane prin coeficientul func iei
obiectiv corespunz tor variabilei de baz pentru acea ecua ie i nsumarea acestora.
- Linia cj-zj reprezint linia profitului marginal sau linia evalu rii nete, ob inut prin
sc derea valorilor zj din cj pentru fiecare coloan .
Considernd urm toarea func ie obiectiv: z=3x1 + 3x2 + 10x3 + x4 + 5x5 + x6 -> MAX, avem
urm torul tablou:
Baz
X2
X4
X1
X6

Cj
3
1
3
1
zj
Cj-zj

X1
3
0
0
1
0
3
0

X2
3
1
0
0
0
3
0

X3
10
3
4
-2
0
7
3

X4
1
0
1
0
0
1
0

X5
5
-2
3
2
4
7
-2

X6
1
0
0
0
1
1
0

7
8
16
10
87

36

Modelare i simulare n afaceri

3.1.3. Metoda SIMPLEX


Metoda simplex este o procedur iterativ de rezolvare a problemelor de programare liniar
aduse la forma tabelar . Metoda simplex genereaz noi solu ii fezabile de baz care cresc
valoarea func iei obiectiv (sau cel pu in o las neschimbat ), prin generarea unor noi forme
tabelare pentru sistemul de ecua ii. Atunci cnd nu se mai poate aduce nici o mbun t ire a
fost atins solu ia optim .
n principal, metoda simplex const din 3 etape:
1. G sirea celei mai mari valori pozitive pentru cj - zj. Aceasta va desemna coloana pivot.
Dac nu exist o astfel de valoare, atunci solu ia optim a fost deja g sit .
2. Pentru fiecare valoare pozitiv din coloana pivot se g se te raportul:
(membrul drept)/(elementul corespunz tor din coloana pivot).
Raportul minim stabile te linia pivot. La intersec ia coloanei pivot cu linia pivot se
g se te elementul pivot.
3. Se genereaz noua form tabelar astfel:
(a) Se mparte linia pivot la elementul pivot;
(b) Pentru toate celelalte linii, se nmul e te noua linie generat la pct. (a). prin
elementul corespunz tor din coloana pivot i se extrage din linia curent .
(c) Se completeaz celulele taloului i se trece la pasul 1.
Pasul 1 al metodei simplex stabile te variabila cu cea mai mare influen unitar asupra
func iei obiectiv. Pasul al 2-lea stabile te care variabil devine prima zero pe m sur ce cre te
variabila cu influen a cea mai mare. Pasul al 3-lea genereaz noul tablou cu variabila din
pasul 1 nlocuind variabila stabilit la pasul al 2-lea.
Procedura descris mai sus se aplic problemelor de maximizare. Pentru problemele de
minimizare putem proceda:
(1) multiplicnd func ia obiectiv cu -1 i maximiznd, sau
(2) schimbnd pasul 1 astfel nct s se g seasc cel mai negativ cj - zj i stop dac n-a
fost g sit o astfel de valoare.
Atunci cnd o problem este scris direct n forma standard ea nu corespunde formei tabelare
de i pot exista unele ecua ii care s aib coeficien i = +1 ntr-o ecua ie i egali cu 0 n
celelalte. Pentru acele ecua ii care nu respect aceast condi ie se adaug o variabil artificial
c reia i se asociaz coeficientul -M, unde M este gndit ca un num r foarte mare apropiat de
infinit. Apoi se trece la efectuarea pa ilor metodei simplex. Datorit contribu iei foarte mari
per unitate a variabilei artificiale (-M), dac problema are un punct de optim, atunci valoarea
variabilei artificiale va fi egal cu 0.
Observa i c atunci cnd o variabil artificial devine secundar ea poate fi eliminat deoarece
trebuie s fie egal cu 0 n orice solu ie fezabil .

3.1.4. Degenerarea i convergen a algoritmului simplex


Teoretic, algoritmul simplex poate e ua n determinarea solu iei optime. Valoarea func iei
obiectiv (z) poate s creasc (sau s scad ) prin trecerea de la o solu ie admisibil de baz la
alta n cazul problemelor de maxim (sau de minim).

Algoritmul Simplex

37

Un algoritm se spune c este convergent dac dup fiecare itera ie valoarea func iei obiectiv
cre te n cazul unei probleme de maxim sau scade n cazul unei probleme de minim. Dac
algoritmul este convergent, se va ajunge la solu ia optim , dac exist , dup un num r finit de
itera ii. Convergen a ns nu mai rezult ntotdeauna dac solu ia admisibil este degenerat .

3.2. Problem rezolvat


Fie urm toarea problem de programare liniar :
z = 2x1 + 3x2 + 4x3
MAX
x1 + x2 + x3 30
2x1 + x2 + 3x3 60
x1 x2 + 2x3 = 20
xj 0, j=1,2,3
a) Scrie i problema n forma standard. Explica i de ce problema NU este n forma
tabelar .
b) Ad uga i variablele artificiale necesare pentru a ob ine prima form tabelar i
corecta i corespunz tor func ia obiectiv.
c) Rezolva i problema prin metoda simplex.
d) Ce schimbare ar trebui f cut astfel nct s urm ri i minimizarea func iei obiectiv?
Solu ie
a). Pentru a aduce problema la forma standard se introduc variabilele de compensare s1 i s2,
astfel nct restric iile se transform din inegalit i n egalit i.
z = 2x1 + 3x2 + 4x3
MAX
x1 + x2 + x3 + s 1
= 30
2x1 + x2 + 3x3
- s2 = 60
x1 x2 + 2x3
= 20
xj 0, j=1,2,3
Aceast form nu este i tavelar deoarece n a 2-a i a 3-a restric ie nu exist variabile cu
coeficient +1 ntr-una singur i coeficient 0 n celelalte.
b). Pentru a aduce problema la forma tabelar se adaug variabilele artificiale a1 pe linia a 2-a
i, respectiv, a2 n linia a 3-a. Func ia obiectiv va fi i ea modificat prin ad ugarea noilor
variabile multiplicate cu coeficientul M. Astfel forma tabelar va fi:
Baz
s1
a1
a2

cj
0
-M
-M
zj
cj-zj

x1
2
1
2
1
-3M
3M+2

x2
3
1
1
-1
0
3

x3
4
1
3
2
-5M
5M+4

s1
0
1
0
0
0
0

s2
0
0
-1
0
M
-M

a1
-M
0
1
0
-M
0

a2
-M
0
0
1
-M
0

30
60
20
-80M

38

Modelare i simulare n afaceri

Deoarece a2 este o variabil artificial


coloana.

i va deveni o variabil secundar , i vom abandona

c). Itera ia a 2-a


Baz
s1
a1
x3

cj
0
-M
4
zj
cj-zj

x1
2

-(1/2)M+2
(1/2)M+2

x2
3
3/2
5/2
-1/2
-(5/2)M-2
(5/2)M+5

x3
4
0
0
1
4
0

s1
0
1
0
0
0
0

s2
0
0
-1
0
M
-M

a1
-M
0
1
0
-M
0

20
30
10
-30M+40

Itera ia a 3-a
Baz
s1
x2
x3

cj
0
3
4
zj
cj-zj

x1
2
1/5
1/5
3/5
3
-1

x2
3
0
1
0
3
0

x3
4
0
0
1
4
0

s1
0
1
0
0
0
0

s2
0
15/4
-2/5
-1/5
-2
2

cj
0
3
4
zj
cj-zj

x1
2
1/3
1/3
2/3
11/3
-5/3

x2
3
0
1
0
3
0

x3
4
0
0
1
4
0

s1
0
5/3
2/3
1/3
10/3
-10/3

s2
0
1
0
0
0
0

11
6
13
-30M+40

Itera ia a 4-a
Baz
s2
x2
x3

55/3
40/3
50/3
320/3

Astfel solu ia optim este x1=0; x2=40/3, x3=50/3, s1=0, s2=55/3, iar valoarea optim este
z=320/3.
d). Problema se poate transforma ntr-o problem de minimizare prin schimbarea valorii
coeficien ilor variabilelor artificiale de la M la +M.

3.3. Teme
1. S se rezolve urm toarea problem prin algoritmul simplex. Discuta i solu iile g site.
MAX 2x1 + 3x2 x3
3x1 + 6x2 30

Algoritmul Simplex

39

4x1 + 2x2 + x3
x2 + x3 10
xj 0, j=1,2,3

20

2. S se rezolve prin algoritmul simplex problema:


MAX 3x1 + 4x2 + 2x3
x1 + x2 + x3 50
2x1 + 3x2 x3 30
xj 0, j=1,2,3
3. Fie urm toarea problem :
MIN 2x1 3x2 4x3
x1 + 2x2 + x3 5
3x2 + 2x3 12
xj 0, j=1,2,3
a) Aduce i problema la forma standard;
b) Rezolva i problema prin metoda simplex.
4. Fiind dat forma tabelar de mai jos:
X1 X2
Baza cj
4
2
0
1
0
0
1
0
zj
cj - zj

X3
-1
-1
4
0

S1
0
6
2
-3

S2
0
0
1
0

S3
0
1
1
1

10
20
30

a) Completa i tabelul;
b) Care este solu ia curent de baz ?
c) Care este efectul asupra func iei obiectiv n urm toarele cazuri?
i)
x3 este incrementat cu 1;
ii)
x3 este incrementat cu 3;
iii)
s1 este incrementat cu 1,5
iv)
s3 este incrementat cu 2
d) Care este variabila de intrare? Scrie i ecua iile corespunz toare tiind c toate
variabilele suplimentare, exceptnd variabila de intrare sunt egale cu zero;
e) Explica i de ce variabila de intrare nu poate fi incrementat cu 10 la aceast
itera ie;
f) La ce valoare va cre te variabila de intrare;
g) Ct de mult se va mbun t i func ia obiectiv n urm torul tabel? Utiliznd
ecua iile din (d) care va fi valoarea urm toarelor variabile curente de baz ?
5. Fie urm toarea problem de programare liniar :
MAX 4x1 + 3x2
x1 6
2x1 + 3x2

40

Modelare i simulare n afaceri

-x1 + x2 4
xj 0, j=1,2
a) Rezolva i grafic problema;
b) Rezolva i problema i cu ajutorul algoritmului simplex i indica i punctele de pe
grafic corespunz toare fiec rui tabel;
c) De ce la selectarea variabilei de intrare o alege i pe cea care are cea mai mare
diferen cj zj?
6. Fie problema urm toare:
MAX 2x1 + 5x2
X1 + x2 10
-x1 + x2 6
x1 + 2x2 16
x1 , x2 0
a) Rezolva i problema grafic;
b) Rezolva i problema prin metoda simplex.
7. Fie problema de programare liniar :
MAX 2x1 + 3x2 + 4x3
x1 + x2 + x3 30
2x1 + x2 + 3x3 20
x1 x2 + 2x3 = 20
xj 0, j=1,2,3
a) Scrie i problema n forma ei standard;
b) Ad uga i variabilele artificiale pentru a ob ine forma tabelar
corespunz tor func ia obiectiv;
c) Rezolva i problema prin metoda simplex;

i corecta i

8. Rezolva i problema de mai jos prin metoda simplex.


MAX 3x1 x2 + 2x3
X1 + 2x2 + x3 = 14
2x1 + 3x2 18
x1 6
9. O comapanie produce dou tipuri de curele: modelul obi nuit i modelul de lux. Fiecare
tip necesit 1 unitate de piele. Modelul obi nuit necesit 1 or de munc , n timp ce
modelul de lux necesit 2 ore de munc . n fiecare s pt mn sunt disponibile 40 de
unit i de piele i 60 de ore de munc . Modelul obi nuit aduce un profit de 3 unit i
monetare, iar modelul de lux un profit de 4 unit i monetare.
Datele problemei sunt sintetizate n tabelul 3.1.
Tabelul 3.1
Curea model
Curea model
Disponibil
obi nuit
de lux
Piele
1
1
40
Ore de munc
1
2
60
Profit (unit i monetare)
3
4
S se rezolve problema tiind c firma urm re te maximizarea profitului:
a) folosind metoda grafic ;
b) folosind algoritmul Simplex;

Algoritmul Simplex

41

c) utiliznd Microsoft Excel;


d) utiliznd programul Storm.
e) Compara i rezultatele i dificultatea g sirii solu iei pentru fiecare caz. Eviden ia i
avantajele i dezavantajele fiec rei metode.
10. Se consider c toat mncarea preferat a copiilor unei gr dini e provine dintr-unul din
cele patru "grupe de alimente de baz " (ciocolat , nghe at , ap mineral i prajitur ). La
momentual actual sunt disponibile consumului urm toarele alimente: turt dulce,
nghe at cu ciocolat , cola i pr jitur cu ananas. Fiecare turt dulce cost 50 unit i
monetare, fiecare cup de nghe at cu ciocolat 20 unit i monetare, fiecare sticl de cola
30 unit i monetare i fiecare bucat de pr jitur 80 unit i monetare. n fiecare zi trebuie
ingerate cel pu in 500 de calorii, 6 unit i de m sur de ciocolat , 10 unit i de zah r i 8
unit i de gr simi. Con inutul nutritiv al fiec rei unit i de aliment este prezentat n tabelul
3.2.

Turt dulce
nghe at
Cola
Pr jitur

Calorii
400
200
150
500

Ciocolat (u.m.)
3
2
0
0

Zah r (u.m.)
2
2
4
4

a) S se identifice func ia obiectiv;


b) S se identifice sistemul de constrngeri;
c) S se rezolve problema folosind algoritmul simplex.

Tabelul 3.2
Gr simi (u.m.)
2
4
1
5