Sunteți pe pagina 1din 4

1

Teoria optimizării
2009-2010

LABORATOR 4
1 Metoda simplex cu ajutorul tabelelor. Iniţializarea metodei
1.1 Problema de programare liniară pe care o rezolvă metoda
Se cere să se determine punctul (sau un punct) în care se atinge
min cx
x
cu restricţiile

 Ax  b

x  0
şi valoarea funcţiei cx în acest punct, unde
n
x, c sunt vectori de dimensiune n , iar cx reprezintă produsul lor scalar: cx   ci xi
i 1
A e o matrice de dimensiune m  n cu m  n, rang A = m
iar b e un vector de dimensiune m
Toate problemele de programare liniară se pot aduce la această formă canonică.
a) Astfel, dacă sistemul Ax = b e incompatibil, problema nu are soluţie, căci nu există vectori
admisibili: nu mai este nimic de calculat.
b) Dacă sistemul Ax = b e compatibil, cu rang A = rang [A, b] < m, atunci putem elimina
ecuaţiile redundante, combinaţii liniare ale celorlalte, încât sistemul care rămâne A'x = b'
să aibă proprietatea că rang A' = m', unde A' are acum dimensiunea m  n .
c) Dacă se cere găsirea unui punct de maxim cu restricţii, se determină un punct de minim
pentru  cx şi se ţine seama de faptul că max cx   min   cx  .
x x
d) Dacă avem mai multe restricţii de acelaşi tip, egalităţi sau inegalităţi, ele pot fi grupate
într-o singură restricţie. Aşa, de exemplu, Aeq x  beq şi Aeq x  beq se pot scrie în
, ,

Aeq beq A b 


forma unitară
 ' x   '  , Ax  b şi A ' x  b ' se pot scrie în forma unitară
 ' x   '  , iar l  x  u

Aeq beq A b 


şi l   x  u  se pot scrie unitar l  l   x  u  u .
2

e) Restricţiile de tip x  u pot fi incluse printre cele de forma Ax  b , iar cele de tip l  x
pot conduce la schimbarea de variabilă x : x  l. Pe de altă parte, variabilele cu semn
nerestricţionat se pot scrie ca diferenţă de două variabile pozitive.
f) Dacă avem o restricţie de forma Ax  b , ea se poate scrie în forma   A x  b , iar
dacă avem o restricţie de forma Ax  b , cu preţul adăugării variabilelor pozitive y, ea
poate fi înlocuită cu Ax  y  b .

1.2 Algoritmul simplex în formă tabelară x


Pasul 1. Problema se scrie în formă de tabel: A b
c 0
Pasul 2. Iniţializarea. Se determină o submatrice pătratică
inversabilă B a lui A, de dimensiune m, încât B 1b  0.
Pasul 3. După o permutare convenabilă a coloanelor, tabelul devine
xB xN
B N b
cB cN 0
Pasul 4. Prin transformări elementare de algebră liniară asupra liniilor matricei BNb (de forma Li : Li
sau Li : Li   j i
 j L j ) se aduce matricea B la matricea unitate, iar prin transformări de acelaşi tip,
aplicate ultimei linii a tabelului, c B se aduce la vectorul nul. Tabelul devine
xB xN b'
I B N
1
B 1 b
0 r:= c N - c B -cB
1 N
B B 1 b
Pasul 5. Dacă r  0, soluţia este dată de x  ( x B , x N )  ( B 1b, 0) cu permutările
corespunzătoare. STOP.
Pasul 6. În caz contrar, se identifică cea mai mică componentă negativă a lui r, iar
coloana (şi variabila) care-i corespunde se alege drept coloană (şi variabilă) de intrare.
Fie aceasta xi .
b
Pasul 7. Se face raportul coloanelor element cu element. Dacă nu există rapoarte cu
xi
numitori strict pozitivi, atunci problema nu are soluţie optimală. Mai precis, există
vectori admisibili care fac costul oricât de mic, încât inf cx =  . Evident, această
valoare nu se atinge. STOP.
Pasul 8. În caz contrar, se alege cel mai mic raport (pozitiv sau nul) dintre cele cu
numitor strict pozitiv. Fie acesta al p-lea (Dacă există mai multe egale şi cele mai mici, se
alege oricare dintre ele.) Acesta va indica variabila de ieşire: cea corespunzătoare celei
de-a p-a coloane.
Pasul 9. Se permută coloana de intrare cu cea de ieşire şi se reia întregul proces de la
pasul 4.
3

