Sunteți pe pagina 1din 26

Unitatea de ı̂nvǎţare III

Capitolul II

OPTIMIZARE LINIARǍ

Acest capitol se bazeazǎ pe noţiunile de algebrǎ liniarǎ prezentate ı̂n Capitolul I.


Se prezintǎ notiunile fundamentale ale optimizǎrii liniare şi algoritmul simplex, necesar
rezolvǎrii unor probleme economice concrete. În plus, se pun ı̂n evidenţǎ unele situaţii
speciale ce pot apǎrea ı̂n aplicarea acestui algoritm.

2.1. Situaţii economice modelate prin probleme de optimizare


liniarǎ
Modelarea unor situaţii economice reale, ı̂n scopul obţinerii de informaţii eficiente, se
face utilizând urmǎtoarele etape:
- formularea situaţiei economice, punându-se ı̂n evidenţǎ parametrii esenţiali şi obiec-
tivele propuse;
- stabilirea relaţiilor ı̂ntre parametrii problemei;
- rezolvarea problemei asociate;
- interpretarea rezultatelor ı̂n contextul situaţiei economice date.
Problema matematicǎ asociatǎ de multe ori constǎ ı̂n determinarea punctelor ı̂n care
o funcţie liniarǎ datǎ, numitǎ funcţie obiectiv, are valoare maximǎ sau minimǎ. Funcţia
obiectiv poate fi reprezentatǎ de exemplu de o funcţie de utilitate, de cost, de profit, etc.
În cazul ı̂n care ea este supusǎ unor restricţii de tip liniar, se spune cǎ modelul matematic
asociat este o problema de optimizare liniarǎ.
Din situaţiile economice reale care conduc la probleme de optimizare liniarǎ, vom
descrie:

• organizarea optimǎ a producţiei;

1
• utilizarea optimǎ a resurselor.

Organizarea optimǎ a producţiei. Sǎ presupunem cǎ o firmǎ produce douǎ bunuri
notate A şi B, pentru care foloseşte douǎ tipuri de maşini M1 şi M2 . Numǎrul de ore
necesar fabricǎrii fiecǎrui produs şi capacitatea de funcţionare a maşinilor sunt trecute ı̂n
tabelul urmǎtor:

A B Capacitatea de funcţionare
M1 2h 3h 12 h
M2 2h 1h 8h

În acest capitol ne propunem sǎ determinǎm un plan de producţie astfel ı̂ncât beneficiul
total sǎ fie maxim ştiind cǎ beneficiile unitare obţinute ı̂n urma valorificǎrii celor douǎ
produse A şi B sunt de respectiv 6 u.m. şi 7 u.m.
Notǎm:

• x1 − numǎrul de unitǎţi fabricate din A;

• x2 − numǎrul de unitǎţi fabricate din B.

Beneficiul total al firmei este format din beneficiul obţinut prin valorificarea bunului A
(6 u.m. ı̂nmulţit cu numǎrul de produse A) şi beneficiul obţinut prin valorificarea bunului
B (7 u.m. ı̂nmulţit cu numǎrul de produse B), adicǎ 6x1 + 7x2 .
Funcţia obiectiv este:

f : IR2+ → IR, f (x1 , x2 ) = 6x1 + 7x2 .

Prima restricţie se referǎ la capacitatea de funcţionare a primei maşini ı̂ntr-o zi:

2x1 + 3x2 ≤ 12

adicǎ fiecare unitate din A, respectiv B foloseşte maşina 2 h, respectiv 3 h. Atunci


numǎrul total de ore de funcţionare al maşinii 1 este 2x1 + 3x2 şi nu poate depǎşi 12 h.
În mod asemǎnǎtor, se ajunge la a doua restricţie

2x1 + x2 ≤ 8.

În plus, cele douǎ variabile x1 şi x2 sunt nenegative.

2
Astfel, modelul matematic asociat este:


 max(6x1 + 7x2 )
2x1 + 3x2 ≤ 12


 2x 1 + x2 ≤ 8
x1 , x2 ≥ 0.

Soluţia acestei probleme o gǎsim ulterior utilizând algoritmul simplex.


Mai general, considerǎm un proces economic ce constǎ ı̂n fabricarea a n produse
P1 , ..., Pn din m materii prime (resurse) R1 , ..., Rm , disponibile ı̂n cantitǎţile r1 , ..., rm .
Coeficienţii tehnologici (consumurile tehnologice) sunt aij ∈ IR, i = 1, m, j = 1, n,
reprezentând cantitatea din materia primǎ Ri , utilizatǎ pentru fabricarea unei unitǎti
din produsul Pj . Produsele obţinute sunt valorificate, beneficiul obţinut pentru o unitate
din produsul Pi este bi . Organizarea optimǎ a producţiei constǎ ı̂n determinarea can-
titǎţilor x1 , x2 , ..., xn , din produsele P1 , ..., Pn astfel ı̂ncât, resursele sǎ nu fie depǎşite, iar
beneficiul total sǎ fie maxim.
Datele procesului economic sunt prezentate ı̂n tabelul urmǎtor:

Resurse Produse P1 · · · Pj · · · Pn Disponibilul


R1 a11 · · · a1j · · · a1n r1
· · ·
· · ·
· · ·
Ri ai1 · · · aij · · · ain ri
· · ·
· · ·
· · ·
Rm am1 · · · amj · · · amn rm
Beneficiul unitar b1 · · · bj · · · bn

Relaţiile dintre coeficienţii tehnologici, disponibil şi cantitǎţile din produse ce se vor
realiza sunt date de:


 a11 x1 + a12 x2 + . . . + a1n xn ≤ r1 ,
a21 x1 + a22 x2 + . . . + a2n xn ≤ r2 ,

 ··
 ·
am1 x1 + am2 x2 + . . . + amn xn ≤ rm .

3
Procesul fiind unul real, cantitǎţile ce se vor realiza satisfac realaţiile

x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0,

iar beneficiul total obţinut este dat prin:

b1 x1 + b2 x2 + . . . + bn xn .

Organizarea optimǎ a producţiei se reduce la rezolvarea problemei:




 max(b1 x1 + b2 x2 + . . . + bn xn )
a11 x1 + a12 x2 + . . . + a1n xn ≤ r1 ,




a21 x1 + a22 x2 + . . . + a2n xn ≤ r2 ,


 ···
