Sunteți pe pagina 1din 30

PROBLEME REZOLVATE pt OPTIMIZARE SETUL 1

CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 1-1. (3 puncte)


Două fabrici F1 şi F2 Fabrica Centrul Disponibil
aprovizionează trei cen- C1 C2 C3
tre C1 , C2 , C3 plătindu-se F1 3 4 3 40
transportul pe tona de F2 2 3 5 60
marfă astfel: De la F1 la Necesar 20 30 50 100/100
cele trei centre 3, 4 res-
pectiv 3 Euro, iar de la F2 la cele trei centre 2, 3 respectiv 5 Euro. La fabrica
F1 se produce 40 de tone de marfă, iar la F2 se produce 60 de tone. Centrele
solicită 20, 30 respectiv 50 de tone de marfă. Să se întocmească un plan de
transport de cost minim.

Rezolvare. Este o problemă de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x23 ) = 3x11 + 4x12 + 3x13 + 2x21 + 3x22 + 5x23 ,


cu următoarele restricţii asupra variabilelor:


 x11 +x12 +x13 = 40


 x21 +x22 +x23 = 60
x11 +x21 = 20



 x12 +x22 = 30

x13 +x23 = 50

unde toate variabilele sunt numere pozitive:

x11 , x12 , x13 , x21 , x22 , x23 ≥ 0.

Prin urmare se dau comen- >> f=[3 4 3 2 3 5]’;


zile Matlab: >> Aeq=[ 1 1 1 0 0 0;
0 0 0 1 1 1;
1 0 0 1 0 0;
0 1 0 0 1 0;
0 0 1 0 0 1];
>> beq=[40 60 20 30 50]’;
>> lb=zeros(6,1);
>> [xmin fmin]=linprog(f,[],[],Aeq,beq,lb)

xmin =

0.0000
0.0000
40.0000
20.0000
30.0000
10.0000

fmin =

300.0000
Problema 1-2. (3 puncte)
Să se calculeze minimul funcţiei:

f (x) = x4 − 3x3 + x2 − 1,
pe intervalul [−2, 3]. Să se precizeze atât valoarea minimă cât şi valoarea argu-
mentului în care funcţia atinge această valoare minimă!

Rezolvare.

În editor se editează fişie- function y = fun0102(x)


rul fun0102.m y = x^4-3*x^3+x^2-1;

apoi se dă comanda: >> [xmin fmin] = fminbnd(@fun0102,-2,3)


xmin =

2.0000

fmin =

-5.0000
Problema 1-3. (3 puncte)
Să se calculeze maximul funcţiei f , unde

f (x, y, z) = 2x + 3y + 4z,
cu următoarele restricţii asupra variabilelor:


 x +y +z ≤ 7

2x −y −2z ≥ −1

 −x +2y +3z ≤ 3

x, y, z ≥ 0.

Să se precizeze atât această valoare maximă cât şi valoarea argumentelor în care


funcţia atinge această valoare!

Rezolvare.

Avem o problemă de pro- >> f=-[2; 3; 4];


gramare liniară, cu restric- >> A=[1 1 1; -2 1 2; -1 2 3];
ţii liniare de tip inegali- >> b=[ 7; 1; 3];
tate. >> lb=zeros(3,1);
>> [xmax fval] = linprog(f,A,b,[],[],lb);
Optimization terminated.
>> xmax
xmax =

4.5000
0.0000
2.5000

>> -fval

ans =

19.0000
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 2
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 2-1. (3 puncte)


Trei depozite D1 , Depozitul Centrul Disponibil
D2 şi D3 aprovi- C1 C2 C3
zionează trei centre D1 7 7 8 170
C1 , C2 , C3 plătindu- D2 3 4 5 280
se transportul pe D3 2 2 3 150
tona de marfă astfel: Necesar 120 230 250 600/600
De la D1 la cele trei
centre 7, 7 respectiv 8 Euro, de la D2 la cele trei centre 3, 4 respectiv 5 Euro,
iar de la D3 la cele trei centre 2, 2 respectiv 3 Euro. La depozitul D1 se află 170
de tone de marfă, la D2 280, iar la D3 se află 150 de tone. Centrele solicită 120,
230 respectiv 250 de tone de marfă. Să se întocmească un plan de transport de
cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x33 ) = 7x11 +7x12 +8x13 +3x21 +4x22 +5x23 +2x31 +2x32 +3x33 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 +x13 = 170



 x21 +x22 +x23 = 280