1.3 Iniţializarea metodei simplex

Putem presupune, fără a restrânge generalitatea, că b  0. Într-adevăr, în caz contrar


putem înmulţi cu -1 ecuaţiile corespunzătoare componentelor negative ale lui b.
Introducem variabilele y  ( y1 , , y m ) şi studiem o problemă de programare liniară
modificată, pentru care iniţializarea este evidentă şi care conduce, până la urmă, la
aceeaşi soluţie:
Problema de a minimiza cx+δy, cu restricţiile Ax+y=b, x  0, y  0.
Se observă că matricea B : I m formată din coloanele care corespund lui y verifică
condiţiile de la Pasul 2. Alegem vectorul   ( d , , d ) cu d foarte mare, dar neprecizat.
În calcule el va fi considerat întotdeauna suficient de mare încât să aibă loc
comportamentul valabil în vecinătatea lui  . Pentru d suficient de mare, soluţia
optimală a problemei modificate va fi de forma (x, 0), unde x este o soluţie optimală a
problemei iniţiale. Într-adevăr, dacă y nu ar avea toate coordonatele nule, costul s-ar
mări foarte mult, din cauza lui d foarte mare. Pe de altă parte, pentru y = 0, costul şi
restricţiile ce se impun lui x sunt aceleaşi ca şi în problema iniţială.

1.4 Exerciţii
Exerciţiul 1. Să se minimizeze funcţia  3 x1  4 x 2  2 x3 , cu restricţiile

 x1  3x2  2 x3  3

3x1  3x2  x3  4
 x  0, i  1, 2, 3
i
Verificaţi soluţia în MATLAB.

Exerciţiul 2. Să se minimizeze funcţia 3 x1  x 2  9 x3  x 4 , cu restricţiile

x1  2 x3  x4  4

 x 2  x3  x 4  2
x  0, i  1,  , 4
i

2 Probleme din practică


Problema 1. O fabrică realizează două tipuri de produse P1 şi P2 , folosind două
materii prime M 1 şi M 2 , de care dispune în cantităţile 100, respectiv 90. Pentru a
realiza o unitate de P1 , se consumă 2 unităţi de M 1 şi 5 unităţi de M 2 . Pentru a
realiza o unitate de P2 , se consumă 3 unităţi de M 1 şi 4 unităţi de M 2 . Ce cantitate
din fiecare produs trebuie realizată pentru a maximiza profitul, ştiind că profiturile pe
unitatea de produs sunt egale cu 3, respectiv cu 6 lei?

Problema 2. O companie trebuie să livreze şi să instaleze, în cel mult 1600 de ore de


lucru, 7800 m2 de ţiglă. Există două tipuri de elemente de ţiglă: modelul A1 necesită 9,5
4

elemente de ţiglă pe m2, iar modelul A2 necesită 12,5 elemente pe m 2. Într-o oră se pot
instala 5 m2 de model A1 şi 4 m2 de model A2. Preţul celor două modele este de 0,7 € şi
respectiv 0,8 € pe element. Cantitatea maximă de ţiglă A2 ce poate fi livrată este de 2500
m2. Ce suprafaţă trebuie acoperită cu modelul A1 şi ce suprafaţă trebuie acoperită cu
modelul A2 încât profitul obţinut să fie maxim?

Problema 3. Un produs, aflat în n depozite în cantităţile u1 , u 2 , , u n , trebuie livrat la m


destinaţii în cantităţile v1 , v 2 , , v m respectiv. (Se presupune că
u1  u 2    u n  v1  v2    vm .) Costul trimiterii unei unităţi de produs de la depozitul i
la destinaţia j este cij . Determinaţi cantităţile xij în care trebuie trimis produsul de la
depozitul i la destinaţia j, încât costul total al transportului să fie minim.

Aplicaţie numerică:
n  3, m  2, u1  2, u 2  2, u 3  3, v1  5, v2  2, c11  2, c12  1, c21  3, c22  1, c31  2, c32  3.

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