a x + am2 x2 + . . . + amn xn ≤ rm ,

 m1 1



x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0

echivalent cu  n
P


 max bj xj
j=1


Pn
 aij xj ≤ ri , i = 1, m
j=1



xj ≥ 0, j = 1, n.

În condiţiile ı̂n care resursele din cadrul producţiei sunt utilizate complet, organizarea
optimǎ a producţiei se reduce la a rezolva problema:
n

P


 max bj xj
j=1


Pn
 aij xj = ri , i = 1, m
j=1



xj ≥ 0, j = 1, n.

numitǎ forma standard.

Utilizarea optimǎ a resurselor. Sǎ presupunem cǎ o rafinǎrie trebuie sǎ pro-
ducǎ conform obligaţiilor asumate cel puţin 60 unitǎţi din combustibilul C1 şi cel puţin
90 unitǎţi din combustibilul C2 , pentru care foloseşte petrol brut de la doi furnizori cu
preţurile unitare de respectiv 3 u.m şi 4 u.m. Coeficienţii tehnologici sunt daţi ı̂n tabelul
de mai jos:

4
P1 P2 Capacitatea de producţie
C1 2 1 60
C2 1 2 90

Ne propunem sǎ determinǎm cantitǎţile de petrol brut ce trebuie cumparate astfel


ı̂ncât costul total sǎ fie minim, iar obligaţiile asumate sǎ fie respectate.
Notǎm:

• x1 − numǎrul de unitǎţi cumparate din petrolul brut P1 de la primul furnizor;

• x2 − numǎrul de unitǎţi cumparate din petrolul brut P2 de la al doilea furnizor.

Costul total al firmei este 3x1 + 4x2 , iar funcţia obiectiv:

f : IR2+ → IR, f (x1 , x2 ) = 3x1 + 4x2 .

Din fiecare unitate din P1 se produc 2 unitǎţi din C1 şi o unitate din C2 , atunci din
x1 unitǎţi din P1 se vor produce 2x1 unitǎţi din C1 şi x1 unitǎţi din C2 . În mod analog,
din x2 unitǎţi din P2 se vor produce x2 unitǎţi din C1 şi 2x2 unitǎţi din C2 . Rafinǎria
trebuie sǎ producǎ zilnic cel puţin 90 unitaţi din C1 şi 60 unitaţi din C2 . Astfel cele douǎ
restricţii sunt:

2x1 + x2 ≥ 90,
x1 + 2x2 ≥ 60.
În plus, cele douǎ variabile x1 şi x2 sunt nenegative.
Modelul matematic asociat este:


 min(3x1 + 4x2 )
2x1 + x2 ≥ 90,


 x1 + 2x2 ≥ 60,
x1 , x2 ≥ 0.

Soluţia acestei probleme se determinǎ ulterior utilizând algoritmul simplex.


Mai general, un proces economic constǎ ı̂n determinarea cantitǎţilor de materii prime
x1 , x2 , ..., xn , pentru realizarea a cel puţin p1 , p2 , ..., pm unitǎţi din produsele contractate,
cunoscând consumurile tehnologice aij ∈ IR, i = 1, m, j = 1, n, precum şi costurile
unitare c1 , c2 , ..., cn ale materiilor prime.
Datele procesului economic sunt prezentate ı̂n tabelul urmǎtor:

5
Produse Resurse R1 · · · Rj · · · Rn Cerere
P1 a11 · · · a1j · · · a1n p1
· · ·
· · ·
· · ·
Pi ai1 · · · aij · · · ain pi
· · ·
· · ·
· · ·
Pm am1 · · · amj · · · amn pm
Cost unitar c1 · · · cj · · · cn
Relaţiile dintre coeficienţii tehnologici, cerere şi cantitǎţile din resurse ce trebuie
achiziţionate sunt date ı̂n urmǎtoarele relaţii:


 a11 x1 + a12 x2 + . . . + a1n xn ≥ p1 ,
a21 x1 + a22 x2 + . . . + a2n xn ≥ p2 ,


 ···
am1 x1 + am2 x2 + . . . + amn xn ≥ pm .

Procesul fiind unul real, cantitǎţile ce trebuie cumpǎrate satisfac realaţiile


x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0,
iar costul total obţinut este dat prin:
c1 x1 + c2 x2 + . . . + cn xn .
Utilizarea optimǎ a resurselor se reduce la rezolvarea problemei:


 min(c1 x1 + c2 x2 + . . . + cn xn )
a11 x1 + a12 x2 + . . . + a1n xn ≥ p1 ,




a21 x1 + a22 x2 + . . . + a2n xn ≥ p2 ,


 ···
am1 x1 + am2 x2 + . . . + amn xn ≥ pm ,




x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0

echivalent cu  n
P


 min ci xi
 i=1
Pn
 aij xi ≥ pj , j = 1, m
 i=1


xi ≥ 0, i = 1, n.

6
În condiţiile ı̂n care se realizeazǎ exact cantitatea propusǎ, utilizarea optimǎ a resurselor
se reduce la a rezolva problema:

 Pn


 min ci xi
 i=1
Pn
 aij xi = pj , j = 1, m
i=1



xi ≥ 0, i = 1, n.

numitǎ forma standard.

2.2. Formele unei probleme de optimizare liniarǎ

Notǎm A = (aij ) matricea coeficienţilor tehnologici cu elemente numere


i = 1, m
j = 1, n
reale, C = (c1 ... cn ) matricea beneficiilor pentru probleme de maxim sau matricea
cheltuielilor de producţie pentru probleme de minim, b = (b1 ... bm )T matricea disponi-
bilului, respectiv matricea produselor solicitate.
Se numeşte forma standard a unei probleme de maxim, problema

max(f (X) = CX)


AX = b
X ≥ 0.

Se numeşte forma standard a unei probleme de minim, problema

min(f (X) = CX)


AX = b
X ≥ 0.

Funcţia f (X) = CX poartǎ numele de funcţie obiectiv.

7
Se numeşte forma generalǎ a unei probleme de optimizare liniarǎ problema:
n
P
optim ci xi
i=1
n
P
aij xi < bj , j = 1, k
i=1
n
P
aij xi = bj , j = k + 1, p (2.2.5)
i=1
Pn
aij xi > bj , j = p + 1, m
i=1
xi ≥ 0, i = 1, s; xi ≤ 0, i = s + 1, q; xi ∈ IR, i = q + 1, n,

