Documente Academic
Documente Profesional
Documente Cultură
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
unde
• c1 , c2 , c3 sunt vectorii coeficienţilor funcţiei obiectiv,
1
• A11 , A12 , A13 , A21 , A22 , A23 , A31 , A32 , A33 sunt matricele siste-
mului de restricţii,
2
4. Transformarea variabilelor arbitrare ı̂n variabile nenegative:
(
x = x0 − x00 ,
x arbitrar ⇔
x0 ≥ 0, x00 ≥ 0.
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
Presupunem că
rang A = m ≤ n şi b ≥ 0. (2.2)
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.
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).
∆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},
(vom nota acest fapt ı̂n tabel printr-o săgeata orizontală pe linia
variabilei xi0 , lângă această variabilă).
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.
∆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;
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.
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.
> 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ă
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
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.
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
x1 = 5, x2 = 1, x3 = 0 (x4 = 0, x5 = 0, x6 = 0)
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;
18