- •Домашня контрольна робота
- •Методика розрахунків до питання 1 Постановка задачі
- •Метод ідеальної точки
- •3.1. Метод ідеальної точки.
- •Метод цільового програмування
- •Метод послідовних поступок
- •3.1. Метод послідовних поступок
- •Метод рівних та найменших відносних відхилень
- •Метод мінімаксу
- •3.1. Метод рівних і найменших відносних відхилень
- •3.1. Метод мінімаксу
Метод ідеальної точки
Розв’язок
1.Задамо значення параметрів згідно 6 варіанту завдання:
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;
Таким чином, маємо:
W1=
2x1
+
2x2
+ 3x3
max;
W2= 2x1 + 2x2 + x3 max;
W3= 8x1 + 3x2 + x3 max;
де ОДР G задана нерівностями
6x1 + 11x2 + 19x3 860;
12x1 + 8x2 + 11x3 790;
x1 + x2 + x3 820;
l1 x1;
l2 x2;
l3 x3;
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. Знайдемо рівняння площини da*w1+db*w2+dc*w3 = dd, яка задає положення множини Парето, в системі координат W1W2W3O, де
“dd” – визначник матриці d, “da” - визначник матриці a,
“db” - визначник матриці b, “dc ”- визначник матриці c:
W11=W1max;
W12=C2*Xw1;
W13=C3*Xw1;
W21=C1*Xw2;
W22=W2max ;
W23=C3*Xw2;
W31=C1*Xw3;
W32=C2*Xw3;
W33=W3max;
d=[W11 W12 W13;
W21 W22 W23;
W31 W32 W33] ;
dd=det(d)
d =
173.5714 133.5714 335.0000
173.5714 133.5714 335.0000
161.6667 121.6667 376.6667
dd =
8.5292e-004
a=[W12 W13 1;
W22 W23 1;
W32 W33 1] ;
da=det(a)
a =
133.5714 335.0000 1.0000
133.5714 335.0000 1.0000
121.6667 376.6667 1.0000
da =
4.1721e-006
b=[W13 W11 1;
W23 W21 1;
W33 W31 1] ;
db=det(b)
b =
335.0000 173.5714 1.0000
335.0000 173.5714 1.0000
376.6667 161.6667 1.0000
db =
-1.1800e-006
c= [W11 W12 1;
W21 W22 1;
W31 W32 1] ;
dc=det(c)
c =
173.5714 133.5714 1.0000
173.5714 133.5714 1.0000
161.6667 121.6667 1.0000
dc =
8.5487e-007
3.1.2. Рівняння прямої, що проходить через “точку утопії” (W11;W12;W13) в системі координат W1W2W3O перпендикулярно до площини da*w1+db*w2+dc*w3 = dd має вигляд:
(w1-W11)/da = (w2-W22)/db = (w3-W33)/dc.
3.1.3. Знайдемо компромісне рішення
Xkompromis=[x1kompromis x2kompromis x3kompromis]
в системі координат X1X2X3O, використовуючи точку компромісного рішення
Wkompromis=[Wkompromis1 Wkompromis2 Wkompromis3]
в площині Парето da∙w1+db∙w2+dc∙w3 = dd , яка найменше віддалена від точки утопії, шляхом розв’язання системи рівнянь:
da*w1+db*w2+dc*w3 = dd ,
(w1-W11)/da = (w2-W22)/db,
(w1-W11)/da = (w3-W33)/dc
або
[da db dc;
db (-1)*da 0;
dc 0 (-1)* da ] =[dd;db*W11-da*W22;dc*W11-da*W33].
Остаточно маємо
Wkompromis=inv([ da db dc;
db (-1)*da 0;
dc 0 (-1)* da ])*[dd;db*W11-da*W22;dc*W11-da*W33]
Xkompromis=inv([C1;C2;C3])*Wkompromis
Wkompromis =
165.9620
135.7237
375.1075
Xkompromis =
35.8163
24.4860
15.1192