unde optim reprezintǎ maximul sau minimul.


Rezolvarea unei probleme de optimizare liniarǎ presupune aducerea sa sub formǎ stan-
dard.
O problemǎ de optimizare liniarǎ sub forma generalǎ se aduce la forma standard
utilizând transformǎrile elementare:
(i) o restricţie de tipul ” ≥ ” se transformǎ ı̂ntr-o restricţie de tipul ” = ” prin scǎderea
unei variabile nenegative, numitǎ de compensare sau ecart;
(ii) o restricţie de tipul ” ≤ ” se transformǎ ı̂ntr-o restricţie de tipul ” = ”, prin
adunarea unei variabile ecart;
(iii) o variabilǎ x ∈ IR, se ı̂nlocuieşte cu x = u − v, unde u, v ≥ 0;
(iv) o variabilǎ x ≤ 0, se ı̂nlocuieşte cu x = −u, unde u ≥ 0.
Exemplu. Pentru modelul matematic asociat organizǎrii optime a producţiei:


 max(6x1 + 7x2 )
2x1 + 3x2 ≤ 12


 2x1 + x2 ≤ 8
x1 , x2 ≥ 0.

forma standard se obţine prin adaugarea ı̂n partea stângǎ a restricţiilor douǎ variabile
nenegatice de compensare notate x3 şi x4 . Forma standard este:


 max(6x1 + 7x2 )
2x1 + 3x2 + x3 = 12

 2x1 + x2 + x4 = 0

x1 , x2 ≥ 0.

8
Exemplu. Pentru modelul matematic asociat utilizǎrii optime a resurselor:


 min(3x1 + 4x2 )
2x1 + x2 ≥ 90


 x1 + 2x2 ≥ 60
x1 , x2 ≥ 0.

forma standard se obţine prin scǎderea ı̂n partea stângǎ a restricţiilor a douǎ variabile
nenegatice de compensare notate x3 şi x4 . Forma standard este:


 min(3x1 + 4x2 )
2x1 + x2 − x3 = 90


 x1 + 2x2 − x4 = 60
x1 , x2 ≥ 0.

Exemplu. Fie problema de optimizare liniarǎ datǎ prin:

min(2x1 − 3x3 )
x1 − x2 ≥ 1
2x1 − x3 = 2
x1 + x2 + x3 ≤ 5
x1 ≥ 0, x2 ≤ 0, x3 ∈ IR.

Pentru aducerea la forma standard mai ı̂ntâi transformǎm variabilele x2 şi x3 . Variabila
x2 este negativǎ şi utilizǎm substituţia x2 = −u2 cu u2 ≥ 0, iar x3 este o variabilǎ oarecare
şi x3 = u3 − u4 cu u3 , u4 ≥ 0.
Cu aceste substituţii modelul devine:

min(2x1 − 3u3 + 3u4 )


x1 + u2 ≥ 1
2x1 − u3 + u4 = 2
x1 − u2 + u3 − u4 ≤ 5
x1 ≥ 0, ui ≥ 0, i = 2, 4.

Plecând de la aceastǎ prelucrare pentru a avea restricţii de tip egalitate, trebuie sǎ scǎdem
o variabilǎ nenegativǎ notatǎ u5 ı̂n partea stânga a primei restricţii şi sǎ adǎugǎm o
variabilǎ nenegativǎ notatǎ u6 ı̂n partea stânga celei de-a treia restricţii. Forma standard

9
obţinutǎ este:
min(2x1 − 3u3 + 3u4)
x1 + u2 − u5 = 1
2x1 − u3 + u4 = 2
x1 − u2 + u3 − u4 + u6 = 5
x1 ≥ 0, ui ≥ 0, i = 2, 6.

2.3. Rezolvarea problemei de optimizare liniarǎ folosind algorit-


mul simplex
În rezolvarea unei probleme de optimizare liniarǎ pornim de la forma standard:
optim(f (X) = CX)
AX = b
X ≥ 0,
unde optim este min sau max, iar
 
a11 · · · a1n
A =  ··· 
am1 · · · amn
matricea coeficienţilor tehnologici cu elemente numere reale, C = (c1 ... cn ) matricea
beneficiilor pentru probleme de maxim sau matricea cheltuielilor de producţie pentru prob-
leme de minim, b = (b1 ... bm )T matricea disponibilului, respectiv matricea produselor
solicitate, iar X = (x1 ... xn )T matricea variabilelor reale nenegative care trebuie de-
terminate.
Ne propunem sǎ determinǎm o soluţie pentru AX = b, X ≥ 0 care optimizeazǎ funcţia
obiectiv.
Facem ipoteza de lucru: rangA = m < n. Cu aceastǎ ipotezǎ sistemul AX = b este
compatibil nedeterminat.
Notǎm cu V1 = (a11 , ..., am1 )T , V2 = (a12 , ..., am2 )T , ..., Vn = (a1n , ..., amn )T vectorii
coloanǎ ai matricii A, numiţi vectori tehnologici.
O soluţie nenegativǎ a sistemului AX = b se numeşte soluţie admisibilǎ. Ea
este soluţie admisibilǎ de bazǎ cu componentele (x01 , ..., x0r , 0, ...0)T , dacǎ vectorii
{V1 , ..., Vr } formeazǎ un sistem liniar independent.

10
Cum rangul matricii A este m, numǎrul vectorilor coloanǎ liniar independenţi este cel
mult m. Aşadar, numǎrul componentelor pozitive ale unei soluţii admisibile de bazǎ este
cel mult m.
Dacǎ soluţia admisibilǎ de bazǎ are exact m componente pozitive, soluţia se numeşte
nedegeneratǎ. Dacǎ soluţia admisibilǎ de bazǎ are mai puţin de m componente pozitive,
se numeşte degeneratǎ.

Se numeşte matrice de bazǎ, o matrice B formatǎ cu coloane ale matricii A, astfel


ı̂ncât vectorii corespunzǎtori sǎ formeze o bazǎ ı̂n IRm .

