Метод послідовних поступок
Розв’язок
1.Задамо значення параметрів згідно варіанту завдання :
a1 = 2;
a2 = 2;
a3 = 3;
b1 = 2;
b2 = 2;
b3 = 1;
d1 = 8;
d2 = 3;
d3 = 1;
h11 = 6;
h12 = 11;
h13 = 19;
h21 = 12;
h22 = 8;
h23 = 11;
h31 = 1;
h32 = 1;
h33 = 10;
H1 = 860;
H2 = 790;
H3 = 820;
L1 = 10;
L2 = 10;
L3 = 20;
2. Використовуючи функцію “linprog” системи комп’ютерної математики MATLAB, обчислимо екстремум кожного окремого критерію на заданій ОДР G(! Пам’ятаємо, що функція “ linprog ” обчислює мінімум критерія):
>> A=[h11 h12 h13;h21 h22 h23;h31 h32 h33]
>> b=[H1;H2;H3]
>> lb=[ L1;L2;L3]
>> C1=[a1 a2 a3]
>> C2=[b1 b2 b3]
>> C3=[d1 d2 d3]
A =
6 11 19
12 8 11
1 1 10
b =
860
790
820
lb =
10
10
20
C1 =
2 2 3
C2 =
2 2 1
C3 =
8 3 1
>> [Xw1,minusW1,flag]=linprog((-1)*C1,A,b,[],[],lb,[])
W1max = -minusW1
[Xw2,minusW2,flag]=linprog( (-1)* C2,A,b,[],[],lb,[])
W2max = -minusW2
[Xw3,minusW3,flag]=linprog((-1)*C3,A,b,[],[],lb,[])
W3max=-minusW3
Optimization terminated.
Xw1 =
28.9286
27.8571
20.0000
minusW1 =
-173.5714
flag =
1
W1max =
173.5714
Optimization terminated.
Xw2 =
28.9286
27.8571
20.0000
minusW2 =
-133.5714
flag =
1
W2max =
133.5714
Optimization terminated.
Xw3 =
40.8333
10.0000
20.0000
minusW3 =
-376.6667
flag =
1
W3max =
376.6667
3. Методи розв’язання задач багатокритеріальної (векторної) оптимізації.
3.1. Метод послідовних поступок
3.1.1. Враховуючи , що максимальні значення критеріїв при оптимізації за кожним окремим критерієм знайдено, виконаємо пошук найбільшого значення другого критерію із врахуванням поступки за першим критерієм:
W1=a1*x1 + a2*x2 + a3*x3 W1max – 0.1* W1max =0.9* W1max
-a1*x1 - a2*x2 - a3*x3
- 0.9* W1max
(-1)*C1 * [x1 ; x2 ; x3 ]
- 0.9*W1max .
3.1.2. Виконаємо пошук найбільшого значення третього критерію із врахуванням поступок за першим та другим критеріями:
(-1)*C1 * [x1 ; x2 ; x3 ] - 0.9*W1max ;
W2=b1*x1 + b2*x2 + b3*x3 W2maxp1 – 0.1* W2maxp1 =0.9* W2maxp1
-b1*x1-b2*x2 - b3*x3
-0.9*W2maxp1
(-1)*C2*[x1 ; x2 ; x3]
- 0.9* W2maxp1.
[Xw2,minusW2,flag]=linprog( (-1)* C2,[(-1)*C1;A],[- 0.9*W1max ;b],[],[],lb,[])
W2max p1 = -minusW 2
[Xw3,minusW3,flag]=linprog( (-1)* C3,[ (-1)* C2;(-1)*C1;A],[- 0.9* W2maxp1;-0.9*W1max ;b],[],[],lb,[])
W3maxp2 = -minusW3
Optimization terminated.
Xw2 =
28.9286
27.8571
20.0000
minusW2 =
-133.5714
flag =
1
W2maxp1 =
133.5714
Optimization terminated.
Xw3 =
40.8333
10.0000
20.0000
minusW3 =
-376.6667
flag =
1
W3maxp2 =
376.6667