Documente Academic
Documente Profesional
Documente Cultură
Capitolul 1
Programare liniară (II)
© Conf. dr. ing. mat. Ovidiu Blăjină
3. Metoda SIMPLEX
4. Postoptimizare
5. Optimizare parametrică
6. Programare în numere întregi
⎨ 2 x1 − x2 − 2 x3 + x5 =1
⎪ 2 x1 + 4 x2 − 3 x3 + x6 = 6
⎪ x ≥ 0, i = 1, 6
⎩ i
Matricea sistemului de restricţii a formei de mai
sus a problemei este:
⎡ 3 − 2 1 1 0 0⎤
A = ⎢ 2 − 1 − 2 0 1 0⎥
⎢ ⎥
⎣ 2 4 − 3 0 0 1 ⎦
cu m = 3, n = 6, rang (A) = 3 < 6.
MS - Cursul 2 Cap.1. Programare liniară 16
Se poate forma o bază, B, cu ultimele trei coloane
ale matricei A, aceasta fiind matricea unitate:
⎡1 0 0⎤
B = ⎢0 1 0 ⎥
⎢ ⎥
⎣0 0 1 ⎦
Pentru a putea aplica algoritmul simplex se
verifică, în prealabil, dacă baza B este primal
admisibilă. Într-adevăr, B fiind matrice unitate, avem
B-1 = B, iar x B = B −1b = b = [4 1 6] T > 0.
Se construiesc tabelele simplex (v. fig. urm.).
Problema admite soluţia optimă finită: x1= 0;
x2= 1,5; x3= 0; x4= 7; x 5= 2,5; x6= 0; zmin= -4,5.
MS - Cursul 2 Cap.1. Programare liniară 17
MS - Cursul 2 Cap.1. Programare liniară 18
Exemplu. Să se rezolve problema de PL:
⎧ max ( x1 + 3 x2 + 2 x3 )
⎪⎪ x1 − x2 + x3 ≤ 2
⎨ − 2x + 2x − x ≤ 4
⎪ 1 2 3
⎪⎩ x1 , x2 , x3 ≥ 0
Soluţie. Se aduce problema la forma standard, prin
introducerea variabilelor de compensare x4 , x5:
⎧ max ( x1 + 3 x2 + 2 x3 )
⎪⎪ x1 − x2 + x3 + x4 =2
⎨ − 2x + 2x − x + x5 = 4
⎪ 1 2 3
⎪⎩ xi ≥ 0, i = 1, 5
MS - Cursul 2 Cap.1. Programare liniară 19
Cu ultimele două coloane din matricea siste-
mului de restricţii (ecuaţii) se poate forma baza B,
respectiv, matricea unitate.
Baza B este o bază primal admisibilă deoarece
B −1b = b = [2 4] T > 0 .
Se poate aplica algoritmul simplex. Tabelele
simplex sunt prezentate ]n figurile următoare.
În ultimul tabel se constată că există zk - ck < 0; J-
= {1, 2}, deci soluţia obţinută nu este optimă. Pe de
altă parte, toţi coeficienţii yi1 de pe coloana
variabilei x1 sunt nepozitivi. Rezultă că problema
are optim infinit (nu are soluţie optimă finită).
MS - Cursul 2 Cap.1. Programare liniară 20
MS - Cursul 2 Cap.1. Programare liniară 21
3.3. Metoda coeficienţilor de penalizare
Pentru a putea începe aplicarea algoritmului
simplex este necesar a fi îndeplinite două condiţii:
¾ problema să fie în formă standard;
¾ să dispunem de o soluţie de bază iniţială.
Pentru cea de-a doua condiţie, alegerea la
întâmplare a unei baze formate din m vectori oarecare
dintre vectorii coloană ai matricei A poate conduce la
soluţii de bază nerealizabile cu care aplicarea
algoritmului simplex nu poate începe.
Determinarea unei soluţii de bază iniţială se
poate realiza cu metoda coeficienţilor de penalizare.
MS - Cursul 2 Cap.1. Programare liniară 22
Fie problema de PL de minimizare:
⎧ [min] z = c1x1 + c2 x2 + L + cn xn
⎪ a11x1 + a12 x2 + L + a1n xn ≥ b1
⎪ (3.1)
⎨ LLLLLLLLLLLLL
⎪ am1x1 + am 2 x2 + L + amn xn ≥ bm
⎪ x ,..., x ≥ 0
⎩ 1 n
x1 ≤ 4 x1 ≥ 5
2 x1 = 4 3 x1 = 5
x2 = 22 / 5 (Tab.7.12) x2 = 8 / 3 (Tab.7.13)
z = 206 / 5 z = 43
x1 ≤ 4 x1 ≥ 5
2 x1 = 4 3 x1 = 5
x2 = 22 / 5 (Tab.7.12) x2 = 8 / 3 (Tab.7.13)
z = 206 / 5 z = 43
x2 ≤ 2 x2 ≥ 3
4 x1 = 21 / 4 5 Nu există
soluţie
x2 = 2 (Tab.7.16) admisibilă (Tab.7.15)
z = 171 / 4
Nod terminal
x1 ≤ 4 x1 ≥ 5
2 x1 = 4 3 x1 = 5
x2 = 22 / 5 (Tab.7.12) x2 = 8 / 3 (Tab.7.13)
z = 206 / 5 z = 43
x2 ≤ 2 x2 ≥ 3
4 x1 = 21 / 4 5 Nu există
soluţie
x2 = 2 (Tab.7.16) admisibilă (Tab.7.15)
z = 171 / 4
x1 ≤ 5 x1 ≥ 6
6 x1 = 5 7 x1 = 6
x2 = 2 (Tab.7.18) x2 = 0 (Tab.7.19)
z = 41 z = 42
Soluţia optimă
MS - Cursul 2 Cap.1. Programare liniară 70