Se numeşte soluţie optimǎ a unei probleme de optimizare liniarǎ orice soluţie ad-
misibilǎ de bazǎ care realizeazǎ optimul funcţiei obiectiv.
În cele ce urmeazǎ determinǎm soluţiile optime (dacǎ existǎ) folosind algoritmul sim-
plex. Se porneşte de la o soluţie admisibilǎ de bazǎ, care se ı̂nlocuieşte cu altǎ soluţie
admisibilǎ de bazǎ care ı̂mbunǎtǎţeşte valoarea funcţiei obiectiv. Acest algoritm are un
numǎr finit de etape cǎci numǎrul bazelor extrase din A este cel mult Cnm . La final se
determinǎ soluţia optimǎ (dacǎ existǎ) sau faptul cǎ aceasta nu existǎ.
Algoritmul simplex presupune urmǎrirea unor etape pe care le prezentǎm ı̂n cele ce
urmeazǎ, iar justificarea se poate gǎsi şi ı̂n [27].

Etapa 1. (i) Se aduce problema de optimizare liniarǎ sub forma standard;


(ii) Se determinǎ o matrice de bazǎ B cu coloanele Vi = (a1i , . . . , ami )T , i = 1, m
extrase din A cu astfel ı̂ncât B −1 b ≥ 0. Dacǎ b ≥ 0, iar matricea A conţine coloanele
matricii unitate de ordin m, atunci aceasta o alegem ca matrice de bazǎ.
(iii) Se calculeazǎ:

• z0 := c1 b1 + c2 b2 + ... + cm bm ;

• zi := c1 ai1 + c2 ai2 + ... + cm aim , i = 1, n,

• ∆i := ci − zi , i = 1, n

şi se trece la Etapa 2.

Observaţie. Pentru uşurinţa calculelor, utilizǎm un tabel de forma:

11
optim C c1 ... cn

VB B −1 b V1 ... Vn

V1 B −1 b1 B −1 a11 ... B −1 a1n


..
.
Vm B −1 bm B −1 am1 ... B −1 amn

zi z0 z1 ... zn
∆i ∆1 ... ∆n

unde optim este min sau max, iar V B reprezintǎ vectorii bazei.
Dacǎ matricea de bazǎ iniţialǎ este matricea unitate de ordin m, B = I, atunci tabelul
anterior devine:

optim C c1 ... cn

VB b V1 ... Vn

V1 b1 a11 ... a1n


..
.
Vm bm am1 ... amn

zi z0 z1 ... zn
∆i ∆1 ... ∆n

Exemplu. Pentru problema organizǎrii optime a producţiei forma standard a fost


determinatǎ anterior şi este datǎ prin:

max(6x1 + 7x2 )
2x1 + 3x2 + x3 = 12,
2x1 + x2 + x4 = 8,
x1 , x2 , x3 , x4 ≥ 0.

12
Observǎm ca variabilele de compensare apar cu coeficientul 0 ı̂n funcţia obiectiv:

f (X) = 6x1 + 7x2 + 0 · x3 + 0 · x4 .

Punem ı̂n evidenţǎ matricele A, C, b:


 
V1 V2 V3 V4  
12
A =  2 3 1 0 , b= , C = (6 7 0 0).
8
2 1 0 1
Baza cu care pornim este formatǎ din vectorii bazei canonice din IR2 , V3 = (1, 0) şi
V4 (0, 1) : B = {V3 , V4 }. Vom folosi faptul cǎ coordonatele oricǎrui vector ı̂n baza canonicǎ
sunt chiar componentele sale.

MAX C 6 7 0 0
VB VVB V1 V2 V3 V4
V3 12 2 3 1 0
V4 8 2 1 0 1
zi 0 0 0 0 0
∆i = ci − zi 6 7 0 0

Calculul liniilor zi şi ∆i este dat ı̂n cele ce urmeazǎ:

z0 = 0 · 12 + 0 · 8 = 0; z1 = 0 · 2 + 0 · 2 = 0; z2 = 0 · 3 + 0 · 1 = 0;

z3 = 0 · 1 + 0 · 0 = 0; z4 = 0 · 0 + 0 · 1 = 0;
∆1 = c1 − z1 = 6 − 0 = 6; ∆2 = c2 − z2 = 7 − 0 = 7;
∆3 = c3 − z3 = 0 − 0 = 0; ∆4 = c4 − z4 = 0 − 0 = 0.

Etapa 2. (i) Dacǎ toate elementele liniei ∆i sunt negative sau 0 (respectiv pozitive
sau 0) pentru problema de maxim (respectiv minim) s-a obţinut soluţia optimǎ (B −1 b, 0);
STOP;
(ii) Dacǎ existǎ k ∈ {1...n}, pentru care ∆k > 0 (respectiv ∆k < 0) ı̂n cazul de maxim
(respectiv minim) şi pentru un astfel de indice B −1 Vk ≤ 0, problema nu are valoare optimǎ
finitǎ. STOP;
(iii) Dacǎ existǎ k ∈ {1...n}, pentru care ∆k < 0, (respectiv ∆k > 0) ı̂n cazul de
maxim (respectiv minim) şi pentru toţi astfel de indici B −1 Vk 6≤ 0, se trece la Etapa 3.
În exemplul considerat modelul fiind de maxim ajungem la soluţia optimǎ când ∆i ≤ 0.
În cazul nostru ∆1 , ∆2 > 0, deci soluţia nu este optimǎ. Baza aleasǎ B = {V3 , V4 } conduce

13
la o soluţie admisibilǎ de bazǎ care ı̂nsǎ nu este optimǎ. Vom ı̂nlocui un vector din baza
B ı̂n Etapa 3.
Etapa 3. Din elementele ∆i , i = 1, n, se alege k astfel ı̂ncât ∆k este cel mai mare
(∆k = max{∆i }), respectiv cel mai mic (∆k = min {∆i }) pentru problema de maxim şi
i=1,n i=1,n
respectiv pentru probleme de minim. Se determinǎ i ∈ {1, ..., m}, astfel ı̂ncât
( )
x0i x0j
= min .
zik j|zjk >0 zjk

Vectorul Vi va ieşi din bazǎ, iar vectorul Vk va intra ı̂n bazǎ. Se trece la Etapa 4.
În exemplul nostru, ∆2 > ∆1 , deci V2 intrǎ ı̂n bazǎ (k = 2).
Avem:
x0i
 0 0  
x1 x2 12 8
= min , = min , = 4,
zi2 z12 z22 3 1
deci V3 iese din bazǎ.
Noua bazǎ este B = {V2 , V4 }.

Etapa 4. Se efectueazǎ o iteraţie simplex, utilizând regula pivotului (vezi Capitolul I)


