Sunteți pe pagina 1din 13

OPTIMIZARE LINIARA

1. Probleme economice modelate prin probleme de


optimizare liniar
a
Modelarea unor situatii economice reale, n scopul obtinerii de informatii eficiente, se face utilizand urmatoarele etape:
- formularea situatiei economice, punandu-se n evidenta parametrii
esentiali si obiectivele propuse;
- stabilirea relatiilor ntre parametrii problemei;
- rezolvarea problemei asociate;
- interpretarea rezultatelor n contextul situatiei economice date.
Problema asociata situatiei economice este de multe ori o problema
de programare, care consta n determinarea punctelor n care o functie
data reprezinta functia obiectiv a situatiei economice si are are valoare
maxima sau minima. In cazul n care problema asociata este descrisa
cu ajutorul unor relatii liniare, se spune ca s-a realizat o modelare prin
problema de programare liniara.
Din situatiile economice reale ce conduc la probleme de programare
liniara, vom descrie:
a. organizarea optima a productiei;
b. utilizarea optima a resurselor;
c. repartizarea optima a resurselor.
a. Organizarea optim
a a productiei
Un proces economic consta n fabricarea a n produse P1 , ..., Pn din
m materii prime (resurse) R1 , ..., Rm , disponibile n cantitatile r1 , ..., rm .
Coeficientii tehnologici (consumurile tehnologice) sunt aij IR, i =
1

1, m, j = 1, n, reprezentand cantitatea din materia prima Ri , utilizata


pentru fabricarea unei unitati din produsul Pj . Produsele obtinute sunt
valorificate, beneficiul obtinut pentru o unitate din produsul Pi este
bi . Organizarea optima a productiei consta n determinarea cantitatilor
x1 , x2 , ..., xn , din produsele P1 , ..., Pn astfel ncat, resursele sa nu fie depasite, iar beneficiul total sa fie maxim.
Datele procesului economic sunt prezentate n tabelul urmator:
Resurse Produse

Ri

Beneficiul unitar

Pj

aij

bj

Disponibilul

ri

Relatiile dintre coeficientii tehnologici, disponibil si cantitatile din


produse ce se vor realiza sunt date de:
n

aij xj ri ,

i = 1, m.

(2.1.1)

j=1

Procesul fiind un proces real, cantitatile ce se vor realiza satisfac realatiile


xj 0,

j = 1, n,

(2.1.2)

beneficiul total obtinut este dat prin:


f (x1 , x2 , ..., xn ) =

bj xj .

(2.1.3)

j=1

Organizarea optima a productiei se reduce la rezolvarea problemei:


max f (X),
XS

unde
S = {X IRn |

aij xj ri , i = 1, m, xj 0, j = 1, n}

j=1

(2.1.4)

si
f (x) =

bj x j .

j=1

Problema (2.1.4) se scrie de regula sub forma:

max
bj xj

j=1

aij xj ri , i = 1, m

j=1

x 0, j = 1, n.

(2.1.5)

In conditiile n care resursele din cadrul productiei sunt utilizate complet,


organizarea optima a productiei se reduce la a rezolva problema:

max
bj xj

j=1

aij xj = ri , i = 1, m

j=1

x 0, j = 1, n.

(2.1.6)

Problema (2.1.5) se numeste forma canonic


a a problemei de maxim, iar
problema (2.1.6) se numeste forma standard.
b. Utilizarea optim
a a resurselor
Un proces economic consta n determinarea cantitatilor de materii
prime xj , j = 1, m, pentru realizarea a cel putin pi , i = 1, n unitati din
produsele contractate, cunoscand consumurile tehnologice aij IR, i =
1, n, j = 1, m, precum si costurile unitare cj , j = 1, m ale materiilor
prime.
Datele procesului economic sunt prezentate n tabelul urmator:
Produse Resurse

Pi

Costuri unitare

Rj

aij

cj
3

Cerere

pi

Relatiile dintre coeficientii tehnologici, produsele contractate si cantitatile de materii prime utilizate, sunt date de:
m

aij xj pi , i = 1, n.

(2.1.7)

j=1

Procesul fiind un proces real, cantitatile din materiile prime satisfac:


xj 0, j = 1, m.

(2.1.8)

Cheltuielile totale sunt date de:


f (x1 , ..., xm ) =

cj xj .

(2.1.9)

j=1

Utilizarea optima a resurselor se reduce la problema:


min f (X),

XS1

(2.1.10)

unde
S1 = {X IRm |

aij xj pi , i = 1, n, xj 0, j = 1, m}

j=1

si
f (X) =

cj x j .

j=1

Problema (2.1.10) se scrie sub forma:

cj xj
min

j=1

j=1 aij xj pi , i = 1, n

x 0, j = 1, m.

(2.1.11)

In conditiile n care se cere determinarea cheltuielilor de productie, astfel


ncat sa se produca exact cantitatile contractate, problema asociata are
forma:

cj x j

min

j=1

aij xj = pi , i = 1, n

j=1

xj 0, j = 1, m.
4

(2.1.12)

Problema (2.1.11) se numeste forma canonic


a a problemei de minim, iar
(2.1.12) se numeste forma standard.
c. Repartizarea optim
a a resurselor
Un proces economic consta n repartizarea unui produs disponibil n
cantitatile a1 , ..., an , n n centre si solicitat n cantitatile b1 , ..., bm , de
catre m consumatori cunoscand preturile unitare de transport cij , de la
centrele i = 1, n, la consumatorii j = 1, m. Datele procesului economic
sunt date de:
Beneficiari Depozite D Necesar
i

Bj

Disponobil

cij

ai

bj

Relatiile dintre cantitatile xij , i = 1, n, j = 1, m ce vor fi repartizate,


necesar si disponibil sunt date de:
m

xij ai ,

i = 1, n

(2.1.13)

xij bj ,

j = 1, m

(2.1.14)

j=1
n

i=1

xij 0,

i = 1, n j = 1, m.

(2.1.15)

Relatiile (2.1.13), exprima faptul ca disponibilul nu este depasit, iar


(2.1.14) exprima faptul ca consumatorilor li se repartizeaza o cantitate
de produs cel putin egala cu solicitarea lor. Costul total al repartitiei
este:
n m
f (x11 , ..., xnm ) =

cij xij .

i=1 j=1

Repartitia optima a resurselor se reduce la problema:


min f (X),

XS3

(2.1.16)

unde

S3 =
n

X IR

nm

xij ai , i = 1, n,

j=1

xij bj , j = 1, m, xij 0, i = 1, n, j = 1, m

i=1

si
f (X) =

n
m

cij xij .

i=1 j=1

Problema (2.1.16) se scrie sub forma:

n
m

min
cij xij

i=1 j=1

x a , i = 1, n
ij
i
j=1

xij bj , j = 1, m

i=1

(2.1.17)

xij 0.

In cazul n care disponibilul este utilizat complet si solicitarile sunt satisfacute complet repartitia optima consta n rezolvarea problemei

n
m

min
cij xij

i=1 j=1

x = a , i = 1, n
ij
i
j=1

xij = bj , j = 1, m

i=1

(2.1.18)

xij 0.

Problema (2.1.18) se numeste forma standard a problemei de repartitie.

2. Rezolvarea unor probleme concrete de optimizare


liniara folosind Wolfram si Maple
Problema 1. Un mic producator fabrica doua bunuri A si B, pentru care
foloseste doua tipuri de masini. Numarul de ore necesar fabricarii fiecarui
6

produs si capacitatea de functionare a masinilor sunt trecute n tabelul


urmator:
Masina 1
Masina 2

A
2h
2h

B
3h
1h

Capacitatea de functionare
12 h
8h

Sa se determine un plan de productie astfel ncat beneficiul sa fie


maxim stiind ca beneficiile unitare obtinute pentru bunurile A si B sunt
de respectiv 6 u.m. si 7 u.m.
Rezolvarea folosind Maple.
> with(simplex) :
> ob1 := 6 x1 + 7 x2;
6x1 + 7x2
> sist1 := 2 x1 + x2 <= 8, 2 x1 + 3 x2 <= 12;
2x1 + x2 <= 8, 2x1 + 3x2 <= 12
> sol1 := maximize(ob1, sist1, N ON N EGAT IV E);
x1 = 3, x2 = 2
> #calculam prof itul;
> prof it1 := subs(sol1, ob1);
prof it1 := 32
> #calculam nr de ore necesar masinii M 1;
> M 1 := subs(sol1, 2 x1 + 3 x2);
M 1 := 12
> #calculam nr de ore necesar masinii M 2;
> M 2 := subs(sol1, 2 x1 + x2);
M 2 := 8

Problema 2. O societate comerciala are ca obiect fabricare de unitati


de mobila. Se produc 4 tipuri de mobila: M1, M2, M3 si M4. Pentru
producerea acestor tipuri de mobila este necesara prelucrarea n trei ateliere: de fabricare, de montaj si de distributie dupa cum este prezentat
n tabelul urmator:

M1
M2
M3
M4
Capacit. prod.
Cost u. munc
a

Nr de unitati de munca
Fabricare
5
5
2
2.5
210000
30 u.m

Montaj
3
2
4
2
128000
15 u.m.

Distributie
2
2
1
1
nelim.
10 u.m.

Pret unitar
de vanzare
280 u.m.
220 u.m.
142 u.m.
126 u.m.

Se cere sa se determine planul de productie care sa conduca la un


profit maxim, stiind ca numarul de unitati de M1 este fix si egal cu
26000.
Solutie.
> with(simplex) :
> ob2 := 65 x11 + 20 x2 + 12 x3 + 11 x4;
ob2 := 65x11 + 20x2 + 12x3 + 11x4
> sist2 := {3 x11 + 2 x2 + 4 x3 + 2 x4 <= 128000,
5 x11 + 5 x2 + 2 x3 + 2.5 x4 <= 210000};
sist2 := 3x11 + 2x2 + 4x3 + 2x4 <= 128000, 5x11 + 5x2 + 2x3 + 2.5x4 <= 210000
> x11 := 26000;
x11 := 26000
> sol2 := maximize(ob2, sist2, N ON N EGAT IV E);
sol2 := x2 = 13750.00000, x3 = 5625., x4 = 0.
> #calculam prof itul;
> prof it2 := subs(sol2, ob2);
prof it2 := 2.032500000106
8

> #calculam nr de ore necesar in atelierulf abr;


> oreF := subs(sol2, 5 x11 + 5 x2 + 2 x3 + 2.5 x4);
oreF := 2.100000000105
> #calculam nr de ore necesar in atelierul montaj;
> oreM := subs(sol2, 3 x11 + 2 x2 + 4 x3 + 2 x4);
oreM := 1.280000000105
Problema 3. In cadrul unei rafinarii de petrol, petrolul brut este
tratat ntr-o unitate de distilarie, n urma operatiei rezultand 30% benzina si 70% amestec de substanta. O parte din amestecul de substanta
obtinut este tratat special si rezulta 40% benzina. Costul distilarii petrolului brut este de 120 u.m/tona, iar costul tratarii este de 150 u.m./tona.
Rafinaria trebuie sa furnizeze minim 4000t pe zi de benzina si 4000t
pe zi de amestec de substanta. Determinati cantitatea de petrol brut de
distilat si de amestec de substanta ce trebuie tratata pentru a satisface
un cost minim de prelucrare.
Solutie.
> ob3 := 120 x1 + 150 x2;
ob3 := 120x1 + 150x2
> sist3 := {0.3 x1 + .4 x2 >= 4000, 0.7 x1 x2 >= 4000};
sist3 := {4000 <= 0.3x1 + 0.4x2, 4000 <= 0.7x1 x2}
> sol3 := minimize(ob3, sist3, N ON N EGAT IV E);
sol3 := {x1 = 9655.172414, x2 = 2758.620690}
> #calculam costul;
> cost3 := subs(sol3, ob3);
1.572413794106
> #calculam benzina;
> benzina := subs(sol3, 0.3 x1 + 0.4 x2);
benzina := 4000.000000
9

> #calculam amestcul de substanta;


> amestec := subs(sol3, 0.7 x1 x2);
amestec := 4000.000000
Problema 4. Un laborator prepara patru tipuri de medicamente care
contin vitaminele: C, B12 si B1 proportiile fiind date n tabelul urmator:

VitamineTipuri de medicamente
C
B12
B1
Cost unitar

Med. 1
5u
3u
1u
40 u.m.

Med. 2 Med. 3
2u
3u
5u
2u
3u
2u
50 u.m. 35 u.m.

Med. 4
2u
1u
6u
40 u.m.

Stiind ca cerinta minima a unui spital pentru fiecare tip de vitamina


este de: 100 unitati din vitamina C, 80 unitati din vitamina B12 si 120
unitati din vitamina B1 determinati cate medicamente trebuie preparate
din fiecare tip astfel ncat costul total sa fie minim?
Solutie.
> obj4 := 40 x1 + 50 x2 + 35 x3 + 40 x4;
obj4 := 40x1 + 50x2 + 35x3 + 40x4
> sist4 := {x1 + 3 x2 + 2 x3 + 6 x4 >= 120, 3 x1 + 5 x2 + 2
x3 + x4 >= 80, 5 x1 + 2 x2 + 3 x3 + 2 x4 >= 100};
sist4 := {80 <= 3x1 + 5x2 + 2x3 + x4, 100 <= 5x1 + 2x2 + 3x3 + 2x4,
120 <= x1 + 3x2 + 2x3 + 6x4}
> sol4 := evalf (minimize(obj4, sist4, N ON N EGAT IV E));

sol4 := x1 = 11.55963303, x2 = 6.055045872, x3 = 0., x4 = 15.04587156


> #calculam costul;
10

> cost4 := subs(sol4, obj4);


cost := 1366.972477
> #calculam necesarul de V itC;
> V itC := subs(sol4, 5 x1 + 2 x2 + 3 x3 + 2 x4);
V itC := 100.0000000
> #calculam necesarul de V itB12;
> V itB12 := subs(sol4, 3 x1 + 5 x2 + 2 x3 + x4);
V itB12 := 80.00000001
> #calculam necesarul de V itB1;
> V itB1 := subs(sol4, x1 + 3 x2 + 2 x3 + 6 x4);
V itB1 := 120.0000000

11

>
>

>
>
(1)
>
(2)
>
(3)

>
(4)

>
>
(5)

>
>
(6)

>
(7)

>
>
(8)

>
>

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