x31 +x32 +x33 = 150

 x11 +x21 +x31 = 120



 x12 +x22 +x32 = 230

x13 +x23 +x33 = 250

unde variabilele sunt pozitive: x11 , x12 , x13 , x21 , x22 , x23 , x31 , x32 , x33 ≥ 0.
Prin urmare se dau comen- >> f=[7 7 8 3 4 5 2 2 3]’;
zile Matlab: >> Aeq=[ 1 1 1 0 0 0 0 0 0;
0 0 0 1 1 1 0 0 0;
0 0 0 0 0 0 1 1 1;
1 0 0 1 0 0 1 0 0;
0 1 0 0 1 0 0 1 0;
0 0 1 0 0 1 0 0 1];
>> beq=[170 280 150 120 230 250]’;
>> lb=zeros(9,1);
>> [xmin fmin]=linprog(f,[],[],Aeq,beq,lb)

xmin =
0.0000
80.6441
89.3559
120.0000
79.5772
80.4228
0.0000
69.7787
80.2213

fmin =
2.7400e+003
Problema 2-2. (3 puncte)
Să se calculeze maximul funcţiei:

f (x) = −x4 − 3x3 + x2 − 1,


pe intervalul [−2, 3]. Să se precizeze atât valoarea maximă cât şi valoarea argu-
mentului în care funcţia atinge această valoare maximă!

Rezolvare.

În editor se editează fişie- function y = fun0202(x)


rul fun0202.m y = -(-x^4-3*x^3+x^2-1);

apoi se dă comanda: >> [xmax, fval] = fminbnd(@fun0202,-2,3);


>> xmax
xmax =
-2.0000
>> -fval
ans =
10.9996
Problema 2-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (0, 0, −1), unde

f (x, y, z) = cos(x2 − 2xy − yz + 2z 2 − 4z),


cu următoarele restricţii asupra variabilelor:

 x +y −z ≤ 2
−x +2y +z ≤ 3

2x −y −3z ≤ 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii liniare de tip


inegalitate.

În editor se editează fişi- function f = fun0203(x)


erul fun0203.m, funcţia f=cos(x(1)^2-2*x(1)*x(2)-x(2)*x(3)
obiectiv (de optimizat) +2*x(3)^2-4*x(3));

Apoi se dau comenzile: >> x0=[0 0 -1]’;


>> A=[ 1 1 -1;
-1 2 1;
2 -1 -3];
>> b=[2 3 4]’;
>> [xmin fmin]=fmincon(@fun0203,x0,A,b)
xmin =
0.1625
0.8746
1.0106
fmin =
-1.0000
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 3
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 3-1. (3 puncte)


Două fabrici F1 şi F2 aprovizionea-
Fabrica Centrul Disponibil
ză două centre C1 , C2 plătindu-se
C1 C2
transportul pe tona de marfă ast-
F1 5 6 40
fel: De la F1 la cele două centre
F2 7 8 60
5 respectiv 6 Euro, iar de la F2 la
Necesar 20 80 100/100
cele două centre 7 respectiv 8 Euro.
La fabrica F1 se produce 40 de tone de marfă, iar la F2 se produce 60 de tone.
Centrele solicită 20 respectiv 80 de tone de marfă. Să se întocmească un plan
de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x33 ) = 5x11 + 6x12 + 7x21 + 8x22 ,


cu următoarele restricţii asupra variabilelor:


 x11 +x12 = 40

x21 +x22 = 60

 x 11 +x 21 = 20

x12 +x22 = 80

unde toate variabilele sunt numere pozitive:

x11 , x12 , x21 , x22 ≥ 0.

Prin urmare se dau comen- >> f=[5 6 7 8]’;


zile Matlab: >> Aeq=[ 1 1 0 0;
0 0 1 1;
1 0 1 0;
0 1 0 1];
>> beq=[40 60 20 80]’;
>> lb=zeros(4,1);
>> [xmin fmin]=linprog(f,[],[],Aeq,beq,lb)
Optimization terminated.

xmin =

3.5545
36.4455
16.4455
43.5545

fmin =

700
Problema 3-2. (3 puncte)
Să se calculeze minimul funcţiei f , în jurul lui (0, 0) unde

f (x, y) = x2 + 2xy + 2y 2 − 4x − 3y,