şi apoi se trece la Etapa 2.
În exemplu, vectorul V2 intrǎ ı̂n bazǎ, iar V3 iese din bazǎ, deci pivotul este 3. Noul
tabel simplex este:
V2 4 2/3 1 1/3 0
V4 4 4/3 0 -1/3 1
zi 28 14/3 7 7/3 0
∆i 4/3 0 -7/3 0
şi s-a obţinut astfel:

• linia pivotului din vechiul tabel s-a ı̂mpǎrţit cu pivotul:

x01 = 12/3 = 4; z11 = 2/3; z12 = 3/3 = 1; z13 = 1/3; z14 = 0/3;

• coloana pivotului se completeazǎ cu 0 : z22 = 0;

• elementele celei de-a doua linii s-au calculat folosind regula dreptunghiului (para-
graful 1.3):

14
8 · 3 − 12 · 1 2·3−2·1 4
x02 = = 14; z21 = = ;
3 3 3
0 · 3 − 1 · 1 1 1 · 3 − 1 · 0
z23 = = − ; z24 = = 1;
3 3 3
Mai jos sunt calculaţi zi , i = 0, 4 şi ∆i , i = 1, 4:
2 4 14
z0 = 7 · 4 + 0 · 4 = 28; z1 = 7 · + 0 · = ; z2 = 7 · 1 + 0 · 0 = 7;
3 3 3
 
1 1 7
z3 = 7 · + 0 · − = ; z4 = 7 · 0 + 0 · 1 = 0;
3 3 3
14 4
∆1 = c1 − z1 = 6 − = ; ∆2 = c2 − z2 = 7 − 7 = 0;
3 3
7 7
∆3 = c3 − z3 = 0 − = − ; ∆4 = c4 − z4 = 0 − 0 = 0.
3 3
Problema este de maxim şi ∆1 > 0 deci nu am ajuns la soluţia optimǎ. Algoritmul se
repetǎ şi revenim la Etapa 3:
Cum ∆1 > 0, vectorul V1 intrǎ ı̂n bazǎ. Vectorul V4 iese din bazǎ deoarece
 
4 4
 
min , = 3.
2 4
 
3 3
4
Noua bazǎ este {V2 , V1 }, iar pivotul este .
3
Obţinem tabelul simplex:
V2 2 0 1 1/2 -1/2
V1 3 1 0 -1/4 3/4
zi 32 6 7 2 1
∆i 0 0 -2 11

unde:
4
• linia pivotului din vechiul tabel (a doua) s-a ı̂mpǎrţit cu pivotul :
3
4 4/3 0
x02 = = 3; z21 = = 1; z22 = = 0;
4/3 4/3 4/3

15
−1/3 1 1 3
z32 = =− ; z42 = = ;
4/3 4 4/3 4
• coloana pivotului s-a completat cu 0 : z11 = 0;
• celelalte elemente ale tabelului se calculeazǎ cu regula dreptunghiului:

4 · 4/3 − 4 · 2/3 1 · 4/3 − 0 · 2/3


x01 = = 2; z12 = = 1;
4/3 4/3
1/3 · 4/3 + 2/3 · 1/3 0 · 4/3 − 1 · 2/3
z13 = = 1/2; z14 = = −1/2.
4/3 4/3
Calculǎm zi , i = 0, 4 şi ∆i , i = 0, 4:
z0 = 7 · 2 + 6 · 3 = 32; z1 = 7 · 0 + 6 · 1 = 6; z2 = 7 · 1 + 6 · 0 = 7;
z3 = 7 · 1/2 + 6 · (−1/4) = 2; z4 = 2 · (−1/2) + 6 · (3/4) = 1;
∆1 = c1 − z1 = 6 − 6 = 0; ∆2 = c2 − z2 = 7 − 7 = 0;
∆3 = c3 − z3 = 0 − 2 = −2; ∆4 = c4 − z4 = 0 − 1 = −1.
Cum ∆i ≤ 0, i = 1, 4, iar problema este de maxim am ajuns la soluţia optimǎ:
x1 = 3, x2 = 2, x3 = 0, x4 = 0.
Pentru a avea un beneficiu maxim, de 32 u.m., trebuie fabricate 3 unitǎţi din bunul A,
2 unitǎţi din bunul B. Variabilele x3 = 0 şi x4 = 0 implicǎ egalitatea restricţiilor, adicǎ
maşinile sunt utilizate la maxim.

Exemplu. Un client al unei ı̂ntreprinderi doreşte fabricarea de piese A şi de piese B


ı̂n decursul unei luni. Clientul este dispus sǎ accepte preţul de 138 u.m. pentru o serie de
piese A şi 136 u.m. pentru o serie de 100 piese B.
Fabricarea pieselor de tip A şi B necesitǎ o trecere prin trei ateliere M1 , M2 , M3 , dupǎ
cum rezultǎ din urmǎtorul tabel:
Nr de unitǎţi de muncǎ Costul unei unit.
pt o serie de pt o serie de de muncǎ
100 piese A 100 piese B
Atelierul M1 2 1 10 u.m.
Atelierul M2 1 4,5 12 u.m.
Atelierul M3 4 3 16 u.m.

16
În momentul comenzii ı̂ntreprinderea dispune de un numǎr limitat de unitǎţi de muncǎ
pentru fiecare atelier, corespunzând respectiv la: 200 unitaţi de muncǎ pentru atelierul
M1 , 540 unitǎţi de muncǎ la atelierul M2 , 480 unitǎţi de muncǎ pentru atelierul M3 .
Determinǎm numǎrul de serii de câte 100 piese A şi 100 piese B pe care ı̂ntreprinderea are
interes sǎ le livreze clientului ştiind cǎ obiectul ı̂ntreprinderii este maximizarea profitului.
Notǎm cu x1 numǎrul de serii de 100 piese A şi cu x2 numǎrul de serii de 100 piese B.
Pentru fabricarea a 100 piese A se folosesc 2 unitǎţi de muncǎ din atelierul M1 , 1
unitate de muncǎ din atelierul M2 şi 4 unitǎţi de muncǎ din atelierul M3 . Aşadar profitul
obţinut de la 100 piese A este:

138 − (2 · 10 + 1 · 12 + 4 · 14) = 50 u.m.

Analog, pentru o serie de 100 piese B profitul este:

136 − (1 · 10 + 4, 5 · 12 + 3 · 14) = 30 u.m.

Modelul matematic al problemei este:




 max(50x1 + 30x2 )
 2x1 + x2 ≤ 200


x1 + 4, 5x2 ≤ 540
4x + 3x2 ≤ 480

 1



x1 , x2 ≥ 0.

Ataşǎm forma standard, introducând trei variabile de compensare pozitive: x3 , x4 , x5 :

max(50x1 + 30x2 + 0 · x3 + 0 · x4 + 0 · x5 )



 2x1 + x2 + x3 = 200
x1 + 4, 5x2 + x4 = 540

 1 + 3x2 + x5 = 480
 4x
xi ≥ 0, i = 1, 5.

Folosim algoritmul simplex pentru rezolvarea problemei.

17
MAX C 50 30 0 0 0 Observaţii
VB VVB V1 V2 V3 V4 V5  200
V3 200 2 1 1 0 0 min , 540
21
,
480
V4 540 1 4,5 0 1 0 4
= 100,
V5 480 4 3 0 0 1 V3 iese din bazǎ
V1 intrǎ ı̂n bazǎ
∆i 0 50 30 0 0 0 n
100 440
V1 100 1 1/2 1/2 0 0 min 1 , 4 ,
2
80
V4 440 0 4 -1/2 1 0 1
= 80
V5 80 0 1 -2 0 1 V5 iese din bazǎ
V2 intrǎ ı̂n bazǎ
∆i 5000 0 5 -25 0 0
V1 60 1 0 3/2 0 −1/2
V4 120 0 0 15/2 1 -4
V2 80 0 1 -2 0 1
∆i 5400 0 0 -15 0 -5 ∆i ≤ 0, i = 1, 5
Soluţia optimǎ este x1 = 60, x2 = 80, x3 = 0, x4 = 120, x5 = 0, iar optimul este 5400.
Aşadar, ı̂ntreprinderea va livra clientului 60 serii de 100 piese A şi 80 serii de 100 piese
B, caz ı̂n care va avea un profit maxim de 5400 u.m. Pentru a realiza acest numǎr de serii
se folosesc toate unitǎţile de muncǎ din atelierele M1 şi M3 , iar ı̂n atelierul M2 au rǎmas
120 unitǎţi de muncǎ.

2.4. Situaţii speciale ce apar ı̂n aplicarea algoritmului simplex


În prima etapǎ a algoritmului simplex, se determinǎ o bazǎ B extrasǎ din A. În cazul
ı̂n care matricea A conţine matricea unitate B = I şi b ≥ 0, atunci aceastǎ este baza
cǎutatǎ. În caz contrar, asociem problema ajutǎtoare:

min g(Y )
AX + IY = b (2.4.1)
X ≥ 0, Y ≥ 0

unde g(Y ) = y1 + y2 + ... + ym . Problema (2.4.1) cu b ≥ 0, condiţie nerestrictivǎ, are o


soluţie admisibilǎ de bazǎ (X, Y ) = (0, b). Utilizând algoritmul simplex pentru problema
(2.4.1), se va ajunge la una din situaţiile:

18
(i) Soluţia optimǎ a problemei (2.4.1) este (X ∗ , Y ∗ ) cu Y ∗ 6= 0. În acest caz problema
datǎ nu are soluţie optimǎ.
(ii) Soluţia optimǎ a problemei (2.4.1) este (X ∗ , Y ∗ ) cu Y ∗ = 0. În acest caz sistemul
de restricţii a problemei date este compatibil, şi s-a obţinut o bazǎ admisibilǎ pentru
problema datǎ şi astfel se poate aplica algoritmul simplex.
Rezolvarea problemei ajutǎtoare (2.4.1), constituie faza 1 şi rezolvarea problemei date
utilizând baza admisibilǎ obţinutǎ ı̂n faza 1, constituie faza 2.
Exemplu. Problema de optimizare liniarǎ:


 max(x1 − 2x2 + x3 − 2x4 )
2x1 − x2 + x3 + x4 = 2


 x1 + 2x2 + x3 = 1
xi ≥ 0, i = 1, 4.

 
2 −1 1 1
are matricea A = care nu conţine o bazǎ unitate. Considerǎm problema
1 2 1 0
ajutǎtoare: 

 min(y1 )
2x1 − x2 + x3 + x4 = 2


 x1 + 2x2 + x3 + y1 = 1
xi ≥ 0, i = 1, 4, y1 ≥ 0

a cǎrei rezolvare este datǎ de:

MIN C 0 0 0 0 1
VB VVB V1 V2 V3 V4 V5
V4 2 2 -1 1 1 0
V5 1 1 2 1 0 1
zi 1 1 2 1 0 0
∆i -1 -2 -1 0 0
V4 5/2 5/2 0 3/2 1 1/2
V2 1/2 1/2 1 1/2 0 1/2
zi 0 0 0 0 0 0
∆i 0 0 0 0 1

1 5
Aşadar, prima fazǎ are soluţia x1 = 0, x2 = , x3 = 0, x4 = .
2 2
Continuǎm cu a doua fazǎ şi obţinem:

19
MAX C 1 -2 1 -2
VB VVB V1 V2 V3 V4
V4 5/2 5/2 0 3/2 1
V2 1/2 1/2 1 1/2 0
zi -6 -7 -2 -5 0
∆i 8 0 6 0
V1 1 1 0 3/5 2/5
V2 0 0 1 1/5 -1/5
zi 1 1 -2 1/5 4/5
∆i 0 0 4/5 -14/5
V1 1 1 -3 0 1
V3 0 0 5 1 -1
zi 1 1 2 1 0
∆i 0 -4 0 -2

Soluţia optimǎ este: x1 = 1, x2 = 0, x3 = 0, x4 = 1.


Dacǎ forma standard nu are o bazǎ unitate admisibilǎ problema de optimizare liniarǎ
se poate rezolva cu algoritmul simplex utilizând metoda penalizǎrii. Aceasta constǎ ı̂n
asocierea problemei date o problemǎ cu funcţia obiectiv penalizatǎ. Pentru problema de
maxim, problema penalizatǎ este:

max p(X, Y )
AX + IY = b (2.4.2)
X ≥ 0, Y ≥ 0

unde p(X, Y ) = c1 x1 + ...cn xn − M(y1 + ... + ym ), M > 0, M suficient de mare.


