Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DKR_Var6_Nastya.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
117 Кб
Скачать
☆

Метод ідеальної точки

Розв’язок

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]