View on GitHub

MakeDecision

Tool for making exact decisions / Инструмент принятия точных решений

Make decision: описание метода

ƒ  RD AAOW FDL; 8.02.2024; 2:49

Содержание страницы


Общие сведения

Программа Make decision иллюстрирует нелинейный метод анализа иерархий. Метод предполагает сравнение некоторых объектов, явлений или исходов событий на основе набора критериев и выбор наиболее «правильного» из них, т.е. того, у которого итоговый коэффициент будет наивысшим. Пользователю предлагается выбрать элементы и критерии для их сравнения, а также оценить значимость каждого критерия и «стоимость» элемента по каждому критерию. На основе этих сведений программа получает результат.

Первая версия программы была выполнена в среде разработки Microsoft Visual Basic 6.0. Уже тогда она не являлась наилучшим средством. Однако в данном случае её возможностей было вполне достаточно. К тому же её простота позволила создать программу в кратчайшие сроки. Данная же реализация лишь переносит решение в нашу общую для всех остальных проектов экосистему.

При разработке использовался только лекционный материал, понимания которого более чем достаточно для создания данного (и ему подобных) иллюстративного приложения.

Больше информации Вы сможете найти в этом видеоруководстве.


Как это работает

Допустим, мы хотим выбрать между приобретением ноутбука, смартфона, планшетного и стационарного ПК. Запустим Make decision и укажем сравниваемые устройства. Пунктов для сравнения должно быть, очевидно, не менее двух.

Заметим, что при необходимости все шаги можно повторить заново в любой момент с помощью кнопки , а переход к следующему шагу (здесь и далее) выполняется кнопкой .

Далее укажем критерии, по которым мы будем сравнивать устройства. Допустим, это будет стоимость, модернизируемость (возможность «разгона», замены компонентов и т.д.), мощность и удобство (возможность взять с собой, использовать вне места установки и т.д.).

При этом важно указать «стоимости» этих критериев при принятии решения. Имеется в виду некое абстрактное число, вроде шкалы от 1 до 100, которое для более значимого параметра оказалось бы больше.

Допустим, мы больше ценим удобство и мощность, чем возможность изменять исходную конфигурацию и цену в магазине. На снимке выше это показано с помощью слайдеров.

На следующих экранах (по числу критериев сравнения) программа предложит Вам указать оценки для устройств по каждому критерию. Заметим, что это именно оценки. Т.е. товар с более высокой стоимостью в нашем случае будет иметь более низкую оценку, т.к. высокая стоимость является менее удачным решением (впрочем, это не всегда так).

Это, конечно, спорные моменты. Но мы ввели такие данные, исходя из собственного опыта. В идеале эти оценки следует производить на основе анализа литературы, описаний, экспертиз, обзоров и комментариев. Впрочем, для менее критичных решений может быть достаточно хорошего совета.

На последнем экране мы получаем математически обоснованный ответ: нам нужен планшетный ПК.

Это, в целом, соответствует нашим запросам. Хотя, строго говоря, смартфон несильно отстаёт по суммарному коэффициенту и также может быть рассмотрен в качестве решения.

Обратим внимание, что приложение поддерживает до 10 элементов и до 10 критериев, т.е. позволяет принимать гораздо более сложные и многофакторные решения, чем приведённое в этом примере. И это достаточно просто, ведь математический аппарат решения не бросается в глаза пользователю.

По окончании процедуры программа может быть возвращена в начальное состояние кнопками и . Названия объектов и критериев при этом сохраняются, пока не будут изменены вручную или сброшены кнопкой .


Описание метода

После того, как пользователь формирует списки элементов для сравнения и критериев с оценками, из полученного вектора оценок создаётся матрица сравнений. Для этого выполняется дублирование исходного вектора до тех пор, пока матрица не становится квадратной. После этого каждый столбец делится на тот свой элемент, номер которого равен номеру столбца в матрице. В результате в матрице на главной диагонали все элементы становятся равными единице (этот процесс известен как нормализация матрицы).

Аналогичным образом задаются и обрабатываются векторы оценок элементов по каждому критерию.

Конечные оценки элементов получаются следующим образом:

  1. Для всех нормализованных матриц (и критериев, и элементов) составляются вектора средних гармонических: каждый элемент вектора равен произведению элементов соответствующей строки матрицы, возведённому в степень, обратную количеству элементов в строке.

  2. Затем матрицы умножаются на эти вектора.

  1. Далее получившиеся вектора цен элементов по разным критериям склеиваются в матрицу в том порядке, в котором эти критерии были объявлены.

  2. Наконец, эта матрица умножается на вектор цен критериев.

Полученный вектор будет результатом метода. Самое большое число в нём укажет на «наилучший» элемент в заданных условиях.


Заключение

Итак, нелинейный метод анализа иерархий при корректном указании исходных данных может оказаться незаменимым при, казалось бы, неразрешимом выборе. Настоятельно рекомендуем опробовать этот инструмент, когда вопрос «или-или» встанет особенно остро. Впрочем, он может пригодиться и в профессиональной деятельности, поскольку использует доказанный математический аппарат, что означает достоверность и научность получаемых решений.