cu următoarele restricţii asupra variabilelor:
{
√x
2
+y ≤ 20
3 x +2y ≥ 1
{
0≤ x ≤ 5
0 ≤ y ≤ 6.
Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia atinge această valoare!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii neliniare de


tip inegalitate.

În editor se editează fişi- function f = fun0302(x)


erul fun0302.m, funcţia f=x(1)^2+2*x(1)*x(2)+2*x(2)^2
obiectiv (de optimizat) -4*x(1)-3*x(2);

În editor se editează fişie- function [c ceq] = con0302( x )


rul con0302.m, al restricţi- c =[x(1)^2+x(2)-20;
ilor neliniare: -3*sqrt(x(1))-2*x(2)+1];
ceq=[];

Apoi se dau comenzile: >> x0=[0 0]’;


>> lb=[0 0]’;
>> ub=[5 6]’;
>> [xmin fmin]=fmincon(@fun0302,x0,[],[],
[],[],lb,ub,@con0302)
xmin =

2.0000
0

fmin =

-4.0000
Problema 3-3. (3 puncte)
Să se calculeze minimul funcţiei q, în vecinătatea punctului (0, 0, 0), unde

q(x, y, z) = x2 − 3xy − yz + 2z 2 − 4z,


cu următoarele restricţii asupra variabilelor:

 x +y −z ≤ 2
−x +2y +z ≤ 3

2x −y −3z ≤ 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Avem o problemă de programare pătratică cu restricţii liniare de


tip inegalitate. Avem

  
2 −3 0 x
1( )
 −3
x2 − 3xy − yz + 2z 2 = x y z 0 −1   y 
2
0 −1 4 z
Prin urmare se dau comen- >> H=[ 2 -3 0;
zile: -3 0 -1;
0 -1 2];
>> f=[0 0 -4]’;
>> A=[ 1 1 -1;
-1 2 1;
2 -1 -3];
>> b=[2 3 4]’;
>> x0=[0 0 0]’;
>> [xmin qmin]=quadprog(H,f,A,b,
[],[],[],[],x0)
xmin =

2.8333
1.6667
2.5000

qmin =

-14.0556
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 4
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 4-1. (3 puncte)


Trei depozite D1 , D2 şi D3 Depozitul Centrul Disponibil
aprovizionează două centre C1 C2
C1 , C2 plătindu-se transportul D1 8 8 170
pe tona de marfă astfel: De D2 7 6 280
la D1 la cele două centre 8 D3 3 4 150
respectiv 8 Euro, de la D2 la Necesar 370 230 600/600
cele două centre 7 respectiv 6
Euro, iar de la D3 la cele două centre 3 respectiv 4 Euro. La depozitul D1 se
află 170 de tone de marfă, la D2 280, iar la D3 se află 150 de tone. Centrele
solicită 170, 280 respectiv 150 de tone de marfă. Să se întocmească un plan de
transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x32 ) = 8x11 + 8x12 + 7x21 + 6x22 + 3x31 + 4x32 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 = 170


 x21 +x22 = 280
x31 +x32 = 150



 x11 +x21 +x31 = 370

x12 +x22 +x32 = 230

unde variabilele sunt pozitive: x11 , x12 , x21 , x22 , x31 , x32 , ≥ 0.

Prin urmare se dau comen- >> f=[8 8 7 6 3 4]’;


zile Matlab: >> Aeq=[ 1 1 0 0 0 0;
0 0 1 1 0 0;
0 0 0 0 1 1;
1 0 1 0 1 0;
0 1 0 1 0 1];
>> beq=[170 280 150 370 230]’;
>> lb=zeros(6,1);
>> [xmin fmin]=linprog(f,[],[],Aeq,beq,lb)
Optimization terminated.

xmin =

170.0000
0.0000
50.0000
230.0000
150.0000
0.0000

fmin =

3.5400e+003
Problema 4-2. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (5, 0, −1), unde

f (x, y, z) = sin(x3 + 2xz) + cos(xy + y 2 ).


Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară fără restricţii.

Se editează fişierul function f = fun0402(x)


fun0402.m, funcţia obiec- f=sin(x(1)^3 + 2*x(1)*x(3))
tiv (de optimizat) + cos(x(1)*x(2) + x(2)^2);

Apoi se dau comenzile: >> x0=[5 0 -1]’;


>> [xmin fmin]=fminunc(@fun0402,x0)
xmin =

6.0012
0.0000
-0.8629

fmin =

-6.5059e-014

Observaţie. Eroare de Matlab. Minimul corect este −2. Acest fapt se vede
imediat dacă lansăm comanda cu x0 = (5, ε, −1).
Problema 4-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (0, 0, 0), unde

f (x, y, z) = x + y + z,
cu următoarele restricţii asupra variabilelor:
 2
 x +y 2 +z 2 ≤ 100
−x +2y +z ≤ 3

2x −y −3z ≤ 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Avem o problemă de optimizare cu restricţii neliniare de tip inega-


litate şi cu restricţii liniare de tip inegalitate.

În editor se editează fişi- function f = fun0403(x)


erul fun0403.m, funcţia f=x(1)+x(2)+x(3);
obiectiv (de optimizat)

În editor se editează fişie- function [c ceq] = con0403( x )


rul con0403.m, al restricţi- c =[x(1)^2+x(2)^2+x(3)^2-100];
ilor neliniare: ceq=[];

Apoi se dau comenzile: >> x0=[0 0 0]’;


>> A=[-1 2 1;
2 -1 -3];
>> b=[3 4]’;
>> [xmin fmin]=fmincon(@fun0403,x0,A,b,
[],[],[],[],@con0403)

xmin =

-7.1878
-5.4586
-4.3057

fmin =

-16.9521
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 5
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 5-1. (3 puncte)


Două fabrici F1 şi F2 Fabrica Centrul Disponibil
aprovizionează trei cen- C1 C2 C3
tre C1 , C2 , C3 plătindu-se F1 2 3 4 45
transportul pe tona de F2 5 6 7 55
marfă astfel: De la F1 la Necesar 20 30 40 90/100
cele trei centre 2, 3 res-
pectiv 4 Euro, iar de la F2 la cele trei centre 5, 6 respectiv 7 Euro. La fabrica
F1 se produce 45 de tone de marfă, iar la F2 se produce 55 de tone. Centrele
solicită doar 20, 30 respectiv 40 de tone de marfă. Să se întocmească un plan
de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x23 ) = 2x11 + 3x12 + 4x13 + 5x21 + 6x22 + 7x23 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 +x13 ≤ 45


 x21 +x22 +x23 ≤ 55
