Sunteți pe pagina 1din 18

Unitatea de ı̂nvăţare 2

1 Optimizări liniare
1.1 Introducere
Definiţia 1.1. O problemă de optimizare (programare) matemati-
că are forma min f (x) sau max f (x), unde f : Df → R este o funcţie nu-
x∈P x∈P
mită funcţia obiectiv a problemei (Df fiind domeniul maxim de definiţie al
funcţiei f ), iar P ⊆ Df este o mulţime numită domeniul de admisibilitate
al problemei sau mulţimea soluţiilor admisibile (mulţimea programe-
lor) ale problemei.
O soluţie admisibilă x∗ ∈ P astfel ı̂ncât

f (x∗ ) = min f (x), respectiv f (x∗ ) = max f (x),


x∈P x∈P

se numeşte soluţie optimă a problemei, iar valoarea f (x∗ ) se numeşte va-


loarea optimă a problemei.
Observaţia 1.1. Fie x = (x1 , x2 , . . . , xn )> , y = (y1 , y2 , . . . , yn )> ∈ Rn , unde
n ∈ N∗ .
Notăm x ≤ y dacă şi numai dacă xi ≤ yi , ∀i ∈ {1, . . . , n}.
Notăm x ≤ 0 dacă şi numai dacă xi ≤ 0, ∀i ∈ {1, . . . , n}.
De asemenea, notăm x ≥ 0 dacă şi numai dacă xi ≥ 0, ∀i ∈ {1, . . . , n}.
Definiţia 1.2. O problemă de optimizare (programare) liniară este o
problemă de optimizare matematică pentru care funcţia obiectiv este liniară,
iar domeniul de admisibilitate este definit printr-un sistem de restricţii egalităţi
sau restricţii inegalităţi liniare.
Forma generală a unei astfel de probleme este
min c> > >

1 x1 + c2 x2 + c3 x3 (sau max)
A11 x1 + A12 x2 + A13 x3 = b1 ,

A21 x1 + A22 x2 + A23 x3 ≤ b2 ,

A31 x1 + A32 x2 + A33 x3 ≥ b3 ,

x1 ≥ 0, x2 arbitrar, x3 ≤ 0,

unde
• c1 , c2 , c3 sunt vectorii coeficienţilor funcţiei obiectiv,

• x1 , x2 , x3 sunt vectorii variabilelor (necunoscutelor) problemei,

1
• A11 , A12 , A13 , A21 , A22 , A23 , A31 , A32 , A33 sunt matricele siste-
mului de restricţii,

• b1 , b2 , b3 sunt vectorii termenilor liberi ai sistemului de restricţii.


Definiţia 1.3. Forma canonică a unei probleme de optimizare liniară este
min c> x max c> x




Ax ≥ b, sau Ax ≤ b,

x≥0 x ≥ 0,

unde c, x ∈ Rn , b ∈ Rm , A ∈ Rm×n (m, n ∈ N∗ ).


Teorema 1.1 (de dualitate a problemelor de optimizare liniară scrise
sub formă canonică). Pentru orice c ∈ Rn , A ∈ Rm×n , b ∈ Rm are loc
egalitatea

min {c> x | Ax ≥ b, x ≥ 0} = max {b> y | A> y ≤ c, y ≥ 0}.


x∈Rn m
y∈R

Definiţia 1.4. Forma standard a unei probleme de optimizare liniară este


min c> x (sau max)


Ax = b,

x ≥ 0,

unde c, x ∈ Rn , b ∈ Rm , A ∈ Rm×n (m, n ∈ N∗ ).


