Метод цільового програмування

Національний технічний університет України

Київський політехнічний інститут

Інститут телекомунікаційних систем

 

 

Домашня контрольна робота

дисципліни «Теорія прийняття рішень та системний аналіз»

на тему «Застосування методів векторної оптимізації для розв’язування задач підвищення ефективності ТКС»

Варіант 6

 

Виконала: ст..гр.ТЗ-41м

Москвитіна А.О.

Прийняв: Лисенко О.І.

 

Київ 2014

Методика розрахунків до питання 1

Постановка задачі

Розв’язати задачу багатокритеріальної(векторної) оптимізації:

де ОДР G задана нерівностями

l1 x1;

l2 x2;

l3 x3;

критерії упорядковані за рівнем важливості ( індекс “1” відповідає найважливішому критерію), МЕТОДОМ: ідеальної точки; цільового програмування (р=2; 1=0.5, 2=0.3, 3=0.2); послідовних поступок; рівних та найменших відносних відхилень( 1=1, 2=0.5, 3=0.5; обчислення додаткових обмежень – рівностей виконати із точністю D12=D13=0.1); мінімаксу ( 1=0.5, 2=0.25, 3=0.25).

Таблиця 1. Вихідні данні

Варіант a1 a2 a3 b1 b2 b3 d1 d2 d3 H1 H2 H3
1,7,13,19,25 1 2 3 4 4 4 8 3 1 840 770 800
2,8,14,20,26 1 2 3 3 2 1 8 3 1 830 760 790
3,9,15,21,27 3 2 1 1 2 1 8 3 1 820 750 780
4,10,16,22,28 3 2 1 1 2 1 8 3 1 820 750 780
5,11,17,23,29 2 2 1 1 2 1 8 3 1 850 780 810
6,12,18,24,30 2 2 3 2 2 1 8 3 1 860 790 820

Таблиця 1(продовження). Вихідні данні

h11 h12 h13 h21 h22 h23 h31 h32 h33 l1 l2 l3
7 12 20 11 7 10 1 1 10 10 10 10
7 12 20 11 7 10 1 1 10 10 10 10
7 12 20 11 7 10 1 1 10 10 10 10
6 11 19 12 8 11 1 1 10 10 10 10
6 11 19 12 8 11 1 1 10 10 10 20
6 11 19 12 8 11 1 1 10 10 10 20


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

Розв’язок

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

 

Метод цільового програмування

Розв’язок

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. Метод цільового компромісного програмування(MЦKП)

Згідно завданню: р=2; 1=0.5, 2=0.3, 3=0.2.

 

3.1.1. Побудова файл-функції: File_New_M-file

 

function CKP=myfunCKPmin(x,C1,C2,C3,W1max,W2max,W3max)

CKP=sqrt(0.5*((C1*[x(1);x(2);x(3)]-W1max)/W1max)^2+0.3*((C2*[x(1);x(2);x(3)]-W2max)/W2max)^2+0.2*((C3*[x(1);x(2);x(3)]-W3max)/W3max)^2);

Save as… myfunCKPmin

 

3.1.2. Пошук оптимального значення змінних із використанням функції fmincon системи комп’ютерної математики MATLAB:

 

Формат функції fmincon

[x,W,flag]=fmincon(@myfun,[x0],[A],[b],[Aeq],[beq],[lb],[ub],

@mynon,options,P1,P2,…)

 

[x,Dckp,flag]=fmincon(@myfunCKPmin,lb,A,b,[],[],lb,[],[],[],C1,C2,C3, W1max,W2max,W3max)

Warning: Trust-region-reflective algorithm does not solve this type of problem,

using active-set algorithm. You could also try the interior-point algorithm: set

the Algorithm option to 'interior-point' and rerun.

> In fmincon at 460

In CilProgram at 41

Local minimum possible. Constraints satisfied.

fmincon stopped because the predicted change in the objective function

is less than the default value of the function tolerance and constraints

were satisfied to within the default value of the constraint tolerance.

<stopping criteria details>

Active inequalities (to within options.TolCon = 1e-006):

lower upper ineqlin ineqnonlin

3 2

x =

33.3230

21.2655

20.0000

Dckp =

0.0402

 

flag =

5