x11 +x21 = 20



 x12 +x22 = 30

x13 +x23 = 40

unde toate variabilele sunt numere pozitive:

x11 , x12 , x13 , x21 , x22 , x23 ≥ 0.

Prin urmare se dau comen- >> f=[2 3 4 5 6 7]’;


zile Matlab: >> A =[ 1 1 1 0 0 0;
0 0 0 1 1 1];
>> b =[45 55]’;
>> Aeq=[ 1 0 0 1 0 0;
0 1 0 0 1 0;
0 0 1 0 0 1];
>> beq=[20 30 40]’;
>> lb=zeros(6,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
Optimization terminated.

xmin =

9.1317
15.0570
20.8113
10.8683
14.9430
19.1887

fmin =

425.0000
Problema 5-2. (3 puncte)
Să se calculeze maximul funcţiei:

1 − x4
f (x) = ,
x4 − x2 + 1
pe intervalul [−2, 3]. Să se precizeze atât valoarea maximă cât şi valoarea argu-
mentului în care funcţia atinge această valoare maximă!

Rezolvare.

În editor se editează fişie- function y = fun0502(x)


rul fun0502.m y = -(1-x^4)/(x^4-x^2+1);

apoi se dă comanda: >> [xmin fval] = fminbnd(@fun0502,-2,3);

xmin =

-0.5176

>> -fval

ans =

1.1547
Problema 5-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (0, 1, 1), unde

f (x, y, z) = x + 3y + 4z,
cu următoarele restricţii asupra variabilelor:
 2
 x +y 2 +z 2 ≤ 100
−x +2y +z ≤ 3

2x +y +3z = 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Avem o problemă de optimizare cu restricţii neliniare de tip inega-


litate şi cu restricţii liniare de tip inegalitate şi egalitate.

În editor se editează fişi- function f = fun0503(x)


erul fun0503.m, funcţia f=x(1)+3*x(2)+4*x(3);
obiectiv (de optimizat)

În editor se editează fişie- function [c ceq] = con0503( x )


rul con0503.m, al restricţi- c =[x(1)^2+x(2)^2+x(3)^2-100];
ilor neliniare: ceq=[];

Apoi se dau comenzile: >> x0=[0 1 1]’;


>> A=[-1 2 1];
>> b=[3];
>> Aeq= [2 1 3];
>> beq=[4];
>> [xmin fmin]=fmincon(@fun0503,x0,A,b,
Aeq,beq,[],[],@con0503)
xmin =

6.7082
-7.3852
-0.6770

fmin =

-18.1557
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 6
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 6-1. (3 puncte)


Două fabrici F1 şi F2 Fabrica Centrul Disponibil
aprovizionează trei C1 C2 C3
centre C1 , C2 , C3 F1 5 7 8 450
plătindu-se transpor- F2 9 4 6 600
tul pe tona de marfă Necesar 250 300 400 950/1050
astfel: De la F1 la cele
trei centre 5, 7 respectiv 8 Euro, iar de la F2 la cele trei centre 9, 4 respectiv 6
Euro. La fabrica F1 se produce 450 de tone de marfă, iar la F2 se produce 600
de tone. Centrele solicită doar 250, 300 respectiv 400 de tone de marfă. Să se
întocmească un plan de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x23 ) = 5x11 + 7x12 + 8x13 + 9x21 + 4x22 + 6x23 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 +x13 ≤ 450


 x21 +x22 +x23 ≤ 600
