Sunteți pe pagina 1din 4

Recapitulare Programare Liniara

1. max f  3x1  2x2 x 2


d 1
d
 2x1  x2  1
3

d2

x1  x2  3
B
x1  2 ; x1, x2  0

Rezolvare: A C
d1: 2x1  x2  1
d2: x1  x2  3 O D x
1

d3: x1  2

 2 7
A(0,1); B  ,  ; C (2,1); D (2,0); O (0,0)
 3 3
 2x1  x2  1
B  d1  d2   2
; 3x1  2  x1   x2 
7

 x1  x2  3 3 3
 x1  x2  3
C  d2  d3    x2  1

 1
x  2
Multimea solutiilor posibile este poligonul convex OABCD. Solutia optima se afla in varfurile ale caror
coordonate maximizeaza functia obiectiv.
f0  0
fA  3 0  2  1 f A  2
2 7 20 20
f B  3  2   fB   6,6
3 3 3 3
fC  3 2  2  1  8  fC  8
f D  3 2  2  0  6  f D  6
 f max  8 ; x1  2; x2  1

2. Un atelier de mobila dispune de 61 m3 scandura de nuc si 74 m3 scandura de fag, iar restul de materiale
sunt in cantitati nelimitate. In atelier trebuie sa se produca doua tipuri de garnituri de mobila A si B.
Pentru tipul A sunt necesare 1,2 m3 nuc si o,8 m3 fag, iar pentru tipul B sunt necesare o,5 m3 si 1 m3 fag.
Cele doua tipuri de garnituri A si B aduc cate un beneficiu de 400 u.m., respectiv 700 u.m. Sa se
determine cantitatile de garnituri ce trebuie facute din fiecare tip pentru a se realiza un beneficiu maxim.

Rezolvare: Notam cu:


x  cantitatile de garnituri de tipul A si cu
y  cantitatile de garnituri de tipul B.
Din conditiile problemei rezulta x  0, y  0
Beneficiul ce se poate realiza va fi dat de functia:
f  400 x  700 y, functie obiectiv.
1,2x  0,5y  61

conditiile sunt  unde x  0; y  0

0,8x  y  74
Deci problema este:

max f  400 x  700 y


1,2 x  0,5 y  61
0,8 x  y  74


 x  0, y  0
Reprezentam grafic dreptele:
(d1) 1,2x  0,5y  61  0
(d2) 0,8x  y  74  0
12x  5y  610  0



8x  10y  740  0
A(0,74); B(30,50); C(50,8;0); O(0,0)
Poligonul convex OABC formeaza multimea solutiilor posibile.
Solutia optima se afla calculand valoarea functiei obiectiv in fiecare dintre varfurile acestui poligon.
f A  74  700  51800 u.m.
f B  30 400 50 700  12000 35000 47000 u.m.
fC  50,8  400  20320 u.m.
 max f  51800u.m.
x  0; y  74

3. Rezolvati urmatoarea problema de programare liniara cu ajutorul algoritmului simplex:


max f  4x1  x2  3x3
4 x1  x2  6 x3  x4  4

 x1  x2  5 x3  x5  3
 x  0, i  1,5
 i
Rezolvare:
Matricele asociate acestui sistem de restrictii sunt:
a1 a2 a3 a4 a5
 4 1  6 1 0  4
A   b    C  (4, 1, 3, 0, 0,).
 1 1 5 0 1  3
   
Pentru a putea trece la aplicarea algoritmului simplex este necesar sa avem inclusa, in matricea
asociata sistemului, matricea unitate. In acest exemplu ea exista si este formata din vectorii coloana a4 si
a5. Acesti vectori formeaza baza initiala: B  ( a4, a5). Completam tabelul simplex initial astfel:
 liniile di  ci  fi, pentru orice indice i de la 1 la 5, unde ci sunt coeficientii variabilelor din functia
obiectiv, iar fi se calculeaza dupa formula: f i  cbBai , cu cb  (0,0), fiind coeficientii variabilelor care
t

formeaza baza initiala: a4, a5.


 solutia initiala de baza realizabila este data de vectorul termenilor liberi din sistemul de restrictii: Xb
 (4,3)
 in dreptul coloanelor ai se trec coloanele matricii A.
 pe ultima pozitie de pe coloana Xb se trece valoarea functiei pentru solutia corespunzatoare iteratiei
la care lucram
Se intocmeste tabelul simplex cu datele problemei:
In prima etapa, constatam ca in linia ci  fi avem doua valori pozitive si ca atare solutia nu este optima.
Ea poate fi imbunatatita, deoarece vectorii ai si a3 pentru care ci  fi  0 au componente pozitive.
Procedem astfel:
 alegem cea mai mare diferenta pozitiva
d k  maxd i , cu d i  0  d1  4
si vectorul ak va intra in noua baza;
 calculam coloana , astfel: facem raportul dintre elementele de pe coloana vectorului xb si
elementele de pe coloana vectorului ak, raport care se face numai pentru acele elemente de pe coloana ak
strict pozitive. Alegem cea mai mica valoare de pe aceasta coloana,
  min( 4/4, 3/1)  4/4.
Vectorul ae, aflat pe aceeasi linie cu acest element minim va iesi din baza initiala. Vectorul a1 va intra in
baza, iar din baza se va elimina vectorul a4.
Vom obtine in continuare in tabel pentru a doua etapa componentele vectorilor corespunzator bazei
formate.
Elementul aflat la intersectia dintre coloana vectorului ak si linia vectorului al, si anume akl, se numeste
pivot. Putem proceda in felul urmator:
 elementele liniei pivotului (linia lui a4) se impart cu valoarea pivotului si se obtine prima linie a
tabelului in etapa a 2-a iar in baza in locul lui a4 avem a1.
 elementele de pe coloana pivotului sunt: elementul corespunzator pozitiei pivotului este 1, iar restul
sunt 0.
 restul elementelor se calculeaza cu asa numita regula a dretunghiului, dupa cum urmeaza: se
formeaza un dreptunghi avand un varf in elementul care se calculeaza, iar varful opus in elementul
pivotului. Valoarea noua a elementului calculat va fi egala cu produsul dintre valoarea veche si pivot, din
care se scade produsul celorlalte varfuri ale dreptunghiului si rezultatul se imparte la pivot.
De exemplu, pentru elementul a23 avem dreptunghiul
4 -6
1 5  a23
de unde a23 
5  4   6  1  13 . Aplicand cele expuse in etapa intai, rezulta ca solutia mai poate
4 2
fi imbunatatita, introducand in baza vectorul a3 in locul lui a5.
Se intocmesc datele obtinute din calcule si constatam ca in etapa a 3-a conditiile de optimalitate sunt
indeplinite si obtinem solutia:
x1  19/13, x2  0, x3  4/13 si max f  88/13.

4 -1 3 0 0
CB B XB a1 a2 a3 a4 a5 
0 a4 4  1 -6 1 0 1
0 a5 3 1 1 5 0 1 3
ci  f i 0 4* -1 3 0 0
4 a1 1 1 1/4 -3/2 1/4 0 4
0 a5 2 0 3/4 13/2 -1/4 1 -
ci  f i 4 0 -2 9 -1 0
4 a1 19/13 1 11/26 0 5/26 3/13
3 a3 4/13 0 3/26 1 -1/26 2/13
ci  f i 88/13 0 -43/26 0 -17/15 -18/13

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