Observaţia 1.2. Orice problemă de optimizare liniară poate fi adusă de la
forma generală la forma standard prin următoarele transformări:
1. Transformarea restricţiilor inegalităţi de tipul ”≤” ı̂n egalităţi:
(
Ax + x0 = b,
Ax ≤ b ⇔
x0 ≥ 0.

2. Transformarea restricţiilor inegalităţi de tipul ”≥” ı̂n egalităţi:


(
Ax − x0 = b,
Ax ≥ b ⇔
x0 ≥ 0.

3. Transformarea variabilelor nepozitive ı̂n variabile nenegative:


(
x = −x0 ,
x≤0⇔
x0 ≥ 0.

2
4. Transformarea variabilelor arbitrare ı̂n variabile nenegative:
(
x = x0 − x00 ,
x arbitrar ⇔
x0 ≥ 0, x00 ≥ 0.

Componentele vectorilor x0 şi x00 se numesc variabile auxiliare.

Observaţia 1.3. Aplicaţiile practice ale problemelor de optimizare liniară


apar ı̂n numeroase domenii ı̂n care este necesară optimizarea acţiunilor modela-
te prin funcţii liniare cu restricţii liniare. Printre acestea enumerăm problemele
de optimizare a transporturilor, de planificare a producţiei, de optimizare a
fluxurilor sau interschimburilor economice, de optimizare a deciziilor.

Exerciţiul 1.1. Să se aducă la forma standard problema de optimizare liniară



min 3x1 − 2x2 + x3

x1 + 2x2 − x3 ≥ 2,

4x1 − 3x2 = 1,

3x1 + x2 − x3 ≥ −3

x1 ≥ 0, x2 ≤ 0, x3 arbitrar.

Rezolvare. Utilizăm următoarele transformări:


(
x2 = −x02 ,
x2 ≤ 0 ⇔
x02 ≥ 0;
(
x3 = x03 − x003 ,
x3 arbitrar ⇔
x03 ≥ 0, x003 ≥ 0;
(
x1 + 2x2 − x3 − x4 = 2,
x1 + 2x2 − x3 ≥ 2 ⇔
x4 ≥ 0;
(
−3x1 − x2 + x3 + x5 = 3
3x1 + x2 − x3 ≥ −3| · (−1) ⇔ −3x1 − x2 + x3 ≤ 3, ⇔
x5 ≥ 0.

Deci forma standard a problemei date este


min 3x1 + 2x02 + x03 − x003

x1 − 2x02 − x03 + x003 − x4 = 2,

4x1 + 3x0 = 1,

2
−3x1 + x0 + x0 − x00 + x5 = 3
2 3 3
x1 , x0 , x0 , x00 , x4 , x5 ≥ 0,
2 3 3

3
> 0 0 , x00 , x , x )> ,

>  2, 1, −1, 0, 0) , x = (x1 , x2 , x
c = (3, 3 3 4 5 

min c x 

1 −2 −1 1 −1 0 2

adică Ax = b, unde  4
x ≥ 0, 
 A = 3 0 0 0 0 , b =  1 .
−3 1 1 −1 0 1 3



2 Algoritmul simplex
Algoritmul simplex este cel mai cunoscut algoritm pentru rezolvarea pro-
blemelor de optimizare liniară. El se aplică problemelor de optimizare liniară
aduse la forma standard.
Ideea algoritmului simplex constă ı̂n căutarea valorii optime şi a soluţiilor
optime prin parcurgerea pas cu pas a vârfurilor suprafeţei poligonale ce repre-
zintă domeniul de admisibilitate, având drept criteriu ı̂mbunătăţirea funcţiei
obiectiv până la optimizarea acesteia.
Considerăm problema de optimizare liniară sub forma standard
min c> x (sau max)


Ax = b, (2.1)

x ≥ 0,

unde

• c = (c1 , c2 , . . . , cn )> ∈ Rn este vectorul coeficienţilor funcţiei obiectiv,

• x = (x1 , x2 , . . . , xn )> ∈ Rn este vectorul variabilelor (necunoscutelor)


problemei,

• A = (aij )i=1,m ∈ Rm×n este matricea sistemului de restricţii,


j=1,n

• b = (b1 , b2 , . . . , bm )> ∈ Rm este vectorul termenilor liberi ai sistemului


de restricţii (m, n ∈ N∗ ).

Presupunem că
rang A = m ≤ n şi b ≥ 0. (2.2)

Observaţia 2.1. Presupunerea b ≥ 0 nu este restrictivă, deoarece restricţiile


având termenii liberi bi < 0 pot fi ı̂nmulţite cu −1.

Fiecare pas al algoritmului este reprezentat ı̂ntr-un tabel, numit tabel


simplex, având forma

4
c1 c2 ... cn
cB B xB x1 x2 ... xn

YB

— — ∆ ∆1 ∆2 ... ∆n
unde:
• B este o mulţime de m variabile xi ale căror coloane corespondente din
matricea A, notate cu ai , formează o bază a spaţiului vectorial real Rm ,
adică det AB 6= 0, unde AB ∈ Rm×m este matricea formată din aceste m
coloane ai . B se numeşte bază a spaţiului soluţiilor, iar variabilele xi ce
compun această bază se numesc variabilele bazei.

• cB = (cB B B >
1 , c2 , . . . , cm ) reprezintă vectorul coeficienţilor ci din funcţia
obiectiv corespunzători variabilelor xi din baza B. Aceşti coeficienţi se
numesc coeficienţii bazei.

• xB = (xB B B >
1 , x2 , . . . , xm ) reprezintă vectorul soluţie al sistemului obţinut
din sistemul de restricţii Ax = b luând zero variabilele din afara bazei
B. Sistemul rămas este compatibil determinat deoarece matricea sa, AB ,
are determinantul nenul. xB se numeşte soluţie de bază.
Dacă xB ≥ 0 (adică soluţia de bază completată cu zero pentru variabi-
lele din afara bazei este soluţie admisibilă), atunci B se numeşte bază
primal admisibilă, iar xB se numeşte soluţie de bază primal ad-
misibilă.

• YB = (yij
B)
i=1,m reprezintă matricea ale cărei coloane sunt scrierile co-
j=1,n
loanelor matricei A ı̂n baza {ai | xi ∈ B} corespunzătoare lui B, adică

YB = (AB )−1 A.

• ∆ reprezintă valoarea funcţiei obiectiv pentru soluţia de bază xB (luând


zero variabilele din afara bazei B), adică
m
X
∆= cB B
i xi . (2.3)
i=1

• ∆1 , ∆2 , . . . , ∆n reprezintă indicatori de optimalitate pentru soluţia de


bază xB (luând zero variabilele din afara bazei B), definiţi prin formulele

5
m

X
cB B

cj − i yij , dacă problema este de minim,



∆j = i=1 ∀j ∈ {1, . . . , n}.
Xm
cB B

i yij − cj , dacă problema este de maxim,




i=1
(2.4)
Observaţia 2.2. Dacă baza B corespunde bazei canonice {e1 , e2 , . . . , em },
atunci
xB = b şi YB = A. (2.5)
Descriem ı̂n continuare algoritmului simplex.
Algoritmul 2.1 (Algoritmul simplex). Pentru rezolvarea unei probleme
de optimizare liniară, se parcurg următoarele etape:
Etapa 1. Dacă problema dată nu are forma standard, se aduce la forma stan-
dard (2.1), cu b ≥ 0 (utilizând transformările din Observaţiile 1.2 şi 2.1).

Etapa 2. Se completează primul tabel simplex, pornind cu o bază primal


admisibilă. De regulă, se utilizează baza B corespunzătoare bazei cano-
nice {e1 , e2 , . . . , em }, dacă toţi cei m vectori unitate e1 , e2 , . . . , em sunt
coloane ı̂n matricea A.
Dacă nu se dispune de o bază primal admisibilă, atunci o astfel de bază
se poate determina utilizând o metodă numită metoda celor două faze,
ce va fi descrisă ı̂n subsecţiunea următoare.

Etapa 3. Se interpretează datele din tabelul simplex curent, pentru a decide


ı̂ncheierea calculelor sau continuarea lor ı̂ntr-un nou tabel simplex.
Pentru aceasta, se parcurg următorii paşi (subetape):

Pasul 1 (Verificarea criteriului de optim finit). Dacă

∆j ≥ 0, ∀j ∈ {1, . . . , n},

atunci problema dată are valoare optimă finită.


Valoarea optimă este egală cu ∆, iar o soluţie optimă este
soluţia de bază xB completată cu zero pentru variabilele din afara
bazei. Algoritmul se ı̂ncheie.
Pasul 2 (Criteriul de intrare ı̂n bază). Intră ı̂n bază o variabilă xj0
cu proprietatea că

∆j0 = min {∆j | ∆j < 0, j ∈ {1, . . . , n}}

6
(vom nota acest fapt ı̂n tabel printr-o săgeată verticală pe coloana
variabilei xj0 , lângă ∆j0 ).
Pasul 3 (Verificarea criteriului de optim infinit). Dacă
B
yij 0
≤ 0, ∀i ∈ {1, . . . , m},

atunci problema dată are valoare optimă infinită şi anume −∞


pentru problemele de minim, respectiv +∞ pentru problemele de
maxim. Nu există soluţii optime. Algoritmul se ı̂ncheie.
Pasul 4 (Criteriul de ieşire din bază). Iese din bază o variabilă xi0
cu proprietatea că
( )
xBi0 xB
i B
= min B ij0
y > 0, i ∈ {1, . . . , m}
yiB0 j0 yij 0

(vom nota acest fapt ı̂n tabel printr-o săgeata orizontală pe linia
variabilei xi0 , lângă această variabilă).

Etapa 4. Se completează un nou tabel simplex, corespunzător noii baze


B \{xi0 }∪{xj0 } (obţinută din vechea bază B prin substituţia xi0 ← xj0 ).
Pentru aceasta, se parcurg următorii paşi (subetape):

Pasul 1. Se ı̂nlocuieşte variabila xi0 cu variabila xj0 ı̂n coloana bazei B


şi coeficientul cB B
i0 cu coeficientul cj0 ı̂n coloana coeficienţilor bazei
cB (corespunzător faptului că noua bază se obţine prin substituţia
xi0 ← xj0 ).
Pasul 2. Se completează coloana soluţiei de bază xB , matricea YB şi
indicatorii de optimalitate ∆1 , ∆2 , . . . , ∆n prin aplicarea regulii pi-
votului yiB0 j0 (pivotul este situat la intersecţia dintre linia variabilei
xi0 ce iese din bază cu coloana variabilei xj0 ce intră ı̂n bază şi ı̂l
vom evidenţia ı̂n tabel prin ı̂ncadrare yiB0 j0 ).
Pasul 3. Se recalculează valoarea ∆ cu formula (2.3).

După completarea noului tabel simplex se reia Etapa 3.

Observaţia 2.3. Algoritmul simplex se ı̂ncheie ı̂n momentul ı̂n care este sa-
tisfăcut unul din cele două criterii de optim, finit sau infinit. Valorile ∆ ale
funcţiei obiectiv corespunzătoare bazelor succesive (din tabelele simplex suc-
cesive) sunt descrescătoare pentru problemele de minim, respectiv crescătoare
pentru problemele de maxim.

7
Observaţia 2.4. Dacă o bază se repetă ı̂n decursul algoritmului simplex,
atunci spunem că algoritmul ciclează, conducând la repetarea infinită a paşilor.
Ciclarea apare doar pentru probleme degenerate, cu soluţii de bază având un
număr mai mic decât m de componente nenule. Pentru rezolvarea acestei
situaţii se perturbă vectorul b al termenilor liberi cu mici cantităţi de control
ε · ai (ε > 0 fiind foarte mic), apoi se aplică algoritmul simplex, obţinându-se
la final valori ε-optimale pentru funcţia obiectiv c> x, adică valori c> x cu
proprietatea că
|c> x − c> x∗ | < ε,
unde c> x∗ este valoarea optimă a problemei. Această metodă se numeşte
metoda perturbării controlate a lui Charnes.

Exerciţiul 2.1. Să se rezolve următoarele probleme de optimizare liniară fo-


losind
algoritmul simplex primal:
min x1 − 2x2 + 2x3 + 3x5 min 2x1 − 3x2 − x3

x1 + x3 + x5 = 7, x1 + 2x2 + 3x3 ≤ 10,

a) x2 − 2x3 − 2x5 = 4, ; b) 2x1 − 5x2 + x3 ≥ −4, ;
x3 + x4 − 3x5 = 1, x1 − x2 − 2x3 ≤ 8,

x1 , x2 , x3 , x4 , x5 ≥ 0. x1 ≥ 0, x2 ≥ 0, x3 ≤ 0;

max 7x1 − 6x2 max x1 + 9x2
min x1 + 2x2 + 4x3
−x1 + 2x2 ≥ −8, x1 − 3x2 ≤ 5,
−2x1 + x2 ≤ 7,
c) 2x1 + x2 ≥ −6,
; d) 2x1 − x2 ≥ −4,
; e) .
5x1 − 3x2 ≤ 15, 3x1 − 4x2 ≥ −12, x1 + x3 = −2,
x1 ≥ 0, x2 ≥ 0, x3 ≤ 0;
x1 ≥ 0, x2 ≤ 0; x1 ≥ 0, x2 ≥ 0;

Rezolvare. a) Vom  aplica algoritmul simplex. Problema are forma standard


c = (1, −2, 2, 0, 3) > , x = (x , x , x , x , x )> ,
min c> x

  1 2 3 4 
 5
1 0 1 0 1 7

Ax = b, unde

x ≥ 0, 
 A =  0 1 −2 0 −2  , b =  4  ≥ 0.
0 0 1 1 −3 1

Toţi cei m = 3 vectori unitate e1 , e2 , e3 sunt coloane ı̂n matricea A:
e1 = a1 , e2 = a2 , e3 = a4 . Deci primul tabel simplex se completează pornind
cu baza primal admisibilă B = {x1 , x2 , x4 } corespunzătoare bazei canonice,
pentru care xB = b şi YB = A (conform Observaţiei 2.2). Aplicând formulele
(2.3) obţinem
∆ = 1 · 7 + (−2) · 4 + 0 · 1 = −1,
iar aplicând formulele (2.4) (problema fiind de minim) obţinem

∆1 = 1 − [1 · 1 + (−2) · 0 + 0 · 0] = 0,

8
∆2 = −2 − [1 · 0 + (−2) · 1 + 0 · 0] = 0,
∆3 = 2 − [1 · 1 + (−2) · (−2) + 0 · 1] = −3,
∆4 = 0 − [1 · 0 + (−2) · 0 + 0 · 1] = 0,
∆5 = 3 − [1 · 1 + (−2) · (−2) + 0 · (−3)] = −2.
Aceste valori sunt trecute ı̂n primul tabel simplex.
Se interpretează datele din primul tabel simplex:

• ∃∆j < 0 (fapt menţionat şi imediat ı̂n dreapta tabelului, pe linia indi-
catorilor ∆j ), deci nu este ı̂ndeplinit criteriul de optim finit;

• min{∆j | ∆j < 0} = min{−3, −2} = −3 = ∆3 , deci, conform criteriului


de intrare ı̂n bază, va intra ı̂n următoarea bază variabila x3 (fapt marcat
ı̂n tabel prin săgeata verticală de lângă ∆3 = −3);
B > 0 (fapt menţionat şi imediat ı̂n dreapta tabelului prin fracţiile
• ∃yi3
de pe liniile corespondente valorilor yi3 B > 0, fracţii necesare la aplicarea

criteriului de ieşire din bază), deci nu este ı̂ndeplinit criteriul de optim


infinit;
 B   
xi B 7 1 1
• min B yi3 > 0 = min , = (aceste fracţii fiind calculate şi
yi3 1 1 1
imediat ı̂n dreapta tabelului pe liniile corespondente valorilor yi3 B > 0, pe

liniile corespondente valorilor yi3B ≤ 0 scriindu-se semnul ”—”, iar fracţia

minimă fiind marcată cu ”min”), deci, conform criteriului de ieşire din


bază, va ieşi din bază variabila x4 (fapt marcat ı̂n tabel prin săgeata
orizontală pe linia variabilei x4 , lângă această variabilă), iar pivotul este
elementul 1 (fapt marcat şi ı̂n tabel prin ı̂ncadrare).

Se completează un nou tabel simplex, corespunzător noii baze {x1 , x2 , x3 }


(obţinută din vechea bază B prin substituţia x4 ← x3 ):

• se ı̂nlocuieşte variabila x4 cu variabila x3 ı̂n coloana bazei B şi coeficien-


tul c4 = 0 cu coeficientul c3 = 2 ı̂n coloana coeficienţilor bazei cB ;

• se completează coloana soluţiei de bază xB , matricea YB şi indicatorii


de optimalitate ∆1 , . . . , ∆5 prin aplicarea regulii pivotului;

• se recalculează valoarea ∆ a funcţiei obiectiv cu formula (2.3), deci ∆ =


1 · 6 + (−2) · 6 + 2 · 1 = −4.

9
Datele din acest tabel sunt interpretate şi se completează succesiv noi tabele
simplex, conform descrierii algoritmului simplex.
Prezentăm ı̂n continuare toate aceste tabele (ı̂ncepând cu primul tabel
simplex).

1 -2 2 0 3 min
cB B xB x1 x2 x3 x4 x5 (problema este de minim)
1 x1 7 1 0 1 0 1 7/1=7
-2 x2 4 0 1 -2 0 -2 —
0 ←x4 1 0 0 1 1 -3 1/1=1 min
— — -1 0 0 -3↑ 0 -2 ∃∆j < 0
1 ←x1 6 1 0 0 -1 4 6/4 min
-2 x2 6 0 1 0 2 -8 —
2 x3 1 0 0 1 1 -3 —
— — -4 0 0 0 3 -11↑ ∃∆j < 0
3 x5 3/2 1/4 0 0 -1/4 1
-2 x2 14 2 1 0 0 0
2 x3 11/2 3/4 0 1 1/4 0
— — -25/2 11/4 0 0 1/4 0 ∆j ≥ 0 ∀j
La interpretarea datelor din ultimul tabel este satisfăcut criteriul de optim
finit ∆j ≥ 0, ∀j.
Deci o soluţie optimă a problemei date este
11 3
x1 = 0, x2 = 14, x3 = , x4 = 0, x5 = ,
2 2
iar valoarea optimă este
25
min(x1 − 2x2 + 2x3 + 3x5 ) = − .
2
b) Aducem problema la forma standard. Pentru aceasta utilizăm următoarele

10
transformări:
(
x3 = −x03 ,
x3 ≤ 0 ⇔
x03 ≥ 0;
(
x1 + 2x2 + 3x3 + x4 = 10,
x1 + 2x2 + 3x3 ≤ 10 ⇔
x4 ≥ 0.
2x1 − 5x2 + x3 ≥ −4| · (−1) ⇔ −2x1 + 5x2 − x3 ≤ 4
(
−2x1 + 5x2 − x3 + x5 = 4,

x5 ≥ 0.
(
x1 − x2 − 2x3 + x6 = 8,
x1 − x2 − 2x3 ≤ 8 ⇔
x6 ≥ 0.

Deci forma standard a problemei date este


min 2x1 − 3x2 + x03

x1 + 2x2 − 3x03 + x4 = 10,

−2x1 + 5x2 + x0 + x5 = 4,

3 ,
x1 − x2 + 2x0 + x6 = 8,
3
x1 ≥ 0, x2 ≥ 0, x0 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0;
3

> x = (x1 , x2 , x03 , x4 )> ,



min c> x  −3, 1, 0, 0, 0) ,
c = (2, , x5 , x6


1 2 −3 1 0 0 10

adică Ax = b, unde
x ≥ 0,  A=

 −2 5 1 0 1 0 , b =  4 .
1 −1 2 0 0 1 8

Prezentăm ı̂n continuare tabelele simplex.
2 -3 1 0 0 0 min
cB B xB x1 x2 x03 x4 x5 x6
0 x4 10 1 2 -3 1 0 0 10/2=5
0 ←x5 4 -2 5 1 0 1 0 4/5 min
0 x6 8 1 -1 2 0 0 1 —
— — 0 2 -3↑ 1 0 0 0 ∃∆j < 0
0 x4 42/5 9/5 0 -17/5 1 -2/5 0
-3 x2 4/5 -2/5 1 1/5 0 1/5 0
0 x6 44/5 3/5 0 11/5 0 1/5 1
— — -12/5 4/5 0 8/5 0 3/5 0 ∆j ≥ 0 ∀j
La interpretarea datelor din ultimul tabel este satisfăcut criteriul de optim
finit ∆j ≥ 0, ∀j.

11
Deci o soluţie optimă a problemei ı̂n forma standard este
4
x1 = 0, x2 = , x03 = 0, x4 = 42/5, x5 = 0, x6 = 44/5
5
iar valoarea optimă este
12
∆ = min(2x1 − 3x2 + x03 ) = − .
5
4
O soluţie optimă a problemei iniţiale este x1 = 0, x2 = , x3 = 0, iar
5
12
valoarea optimă este ∆ = − .
5
c) Mai ı̂ntâi vom aduce problema la forma standard. Pentru aceasta uti-
lizăm următoarele transformări:
(
x2 = −x02 ,
x2 ≤ 0 ⇔
x02 ≥ 0;
(
x1 − 2x2 + x3 = 8,
−x1 + 2x2 ≥ −8| · (−1) ⇔ x1 − 2x2 ≤ 8 ⇔
x3 ≥ 0.
(
−2x1 + −x2 + x4 = 6,
2x1 + x2 ≥ −6| · (−1) ⇔ −2x1 − x2 ≤ 6 ⇔
x4 ≥ 0.
(
5x1 − 3x2 + x5 = 15,
5x1 − 3x2 ≤ 15 ⇔
x5 ≥ 0.

Deci forma standard a problemei date este


max 7x1 + 6x02

x1 + 2x02 + x3 = 8,

−2x1 + x0 + x4 = 6,

2 ,
5x1 + 3x0 + x5 = 15,
2
x1 ≥ 0, x0 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0;
2

> 0 )> ,

max c> x

 c = (7,
 6, 0, 0, 0) , x = (x
1 , x2 , x3 ,
x4 , x5
1 2 1 0 0 8

adică Ax = b, unde
x ≥ 0, 
 A =  −2 1 0 1 0 , b =  6 .
5 3 0 0 1 15

Prezentăm ı̂n continuare tabelele simplex.

12
7 6 0 0 0 max
cB B xB x1 x02 x3 x4 x5
0 x3 8 1 2 1 0 0 8/1=8
0 x4 6 -2 1 0 1 0 —
0 ←x5 15 5 3 0 0 1 15/5 min
— — 0 -7↑ -6 0 0 0 ∃∆j < 0
0 ←x3 5 0 7/5 1 0 -1/5 5/(7/5)=25/7 min
0 x4 12 0 11/5 0 1 2/5 12/(11/5)=60/11
7 x1 3 1 3/5 0 0 1/5 3/(3/5)=5
— — 21 0 -9/5↑ 0 0 7/5 ∃∆j < 0
6 x02 25/7 0 1 5/7 0 -1/7
0 x4 29/7 0 0 -11/7 1 1/7
7 x1 6/7 1 0 -3/7 0 2/7
— — 192/7 0 0 9/7 0 8/7 ∆j ≥ 0 ∀j
La interpretarea datelor din ultimul tabel este satisfăcut criteriul de optim
finit ∆j ≥ 0, ∀j.
Deci o soluţie optimă a problemei ı̂n forma standard este
25
x1 = 6/7, x02 = , x3 = 0, x4 = 29/7, x5 = 0,
7
iar valoarea optimă este
192
∆ = max(7x1 + 6x02 ) = .
7
25
O soluţie optimă a problemei iniţiale este x1 = 6/7, x2 = −x02 = − , iar
7
192
valoarea optimă este ∆ = .
7
d) Aducem problema la forma standard. Pentru aceasta utilizăm următoarele
transformări:
(
x1 − 3x2 + x3 = 5,
x1 − 3x2 ≤ 5 ⇔
x3 ≥ 0.
(
−2x1 + x2 + x4 = 4,
2x1 − x2 ≥ −4| · (−1) ⇔ −2x1 + x2 ≤ 4 ⇔
x4 ≥ 0.
(
−3x1 + 4x2 + x5 = 12,
3x1 − 4x2 ≥ −12| · (−1) ⇔ −3x1 + 4x2 ≤ 12 ⇔
x5 ≥ 0.

13
Deci forma standard a problemei date este

max x1 + 9x2

x1 − 3x2 + x3 = 5,

−2x1 + x2 + x4 = 4, ,

−3x1 + 4x2 + x5 = 12,

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0;

> >,

max c> x

 c = (1,
 9, 0, 0, 0) , x = (x1 ,
x2 , x3 , x
4 , x5 ) 
1 −3 1 0 0 5

adică Ax = b, unde
x ≥ 0, 
 A =  −2 1 0 1 0  , b =  4 .
−3 4 0 0 1 12

Prezentăm ı̂n continuare tabelele simplex.
1 9 0 0 0 max
cB B xB x1 x2 x3 x4 x5
0 x3 5 1 -3 1 0 0 —
0 x4 4 -2 1 0 1 0 4/1=4
0 ←x5 12 -3 4 0 0 1 12/4=3 min
— — 0 -1 -9↑ 0 0 0 ∃∆j < 0, min(-1,-9)=-9
0 x3 14 -5/4 0 1 0 3/4
0 x4 1 -5/4 0 0 1 -1/4
9 x2 3 -3/4 1 0 0 1/4
— — 27 -31/4 0 0 0 9/4 ∃∆j < 0

Deoarece există ∆j < 0, şi anume-31/4, dar pe coloana lui toate elementele
sunt negative (deci nu se poate alege pivot pozitiv), rezultă că problema dată
nu are soluţie admisibilă şi este ı̂ndeplinit criteriul de optim infinit, adică

max (x1 + 9x2 ) = +∞.

e) Aducem problema la forma standard. Pentru aceasta utilizăm următoarele


transformări:
(
−2x1 + x2 + x4 = 7,
−2x1 + x2 ≤ 7 ⇔
x4 ≥ 0.
x1 + x3 = −2| · (−1) ⇔ −x1 − x3 = 2
(
x3 = −x03 ,
x3 ≤ 0 ⇔
x03 ≥ 0.

14
Deci forma standard a problemei date este
min x1 + 2x2 − 4x03


−2x1 + x2 + x4 = 7,
−x1 + x0 = 2,
,
3
x1 ≥ 0, x2 ≥ 0, x0 ≥ 0, x4 ≥ 0;
3

min c> x > 0 >



 2, −4, 0) , x =(x1 , x2 ,x3 , x4 ) ,
 c = (1,
adică Ax = b, unde −2 1 0 1 7
x ≥ 0,  A= , b= .
−1 0 1 0 2
Prezentăm ı̂n continuare tabelele simplex.
1 2 -4 0 min
cB B xB x1 x2 x03 x4
2 x2 7 -2 1 0 1 —
-4 x03 2 -1 0 1 0
— — 6 1 0 0 -2↑ ∃∆j < 0
0 x4 7 -2 1 0 1
-4 x03 2 -1 0 1 0
— — -8 -3 2 0 0 ∃∆j < 0
Deoarece există ∆j < 0, şi anume -3, dar pe coloana lui toate elementele
sunt negative (deci nu se poate alege pivot pozitiv), rezultă că problema dată
nu are soluţie admisibilă şi este ı̂ndeplinit criteriul de optim infinit, adică

min (x1 + 2x2 + 4x3 ) = −∞.

Exerciţiul 2.2. O fabrică dispune de materiile prime M1 , M2 şi M3 care


pot fi utilizate pentru realizarea produselor P1 , P2 şi P3 . Consumurile speci-
fice, disponibilul de materie primă şi beneficiile unitare sunt date ı̂n tabelul
următor:
Materii primeProduse P1 P2 P3 Disponibilul (ı̂n tone)
M1 2 1 2 11
M2 1 3 1 8
M3 1 0 1 5
Beneficiul unitar (u.m.) 4 5 1
Să se determine un plan de producţie care conduce la un beneficiu total maxim.

15
Rezolvare. Fie x1 , x2 , x3 numărul de produse P1 , P2 , respectiv P3 ce se vor
fabrica.
Modelul matematic este:

max 4x1 + 5x2 + x3

2x1 + x2 + 2x3 ≤ 11,

x1 + 3x2 + x3 ≤ 8,

x1 + x3 ≤ 5,

x1 , x2 , x3 ≥ 0.

Aducem problema la forma standard:



max 4x1 + 5x2 + x3

2x1 + x2 + 2x3 + x4 = 11,

x1 + 3x2 + x3 + x5 = 8,

x1 + x3 + x6 = 5,

xi ≥ 0, i = 1, 6.

Datele acestei probleme sunt:

c = (4, 5, 1, 0, 0, 0)> , x = (x1 , x2 , x3 , x4 , x5 , x6 )> ,


   
2 1 2 1 0 0 11
A=  1 3 1 0 1 0  , b =  8  ≥ 0.
1 0 1 0 0 1 5

Toţi cei m = 3 vectori unitate e1 , e2 , e3 sunt coloane ı̂n matricea A:


e1 = a4 , e2 = a5 , e3 = a6 . Deci primul tabel simplex se completează pornind
cu baza primal admisibilă B = {x4 , x5 , x6 } corespunzătoare bazei canonice,
pentru care xB = b şi YB = A (conform Observaţiei 2.2).
Aplicând algoritmul simplex, vom obţine următoarele tabele:

16
4 5 1 0 0 0 max
cB B xB x1 x2 x3 x4 x5 x6
0 x4 11 2 1 2 1 0 0 11/1
0 ←x5 8 1 3 1 0 1 0 8/3 min
0 x6 5 1 0 1 0 0 1 —
— — 0 -4 -5↑ -1 0 0 0 ∃∆j < 0
0 x4 25/3 5/3 0 5/3 1 -1/3 0 (25/3)/(5/3)=5
5 x2 8/3 1/3 1 1/3 0 1/3 0 (8/3)/(1/3)=8
0 ←x6 5 1 0 1 0 0 1 5/1=5 min
— — 40/3 -7/3 ↑ 0 2/3 0 5/3 0 ∃∆j < 0
0 x4 0 0 0 0 1 -1/3 -5/3
5 x2 1 0 1 0 0 1/3 -1/3
4 x1 5 1 0 1 0 0 1
— — 25 0 0 3 0 0 7/3 ∆j ≥ 0 ∀j

La interpretarea datelor din ultimul tabel este satisfăcut criteriul de optim


finit ∆j ≥ 0, ∀j.
Deci o soluţie optimă a problemei date este

x1 = 5, x2 = 1, x3 = 0 (x4 = 0, x5 = 0, x6 = 0)

iar valoarea optimă este max(4x1 + 5x2 + x3 ) = 25. 

3 Exerciţii de verificare
Exerciţiul 3.1. Să se rezolve următoarele probleme de optimizare liniară fo-
losind algoritmul simplex primal:
min x1 − 3x2 min −x1 + x2
max 3x1 + 5x2 − 2x3
x1 + 2x2 ≥ −4, −x1 + 2x2 ≥ −1,
x1 + 3x2 − 5x3 ≤ 6,
a)
b) x1 + x2 ≤ 3,
c) 4x1 + x2 ≤ 1,
2x1 + 5x2 − 11x3 ≤ 11, −3x1 − x2 ≤ 1, −3x2 + x3 = 1,
x1 ≥ 0, x2 ≥ 0, x3 ≤ 0;
x1 ≤ 0, x2 ≥ 0; x1 , x3 ≥ 0, x2 ≤ 0;

min x1 − 2x2 + x3
min −3x1 + x2 min −x1 − x2
2x1 − x2 − x3 = 1,
x1 + 2x2 ≤ 4, 2x1 − 4x2 ≥ −5,
d)
e) x1 + 2x3 ≤ 3,
f)
−x1 + x2 ≤ 1, x1 − x3 ≥ −2, −2x1 + x2 ≤ 2,
x1 ≥ 0, x2 ≥ 0; x1 ≤ 0, x2 ≥ 0;
x1 ≥ 0, x2 ≤ 0, x3 ≥ 0;

17


max −2x1 − 3x2 − x3 max 2x1 + x2


max 3x1 − 2x2 + 4x3
−x1 + 2x2 + 3x3 ≤ 10, 2x1 − x2 ≥ −2

x − 2x2 − x3 ≤ 5,
i) 1

g) 2x1 + 5x2 − x3 ≤ 4, h) x1 + 2x2 ≤ 2,
−x1 − x2 − 2x3 ≤ 8, x1 + x2 ≤ 5, −x1 − 4x2 − x3 ≥ −1,
x1 ≥ 0, x2 ≤ 0, x3 ≥ 0;
x1 ≤ 0, x2 ≥ 0, x3 ≤ 0; x1 ≥ 0, x2 ≥ 0;

Exerciţiul 3.2. O fabrică dispune de materiile prime M1 şi M2 pentru a


realiza trei produse P1 , P2 şi P3 . Consumurile specifice, disponibilul de materie
primă şi beneficiile unitare sunt date ı̂n tabelul următor:
Materii primeProduse P1 P2 P3 Disponibilul (ı̂n tone)
M1 1 2 3 1
M2 3 2 0 1
Beneficiul unitar (u.m.) 1 1 1
Să se determine un plan de producţie care conduce la un beneficiu total maxim.

18

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