% Лабораторна робота № 5 ТССА 29-05-22 % РОЗКРИТТЯ НЕВИЗНАЧЕНОСТІ ЦІЛЕЙ В ЗАДАЧАХ СИСТЕМНОГО АНАЛІЗУ % - - - Використовуються функції - - - % px = paretov(x); файл paretov.m % x - початкові оцінки % px - оцінки % x_view = view_estimation(x, matrix_name, row_name, col_name); файл view_estimation.m % x - оцінки % matrix_name - назва матриці % row_name - назви варіантів структури (рядки) % col_name - назви критеріїв оптимальності (стовбці) % x_view - результат виведення: 1 - так; 0 - ні clear all; % - - - Введення початкових даних - - - % Матриця значень експертних оцінок ефективності функціонування вимірювальної системи % для 7 варіантів структури (рядки) та 6 критеріїв оптимальності (стовбці) % Оцінки за 9 бальною шкалою, 1-min; 9-max Y=[8 6 6 5 7 5 9 1 2 6 8 4 1 9 8 5 6 3 6 8 1 2 2 2 9 6 2 6 8 5 3 4 1 1 6 1 5 6 3 5 7 2]; % Найменування варіантів структури вимірювальної системи (однакова довжина всіх рядків) YVar=['Варіант структури 1';'Варіант структури 2';'Варіант структури 3';... 'Варіант структури 4';'Варіант структури 5';'Варіант структури 6';... 'Варіант структури 7']; % Найменування критеріїв ефективності функціонування вимірювальної системи (однакова довжина всіх рядків) YCrit=['Кр 1'; 'Кр 2'; 'Кр 3'; 'Кр 4'; 'Кр 5'; 'Кр 6']; % Вагові коефіцієнти важливості критеріїв для переходу до скалярної задачі оптимізації ACrit=[0.30 0.18 0.18 0.18 0.10 0.06]; % - - - Звуження початкової множини варіантів стукрури до Парето-множини - - - view_estimation(Y, 'Початкові оцінки ефективності функціонування вимірювальної системи', ... YVar, YCrit); [Y1 YVar1]=paretov(Y, YVar); % Y1 - Нова матриця оцінок ефективності, звужена до Парето-множини варіантів view_estimation(Y1, 'Парето-оптимальні оцінки ефективності функціонування вимірювальної системи', ... YVar1, YCrit); % - - - Перехід до скалярної задачі оптимізації - - - % - - - Метод головного критерію - - - % Номер головного критерію як максимальний ваговий коефыцієнт важливості критеріїв [ACritMax NMainCrit]=max(ACrit); % Вектор значень обмежень мінімально допустимих значень оцінок ефективності YMin=ones(1, size(Y1,2)).*2; YMin(NMainCrit)=min(Y1(:,NMainCrit)); % Виключення векторів, що не задовольняють обмеженням Y2=Y1; YVar2=YVar1; k=0; for v=1:size(Y2,1) m=min(Y1(v,:)-YMin); j=v-k; if m<0 Y2(j,:)=[]; YVar2(j,:)=[]; k=k+1; else end end % Знаходження значення оптимального вектора disp('- - - Метод головного критерію - - -'); [Y2Max,NYOpt]=max(Y2(:,NMainCrit)); disp('Назва оптимального варіанту структури вимірювальної системи') YVar2(NYOpt,:) disp('Значення оцінок ефективності оптимального варіанту структури') Y2(NYOpt,:) % - - - Метод лінійної згортки - - - Y2=zeros(size(Y1,1),1); YVar2=YVar1; for i=1:size(Y1,1) Y2(i)=sum(Y1(i,:).*ACrit); end; [Y2Max,NYOpt]=max(Y2); disp('- - - Метод лінійної згортки - - -'); disp('Скалярні оцінки ефективності варіантів структури вимірювальної системи') Y2 disp('Назва оптимального варіанту структури вимірювальної системи') YVar2(NYOpt,:) disp('Значення оптимальної оцінки ефективності') Y2(NYOpt,:) % - - - Метод мультиплікативної згортки - - - Y2=zeros(size(Y1,1),1); YVar2=YVar1; for i=1:size(Y1,1) Y2(i)=prod(Y1(i,:).*ACrit); end; [Y2Max,NYOpt]=max(Y2); disp('- - - Метод мультиплікативної згортки - - -'); disp('Скалярні оцінки ефективності варіантів структури вимірювальної системи') Y2 disp('Назва оптимального варіанту структури вимірювальної системи') YVar2(NYOpt,:) disp('Значення оптимальної оцінки ефективності') Y2(NYOpt,:) % - - - Метод максимінної згортки - - - Y2=zeros(size(Y1,1),1); YVar2=YVar1; for i=1:size(Y1,1) Y2(i)=min(Y1(i,:).*ACrit); end; [Y2Max,NYOpt]=max(Y2); disp('- - - Метод максимінної згортки - - -'); disp('Скалярні оцінки ефективності варіантів структури вимірювальної системи') Y2 disp('Назва оптимального варіанту структури вимірювальної системи') YVar2(NYOpt,:) disp('Значення оптимальної оцінки ефективності') Y2(NYOpt,:)