МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
ЗВІТ
про виконання лабораторної роботи №2
на тему:
“ Метод умовного центра мас”
з предмету:
“ Методи багатокритеріальної оптимізації ”
Мета роботи
Набуття практичних навичок із застосування методу умовного центра мас для розв’язку задач багатокритеріальної оптимізації.
ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Нехай послідовно знайдені значення екстремумів для кожного показника Wi (і), що відповідає точкам в просторі параметрів з координатами {X1i *, x2i *, ..., хп}. "Умовна маса" точки виражається:
- значення I-го показника ефективності при сукупності керованих параметрів, які забезпечують екстремальне його значення. Будемо вважати, що компромісного рішення буде задовольняти набір параметрів, відповідних точці з координатами "умовного центра мас":
Знайдені за цим методом середньозважені значення параметрів XI ** враховують не тільки інтереси всіх показників якості, але і чутливість кожного по відношенню до даного параметру.
ЛАБОРАТОРНЕ ЗАВДАННЯ
Написати програму для реалізації методу умовного центра мас відповідно до варіанту індивідуальних завдань:
Текст M-файлу для обчислення даної задачі
clear all;
clc;
% записуємо цільову функцію
% перша цільова функція з обмеженнями
F= [2 3 5 0 0];
Aeq=[1 2 1 0 0;
2 1 0 1 0;
-1 1 0 0 1];
beq=[6 8 4];
lb=[0 0 0 0 0];
[x1,fval1,exitflag, output]=linprog(F,[],[],Aeq,beq,lb);
disp(['Значення X1: ', num2str(x1(1))]);
disp(['Значення X2: ', num2str(x1(2))]);
disp(['Значення X3: ', num2str(x1(3))]);
disp(['Значення X4: ', num2str(x1(4))]);
disp(['Значення X5: ', num2str(x1(5))]);
disp(' ');
disp(['Значення ЦФ1: ', num2str(fval1)]);
disp('Для продовження - Enter');
pause;
% друга цільова функція з обмеженнями
F2=[2 1 -3 0 0];
[x2,fval2,exitflag, output]=linprog(F2,[],[],Aeq,beq,lb);
disp(' ');
disp(['Значення X1: ', num2str(x2(1))]);
disp(['Значення X2: ', num2str(x2(2))]);
disp(['Значення X3: ', num2str(x2(3))]);
disp(['Значення X4: ', num2str(x2(4))]);
disp(['Значення X5: ', num2str(x2(5))]);
disp(' ');
disp(['Значення ЦФ2: ', num2str(fval2)]);
disp('Для продовження - Enter');
pause;
F3=[1 1 -3 0 0];
[x3,fval3,exitflag, output]=linprog(-F3,[],[],Aeq,beq,lb);
fval3=abs(fval3);
disp(' ');
disp(['Значення X1: ', num2str(x3(1))]);
disp(['Значення X2: ', num2str(x3(2))]);
disp(['Значення X3: ', num2str(x3(3))]);
disp(['Значення X4: ', num2str(x3(4))]);
disp(['Значення X5: ', num2str(x3(5))]);
disp(' ');
disp(['Значення ЦФ3: ', num2str(fval3)]);
disp('Обчислення умовного центра мас: ');
sum=fval1+fval2+fval3;
m1=sum/fval1;
m2=sum/fval2;
m3=sum/fval3;
disp(' ');
disp(['Значення M1: ', num2str(m1)]);
disp(['Значення M2: ', num2str(m2)]);
disp(['Значення M3: ', num2str(m3)]);
disp('Обчислення значення X:');
summ=m1+m2+m3;
for i=1:5
x(i)=(m1*x1(i)+m2*x2(i)+m3*x3(i))/summ;
end
disp(['Значення X1 = ',num2str(x(1))]);
disp(['Значення X2 = ',num2str(x(2))]);
disp(['Значення X3 = ',num2str(x(3))]);
disp(['Значення X4 = ',num2str(x(4))]);
disp(['Значення X5 = ',num2str(x(5))]);
disp(' ');
disp('Значення цільових функцій: ');
func1=x*F';
disp(['Значення ЦФ1 = ',num2str(func1)]);
func2=x*F2';
disp(['Значення ЦФ2 = ',num2str(func2)]);
func3=x*F3';
disp(['Значення ЦФ3 = ',num2str(func3)]);
Результати виконання програми
Значення X1: 2.7559e-010
Значення X2: 3
Значення X3: 3.5082e-011
Значення X4: 5
Значення X5: 1
Значення ЦФ1: 9
Для продовження - Enter
Значення X1: 5.1057e-011
Значення X2: 1.6402e-008
Значення X3: 6
Значення X4: 8
Значення X5: 4
Значення ЦФ2: -18
Для продовження - Enter
Значення X1: 3.3333
Значення X2: 1.3333
Значення X3: 1.8208e-012
Значення X4: 8.4205e-012
Значення X5: 6
Значення ЦФ3: 4.6667
Обчислення умовного центра мас:
Значення M1: -0.48148
Значення M2: 0.24074
Значення M3: -0.92857
Обчислення значення X:
Значення X1 = 2.6471
Значення X2 = 2.2941
Значення X3 = -1.2353
Значення X4 = 0.41176
Значення X5 = 4.3529
Значення цільових функцій:
Значення ЦФ1 = 6
Значення ЦФ2 = 11.2941
Значення ЦФ3 = 8.6471
Аналіз результатів та висновки
При виконанні лабораторної роботи було освоєно метод умовного центра мас для розв’язку задач багатокритеріальної оптимізації. Я ознайомився із алгоритмом даного методу. При використанні програми для розв’яку тестової задачі результати співпали, ну але є незначна похибка в обчисленнях.