Pentru problema de minim, problema penalizatǎ este

min p(X, Y )
AX + EY = b (2.4.3)
X ≥ 0, Y ≥ 0

unde p(X, Y ) = c1 x1 + ...cn xn + M(y1 + ... + ym ), M > 0, M suficient de mare.


Problemele (2.4.2) şi (2.4.3), au o bazǎ admisibilǎ. Prin aplicarea algoritmului simplex
se va ajunge la una din situaţiile:
(i) Soluţia optimǎ a problemei (2.4.2) sau (2.4.3), este (X ∗ , Y ∗ ) cu X ∗ = X ∗ (M), Y ∗ =
0. În acest caz problema datǎ nu are valoare optimǎ finitǎ.

20
(ii) Soluţia optimǎ a problemei (2.4.2) sau (2.4.3), este (X ∗ , Y ∗ ) cu Y ∗ 6= 0. În acest
caz problema datǎ nu are soluţii admisibile şi astfel problema nu are soluţie optimǎ.
(iii) Soluţia optimǎ a problemei (2.4.2) sau (2.4.3), este (X ∗ , Y ∗ ) cu Y ∗ = 0 şi X ∗ nu
depinde de M. În acest caz s-a obţinut soluţia optimǎ a problemei date.
Rezolvarea problemei de optimizare liniarǎ utilizând problema (2.4.2) sau (2.4.3), con-
stituie metoda penalizatǎ.

Exemplu. Ultimul tabel simplex a unei probleme de maxim este:

VB VVB V1 V2 V3 V4 V5 V6 V7
V4 8 13/2 0 4 1 0 0 1/2
V6 2 -2 0 -5 0 -1 1 -1
V2 1 3/2 1 2 0 0 0 1/2
ci − zi -4+2M -2M-3 0 -5M-7 0 -M 0 2M+2

Criteriul de optim este satisfǎcut pentru cǎ ci − zi ≤ 0, i = 1, 7, dar conţine un vector


artificial, adicǎ nu conţine o soluţie admisibilǎ de bazǎ, realǎ. Aceastǎ problemǎ nu are
soluţie.

Exemplu. Sǎ se rezolve problema:




 max(5x1 + 2x2 + x3 )
x1 + 4x2 + 3x3 = 20


 3x1 + x2 + x3 = 10
xi ≥ 0, i = 1, 3

 
1 4 3
Cum matricea A = nu conţine baza unitate considerǎm problema ajutǎtoare:
3 1 1


 max(x1 + 2x2 + x3 − Mx4 − Mx5 )
x1 + 4x2 + 3x3 + x4 = 20


 3x1 + x2 + x3 + x5 = 10
xi ≥ 0, i = 1, 5

unde M > 0 foarte mare.


Avem:

21
MAX C 5 2 1 -M -M
VB VVB V1 V2 V3 V4 V5
V4 20 1 4 3 1 0
V5 10 3 1 1 0 1
∆i 30M 4M +5 5M+2 4M+1 0 0
V2 5 1/4 1 3/4 1/4 0
V5 5 11/4 0 1/4 -1/4 1
11 9 1 M 5M
∆i 5M-10 M+ 0 − + - 0
4 2 2 4 4
V2 50/11 0 1 8/11 3/11 -1/11
V1 20/11 1 0 1/11 -1/11 4/11
1 18
∆i 200/11 0 0 -1 − −M - -M
11 11

iar soluţia optimǎ este x1 = 20/11, x2 = 50/11, x3 = 0.


În algoritmul simplex , la Etapa 3, vectorul care iese din bazǎ nu este ı̂ntotdeauna
unic determinat. Prin alegerea arbitrarǎ a unuia din vectori, ce iese din bazǎ şi efectuând
o iteraţie simplex, vom obţine o soluţie admisibilǎ de bazǎ degeneratǎ. Pentru imple-
mentarea pe calculator a algoritmului simplex primal, ı̂n cazul ı̂n care etapa 3, nu deter-
minǎ unic vectorul ce iese din bazǎ se utilizeazǎ regula lexicograficǎ.
Într-o iteraţie a algoritmului simplex se determinǎ mulţimea:
( )
x0i x0j
I0 ⊂ IR, I0 = i ∈ IR | k = min k = θ
zi j\zjk >0 zj

şi se constatǎ cǎ este formatǎ din cel puţin doi indici.
Acum sǎ considerǎm o nouǎ mulţime de indici I1 ⊂ I0 :
( )
zi1 zj1
I1 = i ∈ I0 | k = min k ,
zi j\zjk >0 zj

adicǎ se repetǎ raportul θ cu coloana Vi din tabelul simplex, dar numai pentru indicii din
I0 .
Dacǎ I1 este formatǎ dintr-un singur indice atunci degenearea este rezolvatǎ. În caz
contrar, se determiǎ I2 ⊂ I1 prin:
( )
zi2 zj2
I2 = i ∈ I1 | k = min k .
zi j\zjk >0 zj

22
Algoritmul se continuǎ pânǎ când mulţimea de indici conţine un singur indice. De exemplu
Is = {j}. Atunci, vectorul Vj va ieşi din bazǎ.
Exemplu. Unul din tabelele simplex ale unei probleme de maxim este:
VB VVB V1 V2 V3 V4 ↓ V5 V6
V1 1 1 1 0 2 0 0
V3 3 0 3 1 6 0 0
V5 0 0 2 0 -2 1 0
V6 4 0 4 0 8 0 1
ci − zi 9 0 -1 0 1 0 0
Cum ∆4 = 1 > 0 rezultǎ cǎ vectorul V4 intrǎ ı̂n bazǎ, dar criteriul de ieşire din bazǎ
nu este unic determinat. În acest caz, mai ı̂ntâi determinǎm mulţimea I0 :
 
1 3 4 1
min , , = , I0 = {1, 3, 6}.
2 6 8 2
Mulţimea I0 are trei elemente, deci continuǎm procedeul:
 
1 0 0
min , , = 0, I1 = {3, 6}.
2 6 8
Mulţimea I1 are douǎ elemente, deci continuǎm procedeul:
 
3 4 1
min , = , I2 = {3, 6}.
6 8 2
Mulţimea I2 are douǎ elemente, deci continuǎm procedeul:
 