x11 +x21 = 250



 x12 +x22 = 300

x13 +x23 = 400

unde toate variabilele sunt numere pozitive:

x11 , x12 , x13 , x21 , x22 , x23 ≥ 0.

Prin urmare se dau comen- >> f=[5 7 8 9 4 6]’;


zile Matlab: >> A =[ 1 1 1 0 0 0;
0 0 0 1 1 1];
>> b =[450 600]’;
>> Aeq=[ 1 0 0 1 0 0;
0 1 0 0 1 0;
0 0 1 0 0 1];
>> beq=[250 300 400]’;
>> lb=zeros(6,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
Optimization terminated.

xmin =

250.0000
0.0000
100.0000
0.0000
300.0000
300.0000

fmin =

5.0500e+003
Problema 6-2. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (−5, 5, −1), unde

f (x, y, z) = sin(x3 + 2xz) + cos(xy + y 2 ).


Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară fără restricţii.

Se editează fişierul function f = fun0602(x)


fun0602.m, funcţia obiec- f=sin(x(1)^3+2*x(1)*x(3))
tiv (de optimizat) + cos(x(1)*x(2)+x(2)^2);

Apoi se dau comenzile: >> x0=[-5 5 -1]’;


>> [xmin fmin]=fminunc(@fun0602,x0)
xmin =

-4.8837
6.3645
-0.8287

fmin =

-2.0000
Problema 6-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (0, 0, −1), unde

f (x, y, z) = x2 − y 3 + z 4 ,
cu următoarele restricţii asupra variabilelor:
{
2x2 + xy ≤ 5
x +y−z = 1
3

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii neliniare de


tip inegalitate şi egalitate.

În editor se editează fişi- function f = fun0603(x)


erul fun0603.m, funcţia f=x(1)^2 - x(2)^3 + x(3)^4;
obiectiv (de optimizat)

În editor se editează fişie- function [c ceq] = con0603( x )


rul con0603.m, al restricţi- c =[2*x(1)^2 + x(1)*x(2)-5];
ilor neliniare: ceq =[x(1)^3 + x(2) - x(3) - 1];

Apoi se dau comenzile: >> x0=[0 0 -1]’;


>> [xmin fmin]=fmincon(@fun0603,x0,[],[],
[],[],[],[],@con0603)
xmin =

0.0000
2.8086
1.8086

fmin =

-11.4552
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 7
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 7-1. (3 puncte)


Trei fabrici F1 , F2 şi F3 apro- Fabrica Centrul Disponibil
vizionează două centre C1 , C2 C1 C2
plătindu-se transportul pe tona F1 5 7 350
de marfă astfel: De la F1 la cele F2 8 9 300
două centre 5 respectiv 7 Euro, F3 4 6 550
de la F2 la cele două centre 8 Necesar 550 500 1050/1200
respectiv 9 Euro, iar de la F3 la
cele două centre 4 respectiv 6 Euro. La fabrica F1 se produce 350 de tone de
marfă, la F2 se produce 300 de tone de marfă, iar la F3 se produce 550 de tone.
Centrele solicită doar 550 respectiv 500 de tone de marfă. Să se întocmească un
plan de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x32 ) = 5x11 + 7x12 + 8x21 + 9x22 + 4x31 + 6x32 ,


cu următoarele restricţii asupra variabilelor:


 x11 +x12 ≤ 350


 x21 +x22 ≤ 300
x31 +x32 ≤ 550



 x11 +x21 +x31 = 550

x12 +x22 +x32 = 500

unde variabilele sunt pozitive: x11 , x12 , x21 , x22 , x31 , x32 , ≥ 0.

Prin urmare se dau comen- >> f=[5 7 8 9 4 6]’;


zile Matlab: >> A =[ 1 1 0 0 0 0;
0 0 1 1 0 0;
0 0 0 0 1 1];
>> b =[350 300 550]’;
>> Aeq=[ 1 0 1 0 1 0;
0 1 0 1 0 1];
>> beq=[550 500]’;
>> lb=zeros(6,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
Optimization terminated.

xmin =

206.2053
143.7947
0.0000
150.0000
343.7947
206.2053

fmin =

6.0000e+003
Problema 7-2. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (2, 2, 2), unde

f (x, y, z) = cos(x4 + 2yz) + cos(xy + y 2 ).


Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară fără restricţii.

Se editează fişierul function f = fun0702(x)


fun0702.m, funcţia obiec- f=cos(x(1)^4 + 2*x(2)*x(3))
tiv (de optimizat) + cos(x(1)*x(2) + x(2)^2);

Apoi se dau comenzile: >> x0=[2 2 2]’;


>> [xmin fmin]=fminunc(@fun0702,x0)
xmin =

1.6035
2.3712
1.9183

fmin =

-2.0000
Problema 7-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (0, 0, 0), unde

f (x, y, z) = 3x + 2y + z,
cu următoarele restricţii asupra variabilelor:
 4
 x +y 2 +2z 2 ≤ 100
−x +2y +z ≤ 3

2x −y −3z ≤ 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Avem o problemă de optimizare cu restricţii neliniare de tip inega-


litate şi cu restricţii liniare de tip inegalitate.

În editor se editează fişi- function f = fun0703(x)


erul fun0703.m, funcţia f=3*x(1)+2*x(2)+x(3);
obiectiv (de optimizat)

În editor se editează fişie- function [c ceq] = con0703( x )


rul con0703.m, al restricţi- c =[x(1)^4+x(2)^2+2*x(3)^2-100];
ilor neliniare: ceq=[];

Apoi se dau comenzile: >> x0=[0 0 0]’;


>> A=[-1 2 1;
2 -1 -3];
>> b=[3 4]’;
>> [xmin fmin]=fmincon(@fun0703,x0,A,b,
[],[],[],[],@con0703)
xmin =

-2.1541
-8.8546
0.1821

fmin =

-23.9893
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 8
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 8-1. (3 puncte)


Trei fabrici F1 , F2 Fabrica Centrul Disponibil
şi F3 aprovizionează C1 C2 C3
trei centre C1 , C2 , C3 F1 5 7 8 450
plătindu-se transpor- F2 9 4 6 600
tul pe tona de marfă F3 7 6 7 550
astfel: De la F1 la Necesar 350 300 500 1150/1600
cele trei centre 5, 7
respectiv 8 Euro, de la F2 la cele trei centre 9, 4 respectiv 6 Euro, iar de la
F3 la cele trei centre 7, 6 respectiv 7 Euro. La fabrica F1 se produce 450 de tone
de marfă, la fabrica F2 se produce 600 de tone de marfă, iar la F3 se produce
550 de tone. Centrele solicită doar 350, 300 respectiv 500 de tone de marfă. Să
se întocmească un plan de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x33 ) = 5x11 +7x12 +8x13 +9x21 +4x22 +6x23 +7x31 +6x32 +7x33 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 +x13 ≤ 450



 x21 +x22 +x23 ≤ 600

x31 +x32 +x33 ≤ 550

 x11 +x21 +x31 = 350



 x12 +x22 +x32 = 300

x13 +x23 +x33 = 500

unde variabilele sunt pozitive: x11 , x12 , x13 , x21 , x22 , x23 , x31 , x32 , x33 ≥ 0.

Prin urmare se dau comen- >> f=[5 7 8 9 4 6 7 6 7];


zile Matlab: >> A =[ 1 1 1 0 0 0 0 0 0;
0 0 0 1 1 1 0 0 0;
0 0 0 0 0 0 1 1 1];
>> b =[450 600 550]’;
>> Aeq=[ 1 0 0 1 0 0 1 0 0;
0 1 0 0 1 0 0 1 0;
0 0 1 0 0 1 0 0 1];
>> beq=[350 300 500]’;
>> lb=zeros(9,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
xmin =
350.0000
0.0000
0.0000
0.0000
300.0000
300.0000
0.0000
0.0000
200.0000
fmin =
6.1500e+003
Problema 8-2. (3 puncte)
Să se calculeze minimul funcţiei:

f (x) = x4 − 2x2 + x − 15,


pe intervalul [−3, 2]. Să se precizeze atât valoarea minimă cât şi valoarea argu-
mentului în care funcţia atinge această valoare minimă!

Rezolvare.

În editor se editează fişie- function y = fun0802(x)


rul fun0802.m y = x^4-2*x^2+x-15;

apoi se dă comanda: >> [xmin fmin] = fminbnd(@fun0802,-3,2)


xmin =
-1.1072
fmin =
-17.0562
Problema 8-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (1, 1, 0), unde

f (x, y, z) = sin(x2 − 2xy − yz + 2z 2 − 4z),


cu următoarele restricţii asupra variabilelor:

 x +y −z = 2
−x +2y +z ≤ 3

2x −y −3z ≤ 4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii liniare de tip


inegalitate şi egalitate.

În editor se editează fişi- function f = fun0803(x)


erul fun0803.m, funcţia f=sin(x(1)^2-2*x(1)*x(2)-x(2)*x(3)
obiectiv (de optimizat) +2*x(3)^2-4*x(3));

Apoi se dau comenzile: >> x0=[ 1 1 0]’;


>> A=[-1 2 1;
2 -1 -3];
>> b=[3 4]’;
>> Aeq=[ 1 1 -1];
>> beq=[2];
>> [xmin fmin]=fmincon(@fun0803,x0,A,b,
Aeq,beq)
xmin =
1.0663
1.0365
0.1028
fmin =
-1.0000
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 9
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 9-1. (3 puncte)


Două fabrici F1 şi F2 apro- Fabrica Centrul Disponibil
vizionează două centre C1 , C2 C1 C2
plătindu-se transportul pe tona F1 5 7 450
de marfă astfel: De la F1 la cele F2 8 6 300
două centre 5 respectiv 7 Euro, Necesar 250 300 550/750
iar de la F2 la cele două centre
8 respectiv 6 Euro. La fabrica F1 se produce 450 de tone de marfă, iar la F2 se
produce 300 de tone. Centrele solicită doar 250 respectiv 300 de tone de marfă.
Să se întocmească un plan de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x22 ) = 5x11 + 7x12 + 8x21 + 6x22 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 ≤ 450

x21 +x22 ≤ 300

 x 11 +x 21 = 250

x12 +x22 = 300

unde toate variabilele sunt numere pozitive:

x11 , x12 , x21 , x22 ≥ 0.

Prin urmare se dau comen- >> f=[5 7 8 6]’;


zile Matlab: >> A =[ 1 1 0 0;
0 0 1 1];
>> b =[450 300]’;
>> Aeq=[ 1 0 1 0;
0 1 0 1];
>> beq=[250 300]’;
>> lb=zeros(4,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
Optimization terminated.

xmin =

250.0000
0.0000
0.0000
300.0000

fmin =

3.0500e+003
Problema 9-2. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (2, 5, −1), unde

f (x, y, z) = sin(x3 − 2xz) + cos(xy − y 2 ).


Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară fără restricţii.

Se editează fişierul function f = fun0902(x)


fun0902.m, funcţia obiec- f=sin(x(1)^3 - 2*x(2)*x(3))
tiv (de optimizat) + cos(x(1)*x(2) - x(2)^2);

Apoi se dau comenzile: >> x0=[2 5 -1]’;


>> [xmin fmin]=fminunc(@fun0902,x0)

xmin =

1.9436
5.0525
-0.9833

fmin =

-2.0000
Problema 9-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (1, 0, 2), unde

f (x, y, z) = cos(x2 + 2xy + 2yz + 2z 2 ),


cu următoarele restricţii asupra variabilelor:

 x +y −z ≤ 2
−x +2y +z = 1

2x −y −3z = −4.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii liniare de tip


inegalitate şi egalitate.

În editor se editează fişi- function f = fun0903(x)


erul fun0903.m, funcţia f=cos(x(1)^2 + 2*x(1)*x(2) + 2*x(2)*x(3)
obiectiv (de optimizat) + 2*x(3)^2);

Apoi se dau comenzile: >> x0=[ 1 0 2]’;


>> A=[ 1 1 -1];
>> b=[2];
>> Aeq=[-1 2 1;
2 -1 -3];
>> beq=[1 -4]’;
>> [xmin fmin]=fmincon(@fun0803,x0,A,b,
Aeq,beq)

xmin =

-0.1719
-0.2344
1.2969

fmin =

-1.0000
PROBLEME REZOLVATE pt OPTIMIZARE SETUL 10
CATEDRA DE ING. EL. AUT+ISE 3, CALC 4

Problema 10-1. (3 puncte)


Două fabrici F1 şi F2 apro- Fabrica Centrul Disponibil
vizionează două centre C1 , C2 C1 C2
plătindu-se transportul pe tona F1 3 3 450
de marfă astfel: De la F1 la cele F2 5 7 400
două centre 3 respectiv 3 Euro, Necesar 400 300 700/850
iar de la F2 la cele două centre
5 respectiv 7 Euro. La fabrica F1 se produce 450 de tone de marfă, iar la F2 se
produce 400 de tone. Centrele solicită doar 400 respectiv 300 de tone de marfă.
Să se întocmească un plan de transport de cost minim.

Rezolvare. Este o problema de optimizare a transportului. Avem nevoie de


minimul funcţiei f , unde

f (x11 , x12 , . . . , x22 ) = 3x11 + 3x12 + 5x21 + 7x22 ,

cu următoarele restricţii asupra variabilelor:




 x11 +x12 ≤ 450

x21 +x22 ≤ 400

 x 11 +x 21 = 400

x12 +x22 = 300

unde toate variabilele sunt numere pozitive:

x11 , x12 , x21 , x22 ≥ 0.

Prin urmare se dau comen- >> f=[3 3 5 7]’;


zile Matlab: >> A =[ 1 1 0 0;
0 0 1 1];
>> b =[450 400]’;
>> Aeq=[ 1 0 1 0;
0 1 0 1];
>> beq=[400 300]’;
>> lb=zeros(4,1);
>> [xmin fmin]=linprog(f,A,b,Aeq,beq,lb)
Optimization terminated.

xmin =

150.0000
300.0000
250.0000
0.0000

fmin =

2.6000e+003
Problema 10-2. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (5, 0, −1), unde

f (x, y, z) = sin(x3 + 2xz) + cos(xy + y 2 ).


Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care
funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară fără restricţii.

Se editează fişierul function f = fun1002(x)


fun1002.m, funcţia obiec- f=sin(x(1)^3 + 2*x(1)*x(3))
tiv (de optimizat) + cos(x(1)*x(2) + x(2)^2);

Apoi se dau comenzile: >> x0=[5 0 -1]’;


>> [xmin fmin]=fminunc(@fun1002,x0)

xmin =

6.0012
0.0000
-0.8629
fmin =

-6.5059e-014

Observaţie. Eroare de Matlab. Minimul corect este −2. Acest fapt se vede
imediat dacă lansăm comanda cu x0 = (5, ε, −1).
Problema 10-3. (3 puncte)
Să se calculeze minimul funcţiei f , în vecinătatea punctului (2, 1, 0), unde

f (x, y, z) = cos(x + yz + 2z 2 + z),


cu următoarele restricţii asupra variabilelor:

 x +y −z = 3
−x +2y +z ≤ 3

2x −y −3z = 3.

Să se precizeze atât această valoare minimă cât şi valoarea argumentelor în care


funcţia f atinge valoare sa minimă!

Rezolvare. Este o problemă de optimizare neliniară cu restricţii liniare de tip


inegalitate şi egalitate.

În editor se editează fişi- function f = fun1003(x)


erul fun1003.m, funcţia f=cos(x(1) + x(2)*x(3) + 2*x(3)^2 + x(3));
obiectiv (de optimizat)

Apoi se dau comenzile: >> x0=[2 1 0]’;


>> A=[ -1 2 1];
>> b=[3];
>> Aeq=[1 1 -1;
2 -1 -3];
>> beq=[3 3]’;
>> [xmin fmin]=fmincon(@fun0803,x0,A,b,
Aeq,beq)

xmin =

2.1333
0.9667
0.1000

fmin =

-0.0500

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