В данной статье рассматриваются методы многокритериального анализа принятия решения и их применение для конкретных данных. Разрабатывается библиотека на языке Python для сравнения методов анализа TOPSIS, ELECTRE I, SAW.
Ключевые слова: моделирование, SAW, TOPSIS, ELECTRE, Python, выбор альтернатив
В ходе данной работы будут изучены методы многокритериального анализа принятия решений и будет разработана библиотека на языке программирования Python, необходимая для принятия решения.
— SAW
— TOPSIS
— ELECTRE
В ходе решения задачи был написан программный пакет, состоящий из 4 файлов:
electre.py — многокритериальный метод анализа решений ELECTRE
saw_method.py — многокритериальный метод анализа решений SAW
topsis.py — многокритериальный метод анализа решений TOPSIS
DecisionHelper.py — класс для взаимодействия с методами сравнения знаками
SAW
__count__ — Метод подсчета суммы произведений матрицы на веса
saw_method — SAW метод для сравнения альтернатив по весам
TOPSIS
__normalize__ — Метод нормализации исходных данных
__get_worst_best__ — Метод поиска лучшей и худшей альтернативы
__get_worst_best_distanse__ — Метод поиска «дистанции» до худшего и лучшего элементов
__topsis__ — Внутренний TOPSIS метод для сравнения альтернатив по весам
topsis — TOPSIS метод для сравнения альтернатив по весам
ELECTRE .
__normalize__ — Метод нормализации исходных данных
__concordance_matrix__ — Метод составления матрицы согласия
__discordance_matrix__ — Метод составления матрицы несогласия
__dominance_matrix__ — Метод составления матрицы удовлетворения пороговым значения индексов согласия и несогласия
__lim_concordance_list__ — Метод поиска предельных значений индекса согласия
__lim_discordance_list__ — Метод поиска предельных значений индекса несогласия
electre — ELECTRE I метод для сравнения альтернатив по весам
Исходные данные
Рассмотрим IDE для разработки на языке Java. Для этого выберем характеристики, по которым будем их сравнивать. Стоимость не будем брать в качестве характеристики, так как выбранные IDE распространяются бесплатно. Важность характеристики измеряется числом от 1 до 4, где 4 — наиболее важная характеристика.
Таблица 1
Раскрытие выбранных характеристик
Характеристика ( Субхарактеристика ) |
Причина выбора |
В чем измеряется |
Важность |
функциональная пригодность — степень, в которой продукт или система обеспечивают выполнение функции в соответствии с заявленными потребностями при использовании в указанных условиях. |
Необходима для того, чтобы данную IDE можно было использовать для прохождения всех практик, предусмотренных учебным планом |
1: покрывает 0–50 % плана 2: покрывает 51–90 % плана 3: покрывает 90–100 % плана |
0.18 |
временные характеристики — степень соответствия требованиям по времени отклика, времени обработки и показателей пропускной способности продукта или системы. |
Необходима вследствие ограниченности занятия в вузе, чтобы тратить больше времени на разработку, меньше на запуск, компиляцию. |
1: >2 минут 2: 1–2 минуты 3: 30–59 секунд 4: 15–30 секунд 5: 0–15 секунд |
0.13 |
использование ресурсов — степень удовлетворения требований по потреблению объемов и видов ресурсов продуктом или системой при выполнении их функций. |
Необходима, так как мощность аппаратного обеспечения в вузе достаточно низкая |
1: загружает ресурсы на 100 % и этого недостаточно 2: загружает ресурсы на 90–100 % 3: загружает ресурсы на 50–89 % 4: загружает ресурсы <50 % |
0.17 |
изучаемость — возможность использования продукта или системы определенными пользователями для достижения конкретных целей обучения для эксплуатации продукта или системы с эффективностью, результативностью, свободой от риска и в соответствии с требованиями в указанном контексте использования. |
Необходима по причине недостаточной осведомленности студента обо всех возможностях, опциях, настройках IDE |
1: отсутствие документации 2: есть сжатая документация 3: есть качественная документация 4: подсветка ошибок + № 3 5: контекстные подсказки + № 4 |
0.09 |
защищенность от ошибки пользователя — уровень системной защиты пользователей от ошибок. |
Необходима по причине недостаточной осведомленности студента обо всех возможностях, опциях, настройках IDE |
1: отсутствие предупреждений об ошибке 2: показ причины возникшей ошибки 3: предупреждение о возникновении ошибки |
0.04 |
восстанавливаемость — способность продукта или системы восстановить данные и требуемое состояние системы в случае прерывания или сбоя. |
Необходима из-за несовершенности аппаратного обеспечения и частых “вылетов” |
1: отсутствие возможности восстановить данные 2: возможность автоматически сохранять изменения 3: возможность восстановить несохраненные изменения |
0.13 |
отказоустойчивость — способность системы, продукта или компонента работать как предназначено, несмотря на наличие дефектов программного обеспечения или аппаратных средств. |
Необходима вследствие ограниченности занятия в ВУЗе, чтобы не нужно было тратить время на настройку системы в случае возникновения ошибки |
1: неспособность работать в случае дефектов 2: способность работать в случае отказа некоторых модулей 3: независимость от дефектов |
0.09 |
взаимозаменяемость — способность продукта заменить другой конкретный программный продукт для достижения тех же целей в тех же условиях. |
Необходима для того, чтобы открыть созданный код стандартными программами Windows и Linux и другими IDE |
1: работает только в данной IDE 2: возможность запустить код в других IDE 3: возможность запустить код из других IDE + № 2 |
0.17 |
Таблица 2
ПО и выбранные характеристики
Характеристика/ Субхарактеристика |
IntelliJ IDEA |
Eclipse |
NetBeans |
DrJava |
Android studio |
функциональная пригодность |
3 |
3 |
3 |
2 |
2 |
временные характеристики |
3 |
3 |
2 |
5 |
1 |
использование ресурсов |
3 |
3 |
3 |
4 |
2 |
изучаемость |
5 |
4 |
3 |
2 |
5 |
защищенность от ошибки пользователя |
3 |
3 |
3 |
2 |
3 |
восстанавливаемость |
2 |
2 |
2 |
1 |
3 |
отказоустойчивость |
2 |
1 |
2 |
2 |
2 |
взаимозаменяемость |
3 |
3 |
3 |
3 |
2 |
Преобразуем в данные для приложения.
M — матрица, где строка — определенное ПО, столбец — критерий
Weights — веса
Signs — список, показывающий, отрицательный или положительный критерий
Рис. 1. Данные, подготовленные для анализа
Полученные результаты
Результаты представлены на рисунке 2.
Рис. 2. Полученные результаты
1-е место занимает ПО под номером 1 (IntelliJ Idea) во всех методах, использованных в данной практической работе.
Результаты различаются в методах SAW и TOPSIS лишь в относительно близких по уровню качества альтернативах. (№ 2 и № 4).
Вывод
Причинами того, что методы выдают не одинаковые результаты, являются:
— различие в силе учета весов
— формирование числовых значений разных способами
— различие в видах нормализации матрицы
— учет значений альтернативных вариантов при рассмотрении в TOPSIS и ELECTRE
В результате можно сделать вывод, что нельзя основываться на одном лишь методе сравнения. Не менее важным критерием является вывод информации обо всех альтернативах, внесенных в качестве исходных данных, чтобы пользователь получал право выбора из нескольких лучших вариантов, учитывая критерии, которые не внесены в исходные данные и зависят не от показателей, а от восприятия пользователя представленных товаров.
Библиотека была загружена на репозиторий в веб-сервисе GitHub [3].
Литература:
- Лукичёва, Л. И. Управленческие решения: учебник по специальности «Менеджмент организации» / Л. И. Лукичёва, Д. Н. Егорычев, Ю. П. Анискина. — 4-е изд. — Москва: Омега-Л, 2009. — 383 c. — Текст: непосредственный.
- Лазарев, В. Н. Управленческие решения: текст лекций / В. Н. Лазарев. — 1-е изд. — Ульяновск: УлГТУ, 2011. — 56 c. — Текст: непосредственный.
- Клоков, С. А. MCDM_Methods / С. А. Клоков. — Текст: электронный // GitHub: [сайт]. — URL: https://github.com/R1k0523/MCDM_Methods (дата обращения: 26.04.2021).