1 0
min , = 0, I3 = {6}.
6 6
Cum mulţimea I3 are lementul 6 atunci vectorul V6 iese din bazǎ, iar pivotul este 4.
Dacǎ ı̂n ultima iteraţie a algoritmului simplex pe linia ∆j toate diferenţele ci − zi
sunt nenegative (respectiv nepozitive) ı̂n cazul problemei de minim (respectiv ı̂n cazul
problemei de maxim) atunci am ajuns la soluţia optimǎ. Dacǎ existǎ diferenţe ∆h = 0 şi
pentru vectorii Vh nebazici, atunci problema are soluţii optime multiple.
În acest caz, se gǎsesc toate soluţiile optime X1∗ , X2∗ , ..., Xs∗ (aplicând criteriul de
intrare ı̂n bazǎ pentru vectorii corespunzǎtori diferenţelor ∆h = 0) şi se scrie acoperirea
lor convexǎ, adicǎ
X ∗ = α1 X1∗ + α2 X2∗ + ... + αs Xs∗ ,

23
s
P
cu αi ≥ 0, i = 1, s şi αi = 1.
i=1

Exemplu. Ultimul tabel simplex al unei probleme de maxim este:

MAX C 1 4 2 -3 1
VB VVB V1 V2 V3 V4 V5
V1 10 1 2 0 -1 1
V3 4 0 1 1 0 1
∆i 18 0 0 0 -2 -2

Avem ∆i ≤ 0, i = 1, 5, ceea ce ne spune cǎ soluţia X1∗ = (1, 0, 0, 4, 0, 0) este optimǎ,


iar valoarea funcţiei obiectiv este 18. Cum ∆2 = 0, soluţia optimǎ gǎsitǎ nu este unicǎ.
Pentru a determina toate soluţiile continuǎm procedeul cu vectorul V2 intrând ı̂n bazǎ,
iar vectorul V3 ieşind din bazǎ. Astfel obţinem:

VB VVB V1 V2 V3 V4 V5
V1 2 1 0 -2 -1 -1
V2 4 0 1 1 0 1
∆i 18 0 0 0 -2 -2

Noua iteraţie are soluţia optimǎ X2∗ = (2, 4, 0, 0, 0) cu 18 valoarea funcţiei obiectiv.
Soluţia generalǎ a problemei este:

X ∗ = αX1∗ + (1 − α)X2∗ cu α ∈ [0, 1],

adicǎ:
x1 = 10α + (1 − α)2 = 8α + 2
x2 = (1 − α)4
x3 = 4α
x4 = 0
x5 = 0.
cu valoarea funţiei obiectiv 18.

Exemplu. O ı̂ntreprindere are ı̂n plan fabricarea a cel puţin 100 unitǎţi din produsele
P1 , P2 , P3 . Pentru fabricarea lor se foloseşte o materie primǎ cu rezerve limitate la 300
unitǎţi: consumurile specifice ale celor trei tipuri de produse sunt de 2, 3 respectiv 1
unitǎţi de materie primǎ pentru fiecare unitate de produs finit. Condiţiile speciale de
depozitare impun ca din produsele P1 şi P3 sǎ nu se producǎ mai mult de 50 unitǎţi

24
(ı̂mpreunǎ). Cum produsele P1 şi P2 sunt mai cǎutate pe piaţǎ se urmǎreşte aplicarea
unui plan de producţie care sǎ conducǎ la obţinerea unei cantitǎţi cât mai mari din aceste
produse. Ne propunem sa determinǎm planul optim de producţie.
Notǎm cu xi cantitatea fabricatǎ din produsul Pi , i = 1, 2, 3.
Modelul matematic este:



 max(x1 + x2 )
 x1 + x2 + x3 ≥ 100


2x1 + 3x2 + x3 ≤ 300
x1 + x3 ≤ 50




x1 , x2 , x3 ≥ 0.

Aducem problema la forma standard folosind trei variabile de compensare pozitive,


x4 , x5 , x6 :



 max(x1 + x2 + 0 · x4 + 0 · x5 + 0 · x6 )
 1 + x2 + x3 − x4 = 100
x


2x1 + 3x2 + x3 + x5 = 300
x + x3 + x6 = 50

 1



xi ≥ 0, i = 1, 6.

Cum matricea sistemului de restricţii nu conţine matricea unitate, adǎugǎm o variabilǎ


artificialǎ, pozitivǎ, ı̂n prima ecuaţie. Problema devine:



 max(x1 + x2 − Mx7 )
 x1 + x2 + x3 − x4 + x7 = 100


2x1 + 3x2 + x3 + x5 = 300
 1 + x3 + x6 = 50
x



xi ≥ 0, i = 1, 6.

25
În continuare se aplicǎ algoritmul simplex
MAX C 1 1 1 0 0 0 −M
VB VVB V1 V2 V3 V4 V5 V6 V7 Observaţii
min 100 , 300

V7 100 1 1 1 −1 0 0 1 1 2
,
50
V5 300 2 3 1 0 1 0 0 1
=50
V6 50 1 0 1 0 0 1 0 V6 iese din bazǎ
V1 intrǎ ı̂n bazǎ
∆i −100M M+1 M+1 M+1 -M 0 0 0
min 50 , 200

V7 50 0 1 0 -1 0 -1 1 1 3
= 50
V5 200 0 3 -1 0 1 -2 0 V7 iese din bazǎ
V1 50 1 0 1 0 0 1 0 V2 intrǎ ı̂n bazǎ
∆i -50M+50 0 M+1 1 -M 0 -M-1 0
V2 50 0 1 0 -1 0 -1 1
V5 50 0 0 -1 3 1 1 -3 V5 iese din bazǎ
V1 50 1 0 1 0 0 1 0 V4 intrǎ ı̂n bazǎ
∆i 100 0 0 -1 +1 0 -2 -1-M
200
V2 3
0 1 -1/3 0 1/3 -2/3 0
50
V4 3
0 0 -1/3 1 1/3 1/3 -1
V1 50 1 0 1 0 0 1 0
250
∆i 3
0 0 -2/3 0 -1/3 -1/3 -M ∆i ≤ 0, i = 1, 7

200 350
Soluţia optimǎ este x1 = 50, x2 = , x3 = 0, iar optimul este . Planului optim
3 3
ı̂i corespunde o utilizare completǎ a rezervei de materie primǎ şi a spaţiului de depozitare.

26

S-ar putea să vă placă și