Автор работы: Пользователь скрыл имя, 31 Октября 2017 в 22:46, контрольная работа
Почтовый сервер, сервер электронной почты, мейл-сервер — в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA). Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому.
От правильного выбора программного обеспечения зависит стабильность вашей работы и сохранность конфиденциальных данных как ваших, так и вашего собеседника по переписке.
Функциональность |
1 |
2 |
3 |
4 |
5 |
Приоритеты |
1. SafeMail |
1 |
0,33 |
0,33 |
1 |
0,2 |
0,073 |
2. Liga.net |
3 |
1 |
1 |
3 |
0,33 |
0,195 |
3. CommuniCate |
3 |
1 |
1 |
3 |
0,33 |
0,195 |
4. MailUA |
1 |
0,33 |
0,33 |
1 |
0,2 |
0,073 |
5. CommuniGate |
5 |
3 |
3 |
5 |
1 |
0,463 |
Индекс согласованности = 0,015
Отношение согласованности = 1,396 %
Матрица кроссплатформенности стоится на основе поддерживаемых платформ. Чем больше платформ поддерживается, тем выше оценка.
Кроссплатформенность |
Оценка |
1. SafeMail |
3 |
2. Liga.net |
3 |
3. CommuniCate |
5 |
4. MailUA |
7 |
5. PleasureLetter |
9 |
Кроссплатформенность |
1 |
2 |
3 |
4 |
5 |
Приоритеты |
1. SafeMail |
1 |
1 |
0,33 |
0,11 |
0,11 |
0,043 |
2. Liga.net |
1 |
1 |
0,33 |
0,2 |
0,142 |
0,051 |
3. CommuniCate |
3 |
3 |
1 |
0,33 |
0,2 |
0,117 |
4. MailUA |
9 |
5 |
3 |
1 |
0,33 |
0,277 |
5. PleasureLetter |
9 |
7 |
5 |
3 |
1 |
0,511 |
Индекс согласованности = 0,046
Отношение согласованности = 4,182 %
В результате запуска программы отобразим результирующую мастрицу:
Результирующая матрица:
Мультидоменность |
Платформы |
Простота |
Защита |
Цена |
Функции |
Домены |
Приоритеты |
1. SafeMail |
0,43 |
0,117 |
0,037 |
0,072 |
0,073 |
0,045 |
0,054 |
2. Liga.net |
0,051 |
0,043 |
0,09 |
0,387 |
0,195 |
0,103 |
0,150 |
3. CommuniCate |
0,117 |
0,463 |
0,097 |
0,387 |
0,195 |
0,245 |
0,180 |
4. MailUA |
0,277 |
0,106 |
0,246 |
0,04 |
0,073 |
0,103 |
0,168 |
5. PleasureLetter |
0,511 |
0,269 |
0,528 |
0,112 |
0,463 |
0,501 |
0,445 |
В результате получаем, что лучшим почтовым сервером, удовлетворяющем всем заданым критериям, является PleasureLetter.
Графический интерфейс программы:
Рис. 1 – графический интерфейс программы
Кодпрограммы:
// RGR
MainMtx = [
1 3 0.2 0.33 0.33 3;
0.33 1 0.11 0.33 0.142 1;
5 9 1 5 3 9;
3 3 0.2 1 0.33 5;
3 7 0.33 3 1 7;
0.33 1 0.11 0.2 0.142 1;
];
crossPlatform= [1 1 0.33 0.11 0.11;
1 1 0.33 0.2 0.142;
3 3 1 0.33 0.2;
9 5 3 1 0.33;
9 7 5 3 1;];
simplyUI = [1 3 0.33 1 0.33;
0.33 1 0.142 0.33 0.142;
3 7 1 5 3;
1 3 0.2 1 0.33;
3 7 0.33 3 1;];
safety = [1 0.33 0.33 0.142 0.11;
3 1 1 0.33 0.142;
3 1 1 0.33 0.2;
7 3 3 1 0.33;
9 7 5 3 1;];
lowCost = [1 0.2 0.2 3 0.33;
5 1 1 7 5;
5 1 1 7 5;
0.33 0.142 0.142 1 0.33;
3 0.2 0.2 3 1;];
usability = [1 0.33 0.33 1 0.2;
3 1 1 3 0.33;
3 1 1 3 0.33;
1 0.33 0.33 1 0.2;
5 3 3 5 1;];
multidomens = [1 0.33 0.2 0.33 0.142;
3 1 0.33 1 0.2;
5 3 1 3 0.33;
3 1 0.33 1 0.2;
7 5 3 5 1;];
// Определим индекс согласованности по таблице
Iss6 = 1.24;
Iss5 = 1.12;
function [relativeConsistency, indexConsistency, vectorPriority]=func(mtrx, randomConsistency)
// Вектор для расчетов приоритета
n = length(mtrx(1, :));
priorityTemp = [];
// Находим максимальный вектор для каждой матрицы
// Максимальное лямбда для каждой строки
for i = 1:n
priorityTemp(i) = 1;
for j = 1:n
priorityTemp(i) = priorityTemp(i) .* mtrx(i, j);
end
end
for i = 1:n
priorityTemp(i) = priorityTemp(i) .^ (1 ./ n);
end
for i = 1:n
vectorPriority(i) = priorityTemp(i) ./ sum(priorityTemp);
end
LambdaMax = 0;
for j = 1:n
LambdaMax = LambdaMax + (vectorPriority(j) .* sum(mtrx(:, j)));
End
// Считаем информационную согласованность
indexConsistency = (LambdaMax - n) ./ (n - 1);
// Считаем относительную согласованность
relativeConsistency = indexConsistency ./ randomConsistency .* 100;
endfunction
[relativeConsistency_Gen, Consistency_Gen, vectorPriority_Gen] = func(MainMtx, Iss6);
[relativeConsistency1, indexConsistency1, vectorPriority1] = func(crossPlatform, Iss5); [relativeConsistency2, indexConsistency2, vectorPriority2] = func(simplyUI, Iss5); [relativeConsistency3, indexConsistency3, vectorPriority3] = func(safety, Iss5); [relativeConsistency4, indexConsistency4, vectorPriority4] = func(lowCost, Iss5);
[relativeConsistency5, indexConsistency5, vectorPriority5] = func(usability, Iss5);
[relativeConsistency6, indexConsistency6, vectorPriority6] = func(multidomens, Iss5);
// Переведем все вектора в матрицу, чтобы было удобней работать
for i = 1:length(vectorPriority1) mr(i, 1) = vectorPriority1(i); end
for i = 1:length(vectorPriority2) mr(i, 2) = vectorPriority2(i); end
for i = 1:length(vectorPriority3) mr(i, 3) = vectorPriority3(i); end
for i = 1:length(vectorPriority4) mr(i, 4) = vectorPriority4(i); end
for i = 1:length(vectorPriority5) mr(i, 5) = vectorPriority5(i); end
for i = 1:length(vectorPriority6) mr(i, 6) = vectorPriority6(i); end
// Находим результирующую матрицу
ResultArray = [];
for i =1:length(vectorPriority1)
ResultArray (i) = 0;
for j = 1:length(vectorPriority_Gen)
ResultArray (i) = ResultArray (i) + (vectorPriority_Gen(j) .* mr(i, j));
end
end
disp("Результирующая матрица ResultArray ult = ");
disp(ResultArray );
//Ищем тектовый ответ
binAns = [0 0 0 0 0]; // Ответ для диаграммы
if max(ResultArray ) == ResultArray (1) then strResultArray = "SafeMail"; binAns(1) = 1;
elseif max(ResultArray ) == ResultArray (2) then strResultArray = "Liga.net"; binAns(2) = 1;
elseif max(ResultArray ) == ResultArray (3) then strResultArray = "CommuniCate"; binAns(3) = 1;
elseif max(ResultArray ) == ResultArray (4) then strResultArray = "MailUA"; binAns(4) = 1;
elseif max(ResultArray ) == ResultArray (5) then strResultArray = "PleasureLetter"; binAns(5) = 1;
end
f=figure(); // Создание графического объекта
// Размер окна
set(f,'position',[0,0,700,400]
// Заголовок
set(f,'figure_name','Результат работы программы');
// Кнопка результата
button9 = uicontrol('style','pushbutton'
uicontrol('Style','text','
uicontrol('Style','text','
// Кнопки для вывода таблиц(матриц)
button1 = uicontrol('style','pushbutton'
button2 = uicontrol('style','pushbutton'
button3 = uicontrol('style','pushbutton'
button4 = uicontrol('style','pushbutton'
button5 = uicontrol('style','pushbutton'
button6 = uicontrol('style','pushbutton'
button7 = uicontrol('style','pushbutton'
// Выводим диаграмму
//function showResultArray ()
// scf(1);
// pie(ResultArray
,binAns,["SafeMail","Liga.net"
//endfunction
// Вывод таблицы 5*5
// w - вектор приоритетов
function showMatrix(mtx, ost, ist, w)
window=figure(); // Создание графического объекта
// Размер окна
set(window,'position',[0,0,
// Выводим ИС и ОС
uicontrol('Style','text','
params = ["SafeMail" "Liga.net" "CommuniCate" "MailUA" "PleasureLetter"];
table = ["" params "Приоритет"; [params' string(mtx(:, 1)) string(mtx(:, 2)) string(mtx(:, 3)) string(mtx(:, 4)) string(mtx(:, 5)) string(w)]];
uicontrol('style','table','
endfunction
// Вывод таблицы 6*6
function showMatrix2(mtx, ost, ist, w)
window=figure(); // Создание графического объекта
// Размер окна
set(window,'position',[0,0,
// Выводим ИС и ОС
uicontrol('Style','text','
params = ["Платформы" "Простота" "Защита" "Цена" "Функции" "Домены"];
table = ["" params "Приоритет"; [params' string(mtx(:, 1)) string(mtx(:, 2)) string(mtx(:, 3)) string(mtx(:, 4)) string(mtx(:, 5)) string(mtx(:, 6)) string(w)]];
uicontrol('style','table','
endfunction
// Вывод результирующей таблицы
function showMatrix3(mtx, w, ans1)
window = figure(); // Создание графического объекта
// Размер окна
set(window,'position',[0,0,
// Выводим ответ
uicontrol('Style','text','
params = ["Кроссплатформенность" "Простота в использовании" "Защищенность данных" "Цена" "Функциональная полнота" "Мультидоменность"];
params2 = ["SafeMail" "Liga.net" "CommuniCate" "MailUA" "PleasureLetter"];
table = ["" params "Приоритет"; [params2' string(mtx(:, 1)) string(mtx(:, 2)) string(mtx(:, 3)) string(mtx(:, 4)) string(mtx(:, 5)) string(mtx(:, 6)) string(w)]];
uicontrol('style','table','
endfunction
Вывод:в ходе выполнения расчетно-графической работы была решена задача о нахождении оптимальной альтернативы в многокритериальной задаче методом анализа иерархии. Данный метод заключался в построении иерархии трех уровней, на верхнем уровне которого и находится оптимальное решение.
Чтобы выбрать самую выгодную программу для развертывания своего почтового сервера, были выделены основные критерии для оценки возможных программ. Далее программы сравнивались между собой по каждому критерию в отдельности и строились соответствующие матрицы оценок.
После все матрицы был вписаны в программу, которая произвела расчет и определила самую оптимальную альтернативу – программа PleasureLetter.
Для визуализации решения после запуска программы пользователю был предоставлен графический интерфейс, с помощью которого он может просмотреть данные по вычислениям не только основного ответа, но и по всем матрицам критериев. Также наглядно ответ может быть выведен в виде круговой диаграммы, основываясь на результирующих приоритетах.
Информация о работе Метод анализа иерархий для принятия многокритериальных решений