Санкт-Петербургский государственный университет
Кафедра теории управления
Соколов Владимир Николаевич
Магистерская диссертация
Упрощенный вариант метода анализа иерархий в
условиях нечетких данных
Направление 01.04.02
Прикладная математика и информатика
Магистерская программа Методы прикладной математики и
информатики и задачах управления
Научный руководитель,
доктор физ.-мат. наук,
профессор
Ногин В. Д.
Санкт-Петербург
2016
ОГЛАВЛЕНИЕ
Стр.
АННОТАЦИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ОБЗОР ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
6
ГЛАВА 1 Метод анализа иерархий
1.1 Описание подхода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Построение иерархий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Расстановка приоритетов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Матрица относительных весов . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Анализ иерархии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Линейная свертка критериев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
8
10
11
12
14
ГЛАВА 2 Упрощенный метод анализа иерархий
15
2.1 Требования к матрице парных сравнений . . . . . . . . . . . . . . . . 15
2.2 Построение матрицы парных сравнений . . . . . . . . . . . . . . . . . . 16
ГЛАВА 3
3.1
3.2
3.3
3.4
3.5
Теория нечетких множеств
Основные понятия и определения . . . . . . . . . . . . . . . . . . . . . . . . .
Нечеткие числа 𝐿𝑅 типа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Примеры 𝐿𝑅 чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Операции с нечеткими числами и интервалами . . . . . . . . .
Дефаззификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
21
22
23
25
ГЛАВА 4 Упрощенный вариант метода анализа иерархий в
условиях нечетких данных
4.1 Экспертные оценки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Построение вектора весов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Дефаззификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
27
29
31
ГЛАВА 5 Анализ результатов
5.1 Подготовка данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Проблема водного хозяйства в Китае . . . . . . . . . . . . . . . . . . . . .
5.3 Результаты работы различных методов . . . . . . . . . . . . . . . . . . .
5.4 Сравнение и анализ методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
СПИСОК ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
32
32
34
37
41
42
2
ПРИЛОЖЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
44
АННОТАЦИЯ
Данная работа посвящена распространению упрощенного варианта
метода анализа иерархий (МАИ) на случай нечетких исходных данных.
Показывается, как на основе n-1 экспертной оценки можно построить
нечеткий вектор приоритетов и провести его дефаззификацию. В работе
проводится сравнение предложенного метода с близкими к нему подходами и показывается его практическая применимость. Для изучения
предлагаемого подхода, выполнена его реализация на языке программирования C# и осуществлено тестирование на задаче поиска распределения инвестиций в развитие водных бассейнов Китая. Работа содержит
введение, обзор литературы, пять глав, заключение, список литературы
из 15 наименований и код программы.
ВВЕДЕНИЕ
Метод Анализа Иерархий (Далее МАИ) — математический инструмент системного подхода к сложным проблемам принятия решений.
МАИ не предписывает лицу, принимающему решение (ЛПР), какоголибо «правильного» решения, а позволяет ему в интерактивном режиме
найти такой вариант (альтернативу), который наилучшим образом согласуется с его пониманием сути проблемы и требованиями к её решению. Этот метод разработан американским математиком Томасом Саати
[1], который написал о нем книги, разработал программные продукты
и в течение 20 лет проводит симпозиумы ISAHP (англ. International
Symposium on Analytic Hierarchy Process). МАИ широко используется
на практике и активно развивается учеными всего мира. В его основе наряду с математикой заложены и психологические аспекты. МАИ
позволяет понятным и рациональным образом структурировать сложную
проблему принятия решений в виде иерархии, сравнить и выполнить ко4
личественную оценку альтернативных вариантов решения. Метод Анализа Иерархий используется во всем мире для принятия решений в разнообразных ситуациях: от управления на межгосударственном уровне
до решения отраслевых и частных проблем в бизнесе, промышленности, здравоохранении и образовании.
Модификация этого метода, называющаяся Упрощенным МАИ, разработанная Ногиным В.Д. в [2], позволяет получить схожие результаты
при меньшей вычислительной сложности. «Упрощение» достигается за
счет снижения количества попарных сравнений в обычном МАИ с сохранением лишь минимального набора информации, достаточного для
решения поставленной задачи. Стоит отметить, что предлагаемый в этом
подходе способ упрощения не единственен, и может быть выбран таким,
чтобы максимально соответствовать действительности.
Теория нечетких множеств, разработанная Л. Заде [3], позволяет
представлять любую информацию в виде множества с некоторой функцией принадлежности. Эта теория в текущий момент активно развивается
и используется в различных сферах математики и прикладных наук. С
помощью инструментария, используемого в этой теории, мы рассмотрим
известную задачу анализа иерархий в условиях нечетких данных. Такой
подход позволит снизить влияние субъективности начальных данных на
конечный результат, делая его более объективным и соответствующим
реальности.
В первой главе будет рассмотрен и описан классический МАИ, будут введены основные определения и тезисы. Большая часть этой главы
будет опираться на результаты полученные в [1].
Во второй главе будут показаны основные этапы упрощенного метода анализа иерархий. В дополнение к этому, будут доказаны некоторые утверждения позволяющие упростить дальнейшую компьютерную
реализацию.
В третьей главе изложены основные принципы и понятия требуемые для корректного использования теории нечетких множеств в рамках
метода анализа иерархий. Будут введены понятия 𝐿𝑅 чисел (интервалов)
и арифметических операций с ними.
5
Четвертая глава содержит описание упрощенного метода анализа
иерархий в условиях нечетких данных. Данный метод основан на объединении результатов предыдущих глав, и позволяет решить стандартную задачу анализа иерархий за счет меньшего количества попарных
сравнений и с учетом «нечеткости» экспертных оценок.
В пятой главе будут показаны результаты компьютерной реализации метода, предлагаемого в данной работе, и произведено его сравнение
с основными существующими модификациями МАИ. Сравнение будет
проводиться на основании реальных данных полученных из современных источников.
ОБЗОР ЛИТЕРАТУРЫ
В [1], [5] изложены основные результаты теории принятия решений
применительно к методу анализа иерархий. Работа [1] является главной
отправной точной для предлагаемого в нашем исследовании метода, и
содержит основные используемые определения, леммы и теоремы.
В [2] предложена модификация классического МАИ, предложенная
Ногиным Д.В., существенно упрощающая выполняемые вычисления, и
требующая меньшего количества экспертных оценок.
В работах [3], [4] представлены основы теории нечетких множеств.
Конкретно в работе [3] было впервые предложено использование «нечетких» множеств как альтернативы детерминированным числам и множествам.
Работы [6]-[8], [11], [12] содержат информацию, позволяющую
сузить рассматриваемый спектр нечетких множеств, и формализовать
арифметические операции над ними. В дополнение к этому, на результатах, полученных из этих источников, основывается компьютерная реализация работы с нечеткими числами, предложенная в нашей работе.
В работe [9] предложена нечеткая вариация метода анализа иерархий, с применением дискретных нечетких множеств. Для построения
6
вектора весов, задача поиска приоритетов сводится к задаче линейного программирования, что является довольно таки нестандартным подходом к решению такого рода задач. Кроме того, данная работа будет
использована для сравнения с предлагаемым нами подходом на основе
имеющихся в ней данных.
В [10] представлен еще один способ решения задачи анализа иерархий, основывающийся на теории нечетких множеств. В этой работе задача поиска вектора приоритетов сведена к решению задачи нелинейной
оптимизации. Также сравнены и проанализированы три различных подхода поиска требуемых экстремумов.
В работе [13] представлена модификация МАИ, также базирующаяся на теории нечетких множеств. В качестве экспертных оценок используются нечеткие числа треугольного типа. Эта работа представляет
собой один из классических примеров применения нечеткой логики к
задаче анализа иерархий.
В [14] содержится пример, на основе которого будет производиться
сравнение рассматриваемых методов.
В работе [15] содержатся сведения по теории графов, требуемые
для доказательства некоторых утверждений.
7
ГЛАВА 1
Метод анализа иерархий
1.1
Описание подхода
Метод анализа иерархий содержит процедуру синтеза приоритетов,
вычисляемых на основе субъективных суждений экспертов. Число суждений может измеряться дюжинами или даже сотнями. Математические
вычисления для задач небольшой размерности можно выполнить вручную или с помощью калькулятора, однако гораздо удобнее использовать
программное обеспечение (ПО) для ввода и обработки суждений. Самый
простой способ компьютерной поддержки — электронные таблицы. Cамое развитое ПО предусматривает применение специальных устройств
для ввода суждений участниками процесса коллективного выбора. Порядок применения Метода Анализа Иерархий:
1. Построение качественной модели проблемы в виде иерархии, включающей цель, альтернативные варианты достижения цели и критерии для оценки качества альтернатив.
2. Определение приоритетов всех элементов иерархии с использованием метода парных сравнений.
3. Синтез глобальных приоритетов альтернатив путем линейной свертки приоритетов элементов на иерархии.
4. Проверка суждений на согласованность.
5. Принятие решения на основе полученных результатов.
Рассмотрим эти этапы подробнее.
1.1.1
Построение иерархий
Первый шаг МАИ — построение иерархической структуры, объединяющей цель выбора, критерии, альтернативы и прочие факторы,
8
влияющие на выбор решения. Построение такой структуры позволяет
проанализировать все аспекты имеющейся проблемы и глубже вникнуть
в суть задачи.
Иерархическая структура — это графическое представление задачи
в виде дерева, где каждый элемент, за исключением самого верхнего,
зависит от одного или более элементов расположенных выше. Похожие
структуры зачастую встречаются в жизни (структура компании, распределение полномочий, таксономическая классификация и т.д.)
Иерархические структуры используются для лучшего понимания
сложной реальности: мы раскладываем исследуемую проблему на составные части; затем разбиваем на составные части получившиеся элементы
и т. д. На каждом шаге важно фокусировать внимание на понимании текущего элемента, временно абстрагируясь от всех прочих компонентов.
При проведении подобного анализа приходит понимание всей сложности
и многогранности исследуемого предмета. Иерархические структуры, ис-
Рис. 1.1: Простейшая иерархия МАИ.
пользуемые в МАИ, представляют собой инструмент предназначенный
9
для моделирования сложных проблем. На вершине иерархии находится главная цель; элементы самого нижнего уровня представляют собой
множество вариантов достижения цели (альтернатив); остальные элементы промежуточных уровней соответствуют критериям или факторам,
которые связывают конечную цель с альтернативами. (см. Рис. 1.1)
Также существует другой способ построения иерархии. Он заключается в расчленении рассматриваемых вещей на большие группы или
кластеры, которые далее делятся на меньшие кластеры и т.д. Тогда целью будет получение приоритетов всех элементов посредством группирования. Это также намного более эффективный процесс, чем обработка
всех элементов совместно.
В [1] показано, что желательная размерность одного кластера равна 7 ± 2 элементам. Такое разбиение позволяет достичь оптимального
оценивания альтернатив, уменьшая при этом количество попарных сравнений.
Следовательно, несущественно, думаем ли мы, что иерархии внутренне присущи природе (как утверждают некоторые исследователи), или
же мы просто используем их из-за ограниченной способности обрабатывать информацию. В любом случае они представляют собой очень
эффективный способ исследования сложных проблем.
1.1.2
Расстановка приоритетов
Приоритеты — это числа, связанные с узлами иерархии, представляющие собой относительные веса элементов в каждой группе. Подобно
вероятностям, приоритеты — это безразмерные величины, принимающие
значения от нуля до единицы. Чем больше величина приоритета, тем
более значимым является соответствующий ему элемент. Сумма приоритетов элементов, которые подчинены одному элементу выше лежащего
уровня иерархии, равна единице. Приоритет цели по определению также
равен 1.
На рисунке 1.2 показан пример иерархии с вычисленными значениями веса критериев по отношению к цели, и вектора весов каждой из
10
Рис. 1.2: Иерархическая структура с некоторыми значениями приоритетов
альтернатив по данным критериям. Путем линейной свертки получены
конечные веса альтернатив по исследуемому целевому критерию. Подробнее процесс получения глобальных и локальных приоритетов будет
рассмотрен далее в этой работе.
1.2
Матрица относительных весов
В методе анализа иерархий активно используется понятие матрицы
относительных весов. Введем формальное определение такой матрицы.
Пусть задан набор из 𝑁 элементов, обозначаемых 𝐴1 , 𝐴2 , 𝐴3 , ..., 𝐴𝑛 .
Предположим, что каждому из элементов 𝐴𝑘 поставлено в соответствие
некоторое положительное число 𝑤𝑘 . Будем называть это число весом
элемента 𝐴𝑘 , 𝑘 = 1, 2, . . . , 𝑛.
11
Матрицу следущего вида:
𝑤1 /𝑤1 𝑤1 /𝑤2 . . . 𝑤1 /𝑤𝑛
𝐴 = (𝑎𝑖𝑗 )𝑛×𝑛 =
𝑤2 /𝑤1 𝑤2 /𝑤2 . . . 𝑤2 /𝑤𝑛
..
..
..
...
.
.
.
(1.1)
𝑤𝑛 /𝑤1 𝑤𝑛 /𝑤2 . . . 𝑤𝑛 /𝑤𝑛
Будем называть матрицей относительных весов.
Для этой матрицы справедливы следующие свойства:
1. Все элементы матрицы 𝐴 положительны.
2. Матрица 𝐴 обратно симметрична. То есть 𝑎𝑖𝑗 = 𝑤𝑖 /𝑤𝑗 =
1
𝑤𝑗 /𝑤𝑖
=
1/𝑎𝑗𝑖
3. Матрица 𝐴 обладает свойством совместности, а именно: 𝑎𝑖𝑘 𝑎𝑘𝑗 =
𝑤𝑖 𝑤𝑘
𝑤𝑘 𝑤𝑗
=
𝑤𝑖
𝑤𝑗
= 𝑎𝑖𝑗 .
4. Число 𝑛 является наибольшим собственным числом матрицы 𝐴, а
вектор 𝑤 = (𝑤1 , 𝑤2 , . . . , 𝑤𝑛 )𝑇 единственным (с точностью до нормировки) соответствующим ему правым собственным вектором, то
есть:
𝐴𝑤 = 𝑛𝑤
(1.2)
При таком определении матрицы 𝐴 подразумевается, что веса
𝑤1 , 𝑤2 , . . . , 𝑤𝑛 определены заранее. Однако при реализации МАИ, значения весов не известны и подлежат вычислению. Таким образом, задача анализа иерархий ставится следующим образом: для элементов
𝐴1 , 𝐴2 , . . . , 𝐴𝑛 найти вектор 𝑤1 , 𝑤2 , . . . , 𝑤𝑛 (обычно нормированный) их
весов по целевому критерию.
1.3
Анализ иерархии
В классическом МАИ на каждом уровне имеющихся иерархий требуется определить вектор приоритетов по критерию стоящему выше в
иерархии. Для каждого уровня этот процесс проходит аналогичным образом, суть которого заключается в следующем.
12
Сначала строится матрица парных сравнений:
𝑎11 𝑎12 . . . 𝑎1𝑛
𝐴 = (𝑎𝑖𝑗 )𝑛×𝑛 =
𝑎21 𝑎22 . . . 𝑎2𝑛
..
.. . . . ..
.
.
.
(1.3)
𝑎𝑛1 𝑎𝑛2 . . . 𝑎𝑛𝑛
Произвольный элемент 𝑎𝑖𝑗 представляет собой положительное число, показывающее во сколько раз элемент 𝐴𝑖 предпочтительней элемента
𝐴𝑗 по рассматриваемому критерию. Данная матрица строится на основе
экспертных оценок, являющихся качественной оценкой «предпочтительности» одного элемента над другим. В классических методах анализа
иерархий [1] вводится специальная шкала сравнений, называемая шкалой Саати (см. Рис. 1.3), описывающая правило получения значения 𝑎𝑖𝑗
на основе парного сравнения 𝐴𝑖 и 𝐴𝑗 по какому-либо критерию.
Рис. 1.3: Качественная шкала Саати
Матрица 𝐴 инициализируется за счет
𝑛(𝑛−1)
2
попарных сравнений
(остальные элементы находятся на основе свойства обратной симметричности).
13
Полученная таким образом матрица в большинстве случаев не обладает свойством совместности. Происходит это по причине того, что выставляемые оценки субъективны и выставляются приблизительно, чтобы
упростить работу экспертов.
Далее находится 𝜆𝑚𝑎𝑥 максимальное собственное число матрицы
1.3, которое, к слову, всегда > 𝑛. Затем ищется собственный вектор,
соответствующий 𝜆𝑚𝑎𝑥 , который и берется в качестве искомого вектора
приоритетов.
Основная проблема МАИ заключается в том, что зачастую 𝜆𝑚𝑎𝑥
сильно превосходит размерность матрицы 𝐴. Это приводит к несогласованности полученного вектора весов и матрицы парных сравнений, в том
смысле, что 𝑎𝑖𝑗 ̸=
𝑤𝑖
𝑤𝑗 .
Тем самым, получается своего рода «модельная»
ошибка МАИ, не позволяющая всегда получать удовлетворительные результаты.
1.4
Линейная свертка критериев
Пусть мы имеем задачу анализа иерархий с более чем одной иерархией в структуре. После получения матрицы парных сравнений и расчета вектора приоритетов по каждому из критериев, необходимо получить
вектор приоритетов рассматриваемых альтернатив по целевому критерию.
Пусть у нас есть приоритеты какой-либо альтернативы 𝑎 по каждому из критериев иерархии, к которым она принадлежит: 𝑎1 , 𝑎2 , . . . , 𝑎𝑛 .
В свою очередь, вектор весов рассматриваемых критериев по отношению к какому-либо элементу 𝐾 * из вышестоящей иерархии имеет вид:
𝑘1 , 𝑘2 , . . . , 𝑘𝑛 . Тогда вес альтернативы 𝑎 по критерию 𝐾 * будут иметь
∑︀
вид: 𝑤𝑎 = 𝑛1 𝑎𝑖 𝑘𝑖 . Производя аналогичные вычисления по отношению
к каждой имеющейся альтернативе и продвигаясь таким образом вверх
по иерархии получаем вектор приоритетов исследуемых альтернатив по
целевому критерию.
14
ГЛАВА 2
Упрощенный метод анализа иерархий
Этот метод предложен в [2] и представляет собой модификацию
МАИ, позволяющую найти конечный вектор приоритетов с использованием меньшего количества экспертных оценок. Благодаря применению
этого подхода, можно ускорить процесс принятия решения, решив при
этом проблему несогласованности матрицы 𝐴.
2.1
Требования к матрице парных сравнений
Пусть у нас есть набор из 𝑁 объектов и надо определить вес каждого из них по какому-либо критерию. Другими словами, требуется определить вектор весов: 𝑤1 , 𝑤2 , . . . , 𝑤𝑛 .
Для начала потребуем от матрицы парных сравнений выполнения
свойств (1)-(4), а именно:
1. Все элементы матрицы 𝐴 положительны: 𝑎𝑖𝑗 > 𝑛; ∀𝑖, 𝑗 = 1, 2, . . . , 𝑛.
2. Матрица 𝐴 обратно симметрична: 𝑎𝑖𝑗 = 1/𝑎𝑗𝑖 .
3. Матрица 𝐴 обладает свойством совместности: 𝑎𝑖𝑘 𝑎𝑘𝑗 = 𝑎𝑖𝑗 .
4. Число 𝑛 является наибольшим собственным числом матрицы 𝐴, а
вектор 𝑤 = (𝑤1 , 𝑤2 , . . . , 𝑤𝑛 )𝑇 единственным (с точностью до нормировки) вектором, удовлетворяющим (1.2)
Заметим, что свойство (4) является избыточным, так как справедлива следующая лемма [2]:
Лемма 1 Любая матрица 𝐴 удовлетворяющая свойствам (1)-(3), удовлетворяет и свойству (4).
15
2.2
Построение матрицы парных сравнений
Пусть в результате экспертного оценивания мы получили элементы первой строки матрицы 𝐴. При условии выполнения свойств (1)-(3),
имеют место следующие формулы:
𝑎1𝑗
, 𝑖 = 2, 3, . . . , 𝑛; 𝑗 = 1, 2, . . . , 𝑛
(2.1)
𝑎1𝑖
А значит, используя элементы 1-й строки, мы можем построить всю
𝑎𝑖𝑗 = 𝑎𝑖1 𝑎1𝑗 =
матрицу парных сравнений, которая будет обладать свойством совместности.
Справедлива следующая теорема [2]:
Теорема 2.2.1 Пусть квадратная матрица 𝐴 размерности 𝑛 удовлетворяет свойствам (1)-(2), и построена на основе элементов первой
строки в соответствии с формулой (2.1). Тогда справедливы утверждения:
1. Матрица 𝐴 обладает свойствами (3)-(4) и при этом не существует другой матрицы с такой-же первой строкой, и обладающей свойствами (3)-(4);
2. Максимальное собственное число такой матрицы 𝜆𝑚𝑎𝑥 = 𝑛
3. Собственный вектор 𝑤 этой матрицы, соответствующий максимальному собственному числу 𝑛 удовлетворяет формуле: 𝑤𝑖 =
𝑎1𝑛
𝑎1𝑖
Доказательство. Утверждения 1 и 2 доказаны в [1] и [2], покажем
справедливость 3 утверждения.
1𝑛 𝑇
Возьмем вектор 𝑤 = (𝑤1 , 𝑤2 , . . . , 𝑤𝑛 )𝑇 = ( 𝑎𝑎1𝑛
, 𝑎1𝑛 , . . . , 𝑎𝑎1𝑛
) и под11 𝑎12
ставим его в уравнение 𝐴𝑤 = 𝑛𝑤. После подстановки в левую часть
уравнения и небольшого преобразования получаем:
16
⎛
⎜
⎜
𝐴𝑤 = ⎜
⎜
⎝
𝑎11 𝑎𝑎1𝑛
11
𝑎1𝑛
𝑎21 𝑎11
+
+
𝑎12 𝑎𝑎1𝑛
12
𝑎1𝑛
𝑎22 𝑎12
..
.
+ ... +
+ ... +
1𝑛
𝑎1𝑛 𝑎𝑎1𝑛
1𝑛
𝑎2𝑛 𝑎𝑎1𝑛
1𝑛
+ 𝑎𝑛2 𝑎𝑎1𝑛
+ . . . + 𝑎𝑛𝑛 𝑎𝑎1𝑛
𝑎𝑛1 𝑎𝑎1𝑛
11
12
⎞
⎟
⎟
⎟
⎟
⎠
Если рассмотреть 𝑖-ю строку получившегося вектора, и применив свойства совместности и обратной симметричности имеем:
𝑎1𝑛
𝑎1𝑛
𝑎𝑖1 𝑎𝑎1𝑛
+
𝑎
+
.
.
.
+
𝑎
𝑖2
𝑖𝑛
𝑎
𝑎1𝑛 =
11
12
𝑎11 𝑎1𝑛
𝑎1𝑖 𝑎11
𝑎1𝑛
𝑎1𝑛 𝑎1𝑛
+ 𝑎𝑎12
+
.
.
.
+
𝑎
𝑎1𝑖 𝑎1𝑛 =
1𝑖 12
𝑎1𝑛
𝑎1𝑖
* 𝑛 = 𝑤𝑖 * 𝑛
Значит 𝑖 элемент вектора получающегося в левой части уравнения 𝐴𝑤 =
𝑛𝑤 равен 𝑖 элементу вектора стоящего справа. Это показывает справедливость (3) утверждения. Также заметим, что 𝑤𝑖 = 𝑎1𝑛 /𝑎1𝑖 = 𝑎𝑖𝑛 , а
значит искомый собственный вектор при условии выполнения условий
(1)-(2) для матрицы 𝐴 является её последним столбцом.
Данная теорема дает нам правило, по которому можно легко вычислять вектор приоритетов. Для этого требуется на основании некоторых элементов матрицы 𝐴 построить её последний столбец, при условии
выполнения условий (1)-(4).
В качестве элементов, однозначно определяющих матрицу парных
сравнений не обязательно брать только элементы первой строки. Для
того чтобы перечислить все такие наборы элементов, которые однозначно
определяют матрицу парных сравнений, введем несколько определений.
Определение 2.2.1 Набор некоторых элементов матрицы 𝐴 = (𝑎𝑖𝑗 )𝑛×𝑛
выше главной диагонали называется определяющим, если на его основе и с использованием свойств (2)-(4) можно однозначно определить все элементы матрицы 𝐴.
Определение 2.2.2 Пусть имеется некоторый набор элементов 𝑎𝑖𝑝 𝑗𝑝
матрицы 𝐴 расположенных выше главной диагонали. Если существует среди этого набора такая тройка элементов 𝑎𝑖𝑎 𝑗𝑎 , 𝑏𝑖𝑏 𝑗𝑏 , 𝑐𝑖𝑐 𝑗𝑐 , что
𝑖𝑎 = 𝑖𝑏 , 𝑗𝑎 = 𝑗𝑐 , 𝑗𝑏 = 𝑖𝑐 , то такой набор будем называть зависимым. В
противном случае, будем говорить, что такой набор является независимым.
17
Определение 2.2.3 Минимальный по числу элементов независимый
набор матрицы 𝐴 будем называть базисным.
Определение 2.2.4 Рассмотрим неориентированный граф состоящий
из 𝑛 вершин. И пусть имеется какой-либо набор элементов 𝑎𝑖𝑝 𝑗𝑝 матрицы 𝐴. Если вершины 𝑖 и 𝑗 соединены ребром в том случае, когда в
наборе 𝑎𝑖𝑝 𝑗𝑝 присутствует элемент 𝑎𝑖,𝑗 , то такой граф будем называть порожденным этим набором.
Теперь если рассмотреть неориентированный граф, построенный на
некотором наборе 𝑛 элементов матрицы 𝐴 как на матрице смежности
(присутствие в наборе элемента 𝑎𝑖𝑗 говорит о том, что вершины 𝑖 и 𝑗
соединены ребром), то можно убедиться в справедливости следующей
теоремы:
Теорема 2.2.2 Для любого набора элементов 𝑎𝑖𝑝 𝑗𝑝 , 𝑝 = 1, 2, . . . , 𝑛 матрицы 𝐴 = (𝑎𝑖𝑗 )𝑛×𝑛 расположенных выше главной диагонали, следующие высказывания эквивалентны:
1. Набор элементов 𝑎𝑖𝑝 𝑗𝑝 является базисным;
2. Набор 𝑎𝑖𝑝 𝑗𝑝 состоит из 𝑛 − 1 элемента и порожденный им граф
является связным;
3. Набор 𝑎𝑖𝑝 𝑗𝑝 состоит из 𝑛 − 1 элемента и является независимым.
Данная теорема определяет правило выбора «определяющего» базисного набора, для построения которого нам потребуется всего 𝑛 − 1
оценка эксперта. Это значительно меньше чем в обычном МАИ, в котором требуется
𝑛(𝑛−1)
2
оценок, и в то же время позволяет нам постро-
ить матрицу парных сравнений, не лишенную свойства согласованности.
К примеру, в качестве базисного набора можно взять элементы первой
строки (схема сравнения с первым элементом), элементы выше или ниже
какой-либо из диагоналей(последовательное сравнение). В принципе, в
качестве базисного набора можно брать пары наиболее удобно сравниваемых элементов. Тогда эксперты будут выставлять оценки выбирая для
18
себя те, которые проще всего определить, учитывая только выполнение
свойства базисности получаемого набора.
При реализации метода анализа иерархий в случае нескольких экспертов, выставляющих оценки независимо друг от друга, можно слегка
модифицировать исследуемый подход. Пусть каждый эксперт сравнивает
элементы на основе своего базисного набора (выбирает наиболее удобный для него набор). Затем, рассчитав вектора приоритетов на основе
данных, полученных от каждого эксперта, в качестве «окончательного»
вектора можно взять их среднее значение. Это добавит решению объективности, при этом не утруждая экспертов сильнее чем обычно.
19
ГЛАВА 3
Теория нечетких множеств
В основе теории нечетких множеств лежит предположение о том,
что произвольный элемент не обязательно может только содержаться
или отсутствовать в каком либо множестве. Могут возникать ситуации
когда вопрос принадлежности носит вероятностный характер.
Нечёткое множество — понятие, введённое Лотфи Заде в 1965 году
в статье «Fuzzy Sets» в журнале Information and Control [3], в котором
расширил классическое понятие множества, допустив, что функция принадлежности элемента множеству может принимать любые значения в
интервале [0,1], а не только значения 0 или 1.
Теории нечетких множеств и нечеткой логики позволяют расширить многие классы задач, придав им при этом более естественный характер. В дополнение к этому, во многих практических задачах могут
возникнуть ситуации, когда нельзя найти детерминированное значение
какого-либо параметра. В таком случае удобно применять механизмы
«нечетких» множеств.
3.1
Основные понятия и определения
Определение 3.1.1 Нечетким множеством 𝐴 в некотором (непустом)
пространстве 𝑋, что обозначается как 𝐴 ⊆ 𝑋 , называется множество пар
𝐴 = {(𝑥, 𝜇𝐴 (𝑥)), 𝑥 ∈ 𝑋}
(3.1)
𝜇𝐴 : 𝑋 → [0, 1]
(3.2)
где
- функция принадлежности нечеткого множества 𝐴.
Функция (3.2) приписывает каждому элементу 𝑥 ∈ 𝑋 степень его
принадлежности к нечеткому множеству 𝐴, при этом можно выделить
три случая:
20
1. 𝜇𝐴 (𝑥) = 1 означает полную принадлежность элемента 𝑥 к нечеткому множеству 𝐴, то есть 𝑥 ∈ 𝐴;
2. 𝜇𝐴 (𝑥) = 0 означает отсутствие принадлежности элемента 𝑥 к нечеткому множеству 𝐴, то есть 𝑥 ∈
/ 𝐴;
3. 0 < 𝜇𝐴 (𝑥) < 1 означает частичную принадлежность элемента 𝑥 к
нечеткому множеству 𝐴.
Заметим, что множество 𝑋 может быть как дискретным, так и
непрерывным (кусочно-непрерывным). И в том и в другом случае смысл
функции принадлежности остается тем же.
3.2
Нечеткие числа 𝐿𝑅 типа
В качестве нечетких чисел в данной работе будем использовать
числа 𝐿𝑅 типа, которые определяются следующим образом [6] :
Определение 3.2.1 Функция 𝐿 (или 𝑅) вида, это такая функция
отображающая 𝑅+ → [0, 1], для которой справедливо:
1. 𝐿(0) = 1;
2. 𝐿(0) < 1, ∀𝑥 > 0;
3. 𝐿(0) > 0, ∀𝑥 < 1;
4. 𝐿(1) = 1;
5. 𝐿 убывает на промежутке (0,1);
Определение 3.2.2 Нечеткое число 𝜉 является числом 𝐿𝑅 типа, если
существуют такие функции 𝐿 и 𝑅 вида и некоторые числа 𝛼, 𝛽, 𝑚,
такие, что;
⎧
⎨𝐿( 𝑚−𝑥 ) , 𝑥 6 𝑚
𝛼
𝜇𝜉 (𝑥) =
⎩𝑅( 𝑥−𝑚 ) , 𝑥 > 𝑚
𝛽
(3.3)
где 𝑚 - называется модой числа, а 𝛼 и 𝛽 соответственно левой и
правой границей нечеткости.
21
Определение 3.2.3 Нечеткое число 𝜉 называется интервалом 𝐿𝑅 типа, если существуют такие функции 𝐿 и 𝑅 вида и некоторые числа
𝛼, 𝛽, 𝑎, 𝑏, такие, что;
𝜇𝜉 (𝑥) =
⎧
⎪
⎪
𝐿( 𝑚−𝑥
⎪
𝛼 )
⎨
,𝑥 < 𝑎
1
,𝑎 6 𝑥 6 𝑏
⎪
⎪
⎪
⎩𝑅( 𝑥−𝑚 ) , 𝑥 > 𝑏
𝛽
(3.4)
где отрезок [𝑎, 𝑏] - называется ядром интервала, а 𝛼 и 𝛽 соответственно левой и правой границей нечеткости.
Таким образом, мы можем записать нечеткое число 𝐿𝑅 типа при
заданных 𝐿 и 𝑅 функциях как упорядоченную тройку чисел:
𝜇𝜉 (𝑥) = (𝑚, 𝛼, 𝛽)𝐿,𝑅
(3.5)
a нечеткий интервал 𝐿𝑅 типа как упорядоченную четверку чисел:
𝜇𝜉 (𝑥) = (𝑎, 𝑏, 𝛼, 𝛽)𝐿,𝑅
(3.6)
Заметим, что нечеткие числа 𝐿𝑅 типа дают вполне естественную
формализацию «неуверенной» классификации какого-либо числа. Числа,
которые мы привыкли оценивать как «число, с некоторой долей уверенности находящееся между 𝑎 и 𝑏» или «число, скорее всего равное m»
можно представить в виде ( 𝑎+𝑏
2 , 𝑎, 𝑏)𝐿,𝑅 и (𝑚, 𝛼, 𝛽)𝐿,𝑅 соответственно.
3.3
Примеры 𝐿𝑅 чисел
Внешний вид и свойства числа 𝐿𝑅 типа определяются его 𝐿 и 𝑅
функциями и их параметрами. В основном, в качестве 𝐿(𝑅) функций
используют следующие выражения:
𝑝
1. 𝑓 (𝑥) = 𝑒−|𝑥| ;
2. 𝑓 (𝑥) =
1
1+|𝑥|𝑝 ;
3. 𝑓 (𝑥) = 1 − 𝑥;
22
где 𝑝 - произвольный вещественный параметр.
При использовании таких 𝐿(𝑅) функций, графики функций принадлежности выглядят следующим образом:
Рис. 3.1: Графики функций описанных в 3.3 с параметрами 𝑝 = 2, 𝑚 =
3, 𝛼 = 2, 𝛽 = 2.
а) 1 вид
б) 2 вид
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
−4 −2 0
2
4
6
8
0
−4 −2 0
10
2
4
6
8
10
в) 3 вид
1
0.8
0.6
0.4
0.2
0
1
3.4
2
3
4
5
Операции с нечеткими числами и интервалами
Выведем теперь правила выполнения арифметических операций с
нечеткими числами [8]. Рассмотрим правые (𝑅) функции каких либо
двух нечетких чисел 𝐿𝑅 типа:
𝑥2 − 𝑚2
𝑥1 − 𝑚1
); 𝜇𝜉2 (𝑥) = 𝑅(
)
𝜇𝜉1 (𝑥) = 𝑅(
𝛽1
𝛽2
23
Заметим, что эти формулы можно переписать в следующем виде:
𝑥*1 = 𝑚1 + 𝛽1 𝑅−1 (𝜇* ); 𝑥*2 = 𝑚2 + 𝛽2 𝑅−1 (𝜇* )
Тогда для некоторого 𝑧 * справедливо:
𝑧 * = 𝑥*1 + 𝑥*2 = (𝑚1 + 𝑚2 ) + (𝛽1 + 𝛽2 )𝑅−1 (𝜇* )
откуда
𝑧 * − 𝑚3
𝜇𝑟 (𝑧 ) = 𝜇 = 𝑅(
)
𝛽3
где 𝑚3 = 𝑚1 + 𝑚2 , 𝛽3 = 𝛽1 + 𝛽2 . Проведя аналогичные рассуждения для
*
*
𝐿 функций, получаем что:
𝑧 * = 𝑥*1 + 𝑥*2 = (𝑚1 + 𝑚2 , 𝛼1 + 𝛼2 , 𝛽1 + 𝛽2 )𝐿,𝑅
(3.7)
Аналогичным образом получаем,
для вычитания:
𝑧 * = 𝑥*1 − 𝑥*2 = (𝑚1 − 𝑚2 , 𝛼1 + 𝛽2 , 𝛽1 + 𝛼2 )𝐿,𝑅
(3.8)
для умножения:
𝑧 * = 𝑥*1 * 𝑥*2 = (𝑚1 𝑚2 , 𝑚1 𝛼2 + 𝑚2 𝛼1 , 𝑚2 𝛽1 + 𝑚1 𝛽2 )𝐿,𝑅
(3.9)
для получения числа, обратного данному:
𝑧 * = 𝑧 * −1 = (1/𝑚, 𝛽/𝑚2 , 𝛼/𝑚2 )𝐿,𝑅
(3.10)
для деления двух чисел:
𝑧 * = 𝑥*1 /𝑥*2 = (
𝑚1 𝑚1 𝛽2 + 𝑚2 𝛼1 𝑚1 𝛼1 + 𝑚2 𝛽1
,
,
)𝐿,𝑅
𝑚2
𝑚22
𝑚22
(3.11)
Проведя схожие рассуждения для нечетких интервалов, можно вывести следующие формулы арифметических операций:
Сложение:
𝑧 * = 𝑥*1 + 𝑥*2 = (𝑎1 + 𝑎2 , 𝑏1 − 𝑏2 , 𝛼1 + 𝛼2 , 𝛽1 + 𝛽2 )𝐿,𝑅
(3.12)
𝑧 * = 𝑥*1 − 𝑥*2 = (𝑎1 − 𝑎2 , 𝑏1 + 𝑏2 , 𝛼1 + 𝛽2 , 𝛽1 + 𝛼2 )𝐿,𝑅
(3.13)
Вычитание:
24
Умножение:
𝑧 * = 𝑥*1 * 𝑥*2 = (𝑎1 𝑎2 , 𝑏1 𝑏2 , 𝑎1 𝛼2 + 𝑎2 𝛼1 , 𝑏1 𝛽2 + 𝑏2 𝛽1 )𝐿,𝑅
(3.14)
Деление:
𝑧 * = 𝑥*1 /𝑥*2 = (
3.5
𝑎1 𝑏1 𝑎1 𝛽2 + 𝑏2 𝛼1 𝑏1 𝛼2 + 𝑎2 𝛽1
, ,
,
)𝐿,𝑅
𝑏 2 𝑎2
𝑏22
𝑎22
(3.15)
Дефаззификация
Дефаззификацией называется процесс приведения нечеткого числа
к его вещественной интерпретации. В теории нечётких множеств дефаззификация аналогична нахождению характеристик положения случайных величин (математического ожидания, моды, медианы) в теории вероятности. Простейшим способом дефаззификации является выбор чёткого числа с максимальной степенью принадлежности. Более сложные
методы основываются на идее поиска точки сгущения (центра масс) области, расположенной между графиком функции принадлежности и осью
абсцисс. Это делается с целью «усреднить» возможные принимаемые
нечетким числом значения, с учетом соответствующих им степеней принадлежности.
Рассмотрим два наиболее часто используемых метода:
1. Метод центра масс:
∫︀ 𝑚𝑎𝑥
𝑢𝜇𝜉 (𝑢)𝑑𝑢
,
𝑎𝑟 = ∫︀𝑚𝑖𝑛
𝑚𝑎𝑥
𝜇
(𝑢)𝑑𝑢
𝜉
𝑚𝑖𝑛
(3.16)
2. Метод медианы:
∫︁
𝑎𝑟
𝑎𝑟 :
∫︁
𝑚𝑎𝑥
𝜇𝜉 (𝑢)𝑑𝑢 =
𝑚𝑖𝑛
𝜇𝜉 (𝑢)𝑑𝑢,
(3.17)
𝑎𝑟
Где 𝑚𝑖𝑛, 𝑚𝑎𝑥 - минимальные и максимальные «значимые» границы области значений для функции принадлежности. Выбираются они произвольно, в зависимости от требуемой точности вычислений и вида графика
функции принадлежности нечеткого числа.
25
Пример:
Пусть мы имеем нечеткое число 𝐿𝑅 типа, с функцией принадлежности вида:
⎧
2
⎨𝑒−|( 3−𝑥
2 )|
𝜇𝜉 (𝑥) =
2
⎩𝑒−|( 𝑥−3
4 )|
,𝑥 < 3
,𝑥 ≥ 3
График этой функции представлен на рисунке 3.2 Такое нечеткое мноРис. 3.2: Пример нечеткого числа.
1
0.8
0.6
0.4
0.2
0
−4 −2 0
2
4
6
8
10
жество можно описать как «почти 3». Рассмотрим результаты его дефаззификации предложенными ранее методами:
1. Метод центра масс: 𝑎𝑟 = 3.9458,
2. Метод медианы: 𝑎𝑟 = 3.8764,
Как видно из примера, за счет 𝑅 функции, график 𝜇𝜉 (𝑥) после точки 𝑥 =
3 убывает медленнее, чем до неё. За счет этого, большая часть площади
фигуры заключенной между 𝜇𝜉 (𝑥) и осью абсцисс, расположена правее
точки 𝑥 = 3. Это привело к тому, что значение после дефаззификации
также сместилось в правую сторону от 𝑥 = 3.
26
ГЛАВА 4
Упрощенный вариант метода анализа иерархий в условиях
нечетких данных
В идее этого метода лежит применение теории нечетких множеств
к построению экспертных оценок. Так как оценки экспертов по своей
сути носят субъективный характер, причем зачастую не всегда точно
определенный (эксперт может сомневаться в выставленной им оценке).
То, чтобы снизить влияние человеческой ошибки, и позволить эксперту
оперировать не только точными оценками, но и «интервалами» оценивания, оправдано будет использовать результаты теории нечетких множеств. Опираясь на «нечеткие» данные, мы построим нечеткий вектор
весов Ψ = (𝜓1 , 𝜓2 , . . . , 𝜓𝑛 ), произведем его дефаззификацию и нормировку.
4.1
Экспертные оценки
Согласно упрощенному МАИ, для решения поставленной задачи
нам достаточно всего (𝑛 − 1) экспертной оценок, представляющих собой базисный набор элементов матрицы 𝐴. Выбрав базисный набор (все
элементы из любой строки или столбца, элементы выше главной диагонали и т.д.) появляется задача оптимального в рамках текущей задачи
выбора метода оценивания. С учетом инструментов нечеткой логики и
классического МАИ мы имеем следующие возможности:
1. Фаззификация имеющихся оценок. В таком случае оценки можно
выставлять в соответствии с классическим МАИ, но в таком случае требуется только добавить «уровни доверия» этой оценке. Эти
уровни в дальнейшем следует использовать как левую и правую
границу нечеткости для оценок. В качестве медианы использовать
само значение оценки выставленное экспертом. Такой подход позволит снизить влияние субъективности, оставляя экспертов в условиях классического МАИ. Шкалу Саати в таком случае предлагается понимать не как дискретную, а как непрерывную. К тому же
27
Таблица 4.1: Примеры оценок экспертов
Оценка эксперта
Нечеткое значение
Практически равны
(1/2, 1, 2)
Приблизительно в 𝑛 раз более предпочтительно (𝑛 − 1, 𝑛, 𝑛 + 1)
Приблизительно в 𝑛 раз менее предпочтительно (1/(𝑛 + 1), 1/𝑛, 1/(𝑛 − 1))
Между 𝑘 и 𝑛 раз более предпочтительно
(𝑘, (𝑘 + 𝑛)/2, 𝑛)
Между 𝑘 и 𝑛 раз менее предпочтительно
(1/𝑛, 2/(𝑘 + 𝑛), 1/𝑘)
допустимо использовать любую количественную шкалу. Или можно использовать некоторую «интервальную» оценку, когда эксперт
выбирает между какими значениями скорее всего лежит точная
оценка. Примеры возможных оценок приведены в таблице 4.1.
2. Нечеткая дискретизация оценки. В этом случае предлагаем использовать в качестве отправного вектора оценок дискретную шкалу Саати. От эксперта же требуется выставить для каждой оценки
из шкалы её значение функции принадлежности - вещественное
число от 0 до 1. К примеру, это может выглядеть следущим оразом:
𝑎𝑖𝑗 =
1 2
3
4
5
6
7
8 9
0 0 0.05 0.2 0.8 0.2 0.05 0 0
В таком случае, мы сможем учесть возможность сомнения эксперта
в выставленной оценке.
3. Нечеткий интервал оценки. Такой подход имеет в основе размышление вида: «эта оценка лежит в интервале от 𝑎 до 𝑏 с уровнями
доверия 𝛼 и 𝛽». От эксперта в таком случае требуется определить,
в каком диапазоне лежит по его ощущениям текущая оценка и
какова его уверенность в этом. Такой подход позволить снизить
субъективность, и дать больше простора выбора эксперту. Границы
диапазона предлагается использовать как в шкале Саати. И как и
в первом случае, можно вместо шкалы Саати использовать любую
количественную шкалу.
28
В первом и в третьем случае мы получаем нечеткое число и интервал
𝐿𝑅 типа соответственно. Во втором случае мы получаем классическое
дискретное нечеткое множество. Так как, по сути, первый и третий варианты являются непрерывным аналогом второго, позволяющим упростить
процесс выполнения арифметических операций, то в данной работе мы
будем рассматривать только первый и третий вариант.
4.2
Построение вектора весов
Используя результаты второй и третьей главы, опишем алгоритм
построения искомого вектора весов. Требуется на основе какого либо
набора элементов матрицы оценок 𝐴 определить, является ли он базисным, и в случае базисности, посчитать на его основе нечеткий вектор
весов. Данный алгоритм лежит в основе программной реализации, поэтому опишем его подробнее.
Пусть мы имеем некоторый набор экспертных оценок 𝑎𝑖𝑝 𝑗𝑝 . Проверим этот набор на базисность. Это можно сделать простым перебором
всех возможных троек элементов, и проверкой их на независимость согласно определению 2.2.2. С другой стороны, это можно проверить за
один проход по всем элементам массива. Чтобы показать это, введем понятие «запрещенных» индексов - индексов, которые при появлении среди
𝑖𝑝 или 𝑗𝑝 в нашем наборе делают его связным. Теперь, пусть мы идем
перебором по элементам набора. Если какой-то индекс строки (столбца)
встречается более чем один раз, то этот индекс становится «запрещенным» для появления среди номеров столбцов (строк) в наборе. Ведь в
противном случае появляется зависимая тройка элементов. Таким образом, перебирая элементы и запоминая «запрещенные» мы сможем проверить базисность за 𝑂(𝑛) действий.
Теперь, имея базисный набор, нам необходимо построить вектор
«нечетких» весов. Для удобства дальнейших рассуждений, сформулируем теорему:
Теорема 4.2.1 Любую компоненту вектора приоритетов можно по29
лучить как произведение не более чем 𝑛 − 1 элемента базисного набора.
Доказательство. Сначала вспомним, что подразумевается под графом
порожденным матрицей смежности. Пусть мы имеем матрицу 𝑛 × 𝑛 и
граф из 𝑛 вершин, пронумерованных от 1 до 𝑛. Вершины 𝑖 и 𝑗 соединены ребром, если элемент матрицы 𝑎𝑖𝑗 или 𝑎𝑗𝑖 отличен от нуля. Причем
такой граф будем считать неориентированным. Согласно теореме 2.2.2,
граф, порожденный нашим набором должен быть связным и без циклов.
Тогда из вершины с номером 𝑛 выходит как минимум 1 ребро (иначе нарушится связность). Также, благодаря связности графа мы из вершины
𝑛 можем попасть в любую из оставшихся не более чем за 𝑛 − 1 шагов.
Пусть из вершины 𝑛 выходит только одно ребро и соединяет оно
с вершиной 𝑖. Та, в свою очередь, соединена с вершиной 𝑗. Значит в
наборе присутствует 2 элемента: 𝑎𝑖𝑛 и 𝑎𝑗𝑖 (порядок индексов не важен,
так как благодаря свойству симметричности матрицы 𝐴: 𝑎𝑖𝑛 = 1/𝑎𝑛𝑖 ). На
основе свойства совместности имеем: 𝑎𝑗𝑛 = 𝑎𝑗𝑖 * 𝑎𝑖𝑛 . Так как из вершины
𝑗 или 𝑖 выходит еще минимум 1 ребро, аналогичным образом получаем
некоторый элемент 𝑎𝑘𝑛 . Проходя таким образом по графу в глубину (максимальная глубина этого графа = 𝑛 − 1), мы последовательно получаем
все элементы вида 𝑎*𝑛 в виде произведения элементов соответствующих
ребрам, по которым мы проходим. Эти элементы являются компонентами
последнего вектора матрицы 𝐴, и согласно теореме 2.2.1 этот вектор и
будет искомым вектором весов.
Если из вершины с номером 𝑛 выходит более одного ребра, то рассмотрев аналогично предыдущему случаю каждую из ветвей выходящих
из неё, также получим все элементы последнего вектора.
К примеру, пусть мы имеем следующий базисный набор:
1 + * * * *
* 1 * + * *
𝑎𝑖𝑗 =
* * 1 * + *
* * * 1 * +
* * * * 1 +
* * * * * 1
30
Здесь * - элементы, не входящие в набор, + - входящие, а 1 - элементы
на главной диагонали. Тогда граф, порожденный этим набором будет
выглядеть как показано на Рис. 4.1.
Рис. 4.1: Граф, порожденный базисным набором.
4.3
Дефаззификация
Найденный вектор весов представляет собой вектор нечетких чисел выбранного нами вида. Для завершения вычислений необходимо его
дефаззифицировать. Сделать это можно любым их предложенных ранее
способов. Для программной реализации реализованы несколько численных методов интегрирования (метод прямоугольников, метод трапеций и
метод Симпсона). Но применимы в данном случае любые более удобные
или более предпочтительные методы. После дефаззификации и нормировки полученных значений мы получаем искомый вектор весов.
31
ГЛАВА 5
Анализ результатов
Предложенный в данной работе подход будем сравнивать с различными уже существующими вариациями МАИ. В качестве исходных
данных будем использовать пример, описанный в [14]. Методы используемые для сравнения:
1. Классический МАИ
2. Упрощенный МАИ
3. Классический МАИ с применением теории нечетких множеств
4. Предложенный нами метод.
5.1
Подготовка данных
Чтобы провести анализ и сравнение методов, надо их поместить в
равные условия. Для этого мы возьмем данные из статей [14] и [9]. В
этих работах рассмотрен один и тот же прикладной пример метода анализа иерархий. С единственным отличием в том, что в [9] используются
нечеткие экспертные оценки, а в [14] классический МАИ. Для использования упрощенных вариаций МАИ, в первоначальном сравнении мы
будем использовать схему «сравнения с первым». Далее сравним результаты, получаемые при использовании различных базисных наборов и при
их комбинировании.
5.2
Проблема водного хозяйства в Китае
Для реализации примера, будет использоваться задача оптимального распределению инвестиций правительства в развитие водных бассейнов Китая. В качестве одной из инфраструктурных отраслей народного
хозяйства, водное хозяйство играет большую роль для его устойчивого
развития. Основные проекты развития водного хозяйства включают:
32
∙ Проекты водных резервуаров
∙ Ирригационные проекты
∙ Проект предотвращения и борьбы с наводнениями
∙ Проект контроля заболачиваемости
∙ Проект водоснабжения
∙ Гидроэнергетические проекты
∙ Проект сохранения воды и почв
Таким образом, мы можем видеть, что функции и цели охраны
природы связаны с водными ресурсами, и это является важной составляющей для гарантии сохранения экономического развития и улучшения
качества жизни людей.
В социально-экономическом развитии Китая в течение последних
шестидесяти лет защита водного хозяйства играет большую роль для его
охраны и защиты ресурсов, социальной стабильности и экосистемы. Проеты охраны водных ресурсов направлены на благо общества, и зачастую
являются долгосрочными. То есть, большие объемы инвестиций производятся в одно время, а окупаемость капиталовложений проходит, как
правило, долго. Такие проекты, обычно, мало интересует частных инвесторов. Следовательно, большая часть инвестиций в развитие водного
хозяйства и капитального строительства происходит от правительства.
Существует много других областей, заслуживающих не меньшего
количества инвестиций от правительства (например такие как образование). А количество выделемых на такие проекты денег ограничено,
чтобы не затормозить развитие национальной экономики. Поэтому необходимо найти наиболее эффективный способ выделить проекты развития
водного хозяйства среди различных областей.
Таким образом, главным целевым критерием является разумное
распределение инвестиций. Критериями первого уровня будут описанные ранее проекты развития водного хозяйства. Ну а сравниваемыми
33
Рис. 5.1: Водные бассейны китая.
альтернативами будут самые крупные водные бассейны Китая (см. Рис.
5.1). Визуально данная система иерархий представлена на рис. 5.2
Рис. 5.2: Иерархия распределения инвестиций.
5.3
Результаты работы различных методов
Рассмотрим теперь результаты, полученные при реализации четырех различных модификаций метода анализа иерархий. Далее будут использоваться сокращения: МАИ - метод анализа иерархий, УМАИ 34
упрощенный метод анализа иерархий, НМАИ - метод анализа иерархий с применением теории нечетких множеств, УНМАИ - упрощенный
метод анализа иерархий с применением теории нечетких множеств.
Таблица 5.1: Вектор приоритетов для проектов охраны водных ресурсов
Приоритеты проектов
МАИ
УМАИ НМАИ НУМАИ
Проекты водных резервуаров
0,1302 0,1130
0,1217
0,1167
Ирригационные проекты
0,0524 0,0452
0,0852
0,0472
Проект предотвращения и борьбы с наводнениями 0,3798 0,3767
0,3895
0,3851
Проект контроля заболачиваемости
0,0524 0,0576
0,0568
0,0372
Проект водоснабжения
0,2668 0,2925
0,2191
0,2877
Гидроэнергетические проекты
0,0343 0,0382
0,0426
0,0340
Проект сохранения воды и почв
0,0843 0,0765
0,0852
0,0918
Таблица 5.2: Вектор приоритетов водных бассейнов по критерию проектов водных
резервуаров
Проекты водных резервуаров
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,4012 0,4631
0,4487
0,3754
Хуанхэ
0,0585 0,0771
0,0851
0,0951
Хайхэ и Луаньхэ
0,0264 0,0578
0,0638
0,0509
Ляохэ и Сон
0,2216 0,1323
0,1702
0,2228
Внутренние воды
0,0973 0,0926
0,0774
0,1023
Хуайхэ
0,0973 0,0842
0,0774
0,0935
Чжуцзян
0,0973 0,0926
0,0774
0,0597
Таблица 5.3: Вектор приоритетов водных бассейнов по критерию ирригационных
проектов
Ирригационные проекты
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,0648 0,0601
0,0938
0,0471
Хуанхэ
0,3105 0,2706
0,3343
0,3067
Хайхэ и Луаньхэ
0,1416 0,1806
0,1290
0,1818
Ляохэ и Сон
0,0942 0,0802
0,0909
0,1250
Внутренние воды
0,2149 0,2106
0,1935
0,1967
Хуайхэ
0,1416 0,1806
0,1232
0,1318
Чжуцзян
0,0321 0,0171
0,0352
0,0105
35
Таблица 5.4: Вектор приоритетов водных бассейнов по критерию проекта предотвращения и борьбы с наводнениями
Проект предотвращения и борьбы с наводнениями МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,3678 0,3967
0,3399
0,3829
Хуанхэ
0,1023 0,0793
0,1034
0,0883
Хайхэ и Луаньхэ
0,0375 0,0566
0,0443
0,0448
Ляохэ и Сон
0,1574 0,1586
0,2069
0,1978
Внутренние воды
0,0202 0,0440
0,0296
0,0292
Хуайхэ
0,1574 0,1322
0,1379
0,1365
Чжуцзян
0,1574 0,1322
0,1379
0,1202
Таблица 5.5: Вектор приоритетов водных бассейнов по критерию проекта контроля
заболачиваемости
Проект контроля заболачиваемости
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,3337 0,3327
0,2883
0,3266
Хуанхэ
0,0421 0,0532
0,0499
0,0478
Хайхэ и Луаньхэ
0,0421 0,0532
0,0499
0,0478
Ляохэ и Сон
0,1624 0,1365
0,1163
0,1773
Внутренние воды
0,0212 0,0414
0,0253
0,0316
Хуайхэ
0,2358 0,2485
0,3540
0,2511
Чжуцзян
0,1624 0,1242
0,1163
0,1176
Таблица 5.6: Вектор приоритетов водных бассейнов по критерию проекта водоснабжения
Проект водоснабжения
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,0436 0,0416
0,0815
0,0299
Хуанхэ
0,2080 0,1667
0,2060
0,1864
Хайхэ и Луаньхэ
0,3051 0,3096
0,3090
0,2922
Ляохэ и Сон
0,1331 0,1467
0,1202
0,1464
Внутренние воды
0,1331 0,1467
0,1202
0,1464
Хуайхэ
0,1331 0,1467
0,1202
0,1464
Чжуцзян
0,0436 0,0416
0,0429
0,0319
36
Таблица 5.7: Вектор приоритетов водных бассейнов по критерию гидроэнергетических проектов
Гидроэнергетические проекты
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,4517 0,4442
0,4590
0,4351
Хуанхэ
0,0798 0,0807
0,0920
0,0945
Хайхэ и Луаньхэ
0,0300 0,0538
0,0462
0,0529
Ляохэ и Сон
0,1149 0,0968
0,1104
0,1227
Внутренние воды
0,0300 0,0538
0,0407
0,0529
Хуайхэ
0,0564 0,0691
0,0678
0,0758
Чжуцзян
0,2367 0,2014
0,1840
0,1657
Таблица 5.8: Вектор приоритетов водных бассейнов по критерию проекта сохранения
воды и почв
Проект сохранения воды и почв
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,2409 0,2571
0,2466
0,2275
Хуанхэ
0,3377 0,3673
0,3699
0,3539
Хайхэ и Луаньхэ
0,1693 0,1285
0,1438
0,1444
Ляохэ и Сон
0,0481 0,0571
0,0514
0,0634
Внутренние воды
0,0777 0,0734
0,0685
0,0766
Хуайхэ
0,0777 0,0734
0,0685
0,0766
Чжуцзян
0,0481 0,0435
0,0428
0,0473
5.4
Сравнение и анализ методов
Рассмотрим теперь окончательный вектор приоритетов для сравниваемых водных бассейнов по критерию количества требуемых инвестиций. Как получить этот вектор посредством линейной свертки описано
в первой главе данной работы. На основе данных из таблиц 5.1 - 5.8 получаем конечные вектора приоритетов по целевому критерию (Таблица
5.9).
Как видно из Таблицы 5.9, окончательный вектор приоритетов в
каждой из реализаций выглядит примерно одинаково. Для большей наглядности визуализируем эти вектора в качестве круговой диаграммы
(Рис. 5.3).
В данном примере, в качестве независимого набора были выбраны элементы первой строки. А нечеткие оценки экспертов выставлялись
37
Таблица 5.9: Вектор приоритетов водных бассейнов по целевому критерию
Значимость для инвестиций
МАИ
УМАИ НМАИ НУМАИ
Янцзы
0,2474 0,2520
0,2698
0,2303
Хуанхэ
0,1550 0,1255
0,1625
0,1365
Хайхэ и Луаньхэ
0,1275 0,1404
0,1208
0,1337
Ляохэ и Сон
0,1474 0,1301
0,1511
0,1596
Внутренние воды
0,0775 0,0886
0,0728
0,0854
Хуайхэ
0,1389 0,1400
0,1288
0,1406
Чжуцзян
0,1060 0,0735
0,0944
0,1063
Рис. 5.3: Круговая диаграмма векторов приоритетов.
38
следующим образом: оценка из классического МАИ бралась в качестве
медианы 𝑚 нечеткого числа, а левая и правая граница брались равными
𝑚 − 1 и 𝑚 + 1 соответственно. В качестве функций 𝐿𝑅 типа использовалась функция: 𝑓 (𝑥) =
1
1+|𝑥|𝑝 .
Дефаззификация производилась по правилу
центра масс.
Примем классический МАИ в качестве «эталонного» метода. Рассмотрим максимальное и среднее отклонение сравниваемых подходов.
Результаты этого сравнения представлены в Таблице 5.10.
Таблица 5.10: Отклонения модификаций МАИ от «эталонного» метода. МО и МО%
- это максимальные отклонения (в обычном виде и процентном соотношении). СО и
СО% - средние отклонения.
Метод
МО
МО% СО
СО%
УМАИ
0,0325 30,66 0,0155 12,65
НМАИ
0,0224 10,94 0,0095 7,11
НУМАИ
0,0185 11,94 0,0091 6,24
Как видно из Таблицы 5.10, наиболее близкими к МАИ оказались
методы НМАИ и НУМАИ. В тоже время, УМАИ, оказавшись методом,
наиболее отличным от МАИ в результатах, тоже дает вполне применимые на практике данные. На круговых диаграммах видно, что несмотря
на различия в векторах приоритетов, в целом распределение весов вышло очень похожим.
Справедливо будет заметить, что брать в качестве «эталона» классический МАИ не совсем корректно, так в большинстве случаев имеется расхождение результатов, полученных с помощью МАИ, и реальных
данных. Методы анализа иерархий применяются в задачах, когда хочется избежать расчетов реальных зависимостей альтернатив, или же когда
«предпочтительность» одного элемента над другим точно не измерима.
Из-за этого, данные получаемые с помощью МАИ носят приблизительный и субъективный характер. А при наличии большой «модельной»
ошибки МАИ и вовсе становится неприменимым.
За счет этих замечаний становится ясно, что главная задача какойлибо модификации метода анализа иерархий состоит не в том, чтобы
максимально приблизиться по результатам к классической его вариации.
39
Основным критерием является приемлемое отображение действительности.
Основная проблема МАИ заключается в невыполнении свойства
согласованности для матрицы парных сравнений. За счет этого, если
максимальное собственное число сильно превышает значение размерности матрицы сравнений, то полученные в итоге результаты нельзя назвать приемлемыми. С другой стороны, УМАИ и НУМАИ основываются
на полностью согласованной матрице парных сравнений, что избавляет
их от этой проблемы. И корректность результатов в таком случае полностью зависит от адекватности выставляемых экспертами оценок.
Также стоит отметить, что упрощенные вариации МАИ позволяют
проводить исследования в условиях, отличных от классического метода.
За счет меньшего числа требуемых оценок, мы можем реализовать анализ иерархий с использованием различных базисных наборов, а затем
усреднить полученные при этом результаты. Эксперты при этом должны
будут выставить свои оценки в соответствии с каждым применяемым набором. Или же, упрощенный анализ иерархий можно реализовать таким
образом, чтобы эксперты сами выбирали себе удобный для них набор
базисных элементов.
Помимо не меньшей адекватности получаемых результатов, каждая
из модификаций позволять избавиться от некоторых недостатков МАИ:
1. УМАИ - Существенно снижает количество производимых вычислений. В то же время требует уделения большего внимания к выставляемым экспертным оценкам.
2. НМАИ - Позволяет ставить экспертам их оценки более свободно, избавляя от необходимости выбора какого-либо конкретного
значения. В тоже время увеличивается количество производимых
вычислений.
3. НУМАИ - Является объединением предыдущих двух модификаций, позволяющая при меньшем количестве «нечетких» оценок получать результаты, не хуже чем в классическом МАИ.
40
ЗАКЛЮЧЕНИЕ
В данной работе были рассмотрены некоторые существующие модификации метода анализа иерархий, а именно:
1. Классический метод анализа иерархий.
2. Упрощенный метод анализа иерархий.
3. Метод анализа иерархий с применением теории нечетких множеств.
Также предложен новый подход, являющийся объединением 2 и
3 методов. Для упрощения реализации данного метода было доказано
несколько утверждений.
В ходе работы показано, что новая методика ничем не уступает
уже существующим, а в некоторых аспектах и превосходящая их. В
частности, все четыре метода были реализованы для реально существующего, актуального примера, и произведен их сравнительный анализ.
Проведенный анализ наглядно показал применимость всех четырех методов, и аналогичность результатов, получаемых при их реализации на
одинаковых данных.
Для изучения предлагаемого нового подхода сделана его компьютерная реализация на языке C#. Исходных код основных компонентов
написанной программы можно найти в приложении к данной работе.
41
СПИСОК ЛИТЕРАТУРЫ
1. Саати Т. Л. Принятие решений. Метод анализа иерархий. — М.:
Радио и связь, 1989. — 316 с.
2. Ногин В.Д. Упрощенный вариант метода анализа иерархий на основе нелинейной свертки критериев// ЖВМиМФ, 2004, т. 44, №
7, С. 1259-1268.
3. Заде Л. Понятие лингвистической переменной и его применение к
принятию приближенных решений. — М.: Мир, 1976. — 166 с.
4. Кофман А. Введение в теорию нечетких множеств. — М.: Радио и
связь, 1982. — 432 с.
5. Saaty T.L. An eigenvalue allocation model for prioritization and planning//
Energy Management and Policy Center, Univercity of Pennsylvania,
1972
6. D. Dubois and P. Prade. Operations on fuzzy numbers. International
Journal of Systems Science, 9(6):613–626, 1978. – 56 с.
7. D. Dubois and P. Prade. The mean value of a fuzzy number. Fuzzy
Sets and Systems, 320 24(3):279–300, 1987.
8. A. Alim, F. T. Johora, S. Babu, A. Sultana Elementary Operations on
L-R Fuzzy Number. Advances in Pure Mathematics, Vol.05 No.03(2015)
9. Bin Zhu, Zeshui Xu. Analytic hierarchy process-hesitant group decision
making. European Journal of Operational Research 239 (2014) 794–801
10. M. B. Javanbarg, C. Scawthorn, J. Kiyono, B. Shahbodaghkhan Fuzzy
AHP-based multicriteria decision making systems using particle swarm
optimization. Expert Systems with Applications 39 (2012) 960–966
42
11. Леоненков А. В. Нечеткое моделирование в среде MATLAB и fuzzyTECH.
– СПб.: БХВ Петербурr, 2005. 736 с.
12. Нечеткие множества в моделях управления и искусственного интеллекта/Под ред. Д. А. Поспелова.— М.: Наука. Гл. ред. физ.-мат.
лит., 1986.— 312 с
13. M. B. Ayhana. Fuzzy AHP Approach for supplier selection problem: a
case study in a gearmotor company. International Journal of Managing
Value and Supply Chains (IJMVSC) Vol.4, No. 3, September 2013
14. H. Zhang. The Analysis of the Reasonable Structure of Water Conservancy
Investment of Capital Construction in China by AHP Method. Water
Resour Manage (2009) 23:1–18
15. Харари Ф. Теория графов. - М.: Мир, 1973.
43
ПРИЛОЖЕНИЕ
Листинг 5.1: Класс нечетких чисел
1
p u b l i c c l a s s FuzzyNumber
2
{
3
p u b l i c double a ;
4
p u b l i c double a l p h a ;
5
p u b l i c double b e t a ;
6
7
8
p u b l i c FuzzyNumber ( double a1 , double a l p h a 1 , double b e t a 1 )
9
{
10
a = a1 ;
11
alpha = alpha1 ;
12
beta = beta1 ;
13
}
14
15
16
p u b l i c s t a t i c FuzzyNumber o p e r a t o r +( FuzzyNumber f 1 ,
FuzzyNumber f 2 ) =>
17
new FuzzyNumber ( f 1 . a + f 2 . a , f 1 . a l p h a + f 2 . a l p h a , f 1 . b e t a + f 2 .
beta ) ;
18
19
p u b l i c s t a t i c FuzzyNumber o p e r a t o r −(FuzzyNumber f 1 ,
FuzzyNumber f 2 ) =>
20
new FuzzyNumber ( f 1 . a − f 2 . a , f 1 . a l p h a + f 2 . beta , f 1 . b e t a + f 2 .
alpha ) ;
21
22
p u b l i c s t a t i c FuzzyNumber o p e r a t o r * ( FuzzyNumber f 1 ,
FuzzyNumber f 2 ) =>
23
new FuzzyNumber ( f 1 . a * f 2 . a , f 1 . a * f 2 . a l p h a + f 2 . a * f 1 . a l p h a ,
f1 . a * f2 . beta + f2 . a * f1 . beta ) ;
24
25
p u b l i c s t a t i c FuzzyNumber o p e r a t o r /( FuzzyNumber f 1 ,
FuzzyNumber f 2 ) =>
26
new FuzzyNumber ( f 1 . a / f 2 . a , ( f 1 . a * f 2 . b e t a + f 2 . a * f 1 . a l p h a )
/ Math . Pow ( f 2 . a , 2 ) , ( f 1 . a * f 1 . a l p h a + f 2 . a * f 1 . b e t a ) /
44
Math . Pow ( f 2 . a , 2 ) ) ;
27
28
p u b l i c o v e r r i d e s t r i n g T o S t r i n g ( ) => $ " ( { t h i s . a l p h a } , { t h i s . a }
, { t h i s . beta } ) " ;
Листинг 5.2: Класс для анализа иерархий
1
p a r t i a l c l a s s Program
2
{
3
p u b l i c s t a t i c b o o l C h e c k B a s i c s ( double [ , ] m a t r i x )
4
{
5
L i s t <i n t > l e f t G o o d = new L i s t <i n t > { } ;
6
L i s t <i n t > r i g h t G o o d = new L i s t <i n t > { } ;
7
L i s t <i n t > l e f t B a d = new L i s t <i n t > { } ;
8
L i s t <i n t > r i g h t B a d = new L i s t <i n t > { } ;
9
b o o l Checker = f a l s e ;
10
int i1 , j1 ;
11
f o r ( i n t i = 0 ; i < m a t r i x . GetLengt h ( 0 ) ; i ++)
12
{
13
f o r ( i n t j = i +1; j < m a t r i x . GetLengt h ( 0 ) ; j ++)
14
{
15
i f ( m a t r i x [ i , j ] != 0 )
16
{
17
i 1 = leftGood . IndexOf ( i ) ;
18
j 1 = rightGood . IndexOf ( j ) ;
19
i f ( i 1 != −1)
20
{
21
i f ( l e f t B a d . C o n t a i n s ( i ) ) { Checker = t r u e ; }
22
r i g h t B a d . Add ( j ) ;
23
r i g h t B a d . Add ( r i g h t G o o d [ i 1 ] ) ;
24
l e f t G o o d . Add ( i ) ;
25
}
26
e l s e { l e f t G o o d . Add ( i ) ; }
27
i f ( j 1 != −1)
28
{
29
i f ( r i g h t B a d . C o n t a i n s ( j ) ) { Checker = t r u e ; }
30
l e f t B a d . Add ( i ) ;
31
l e f t B a d . Add ( l e f t G o o d [ j 1 ] ) ;
32
r i g h t G o o d . Add ( j ) ;
33
}
34
e l s e { r i g h t G o o d . Add ( j ) ; }
45
}
35
}
36
37
}
38
r e t u r n Checker ;
39
}
40
p u b l i c s t a t i c void R e c u r s i v e F i l l ( r e f FuzzyNumber [ , ] m a t r i x ,
i n t i n d e x 1 , i n t i n d e x 2 , FuzzyNumber v a l u e )
41
{
42
L i s t <i n t > N e x t L e f t E l e m = new L i s t <i n t > { } ;
43
L i s t <i n t > N e x t R i g h t E l e m = new L i s t <i n t > { } ;
44
i n t k = L e f t I n d e x e s . IndexOf ( index2 , 0) ;
45
w h i l e ( k != −1)
46
{
47
i f ( k != −1)
48
i f ( R i g h t I n d e x e s [ k ] != i n d e x 1 )
49
{ N e x t L e f t E l e m . Add ( R i g h t I n d e x e s [ k ] ) ; L e f t I n d e x e s .
RemoveAt ( k ) ; R i g h t I n d e x e s . RemoveAt ( k ) ; }
k = L e f t I n d e x e s . IndexOf ( index2 , k ) ;
50
51
}
52
k = R i g h t I n d e x e s . IndexOf ( index2 , 0) ;
53
w h i l e ( k != −1)
54
{
55
i f ( k != −1)
56
i f ( L e f t I n d e x e s [ k ] != i n d e x 1 )
57
{ N e x t R i g h t E l e m . Add ( L e f t I n d e x e s [ k ] ) ; L e f t I n d e x e s .
RemoveAt ( k ) ; R i g h t I n d e x e s . RemoveAt ( k ) ; }
k = R i g h t I n d e x e s . IndexOf ( index2 , k ) ;
58
59
}
60
m a t r i x [ i n d e x 2 , a r r a y . GetLe ngth ( 0 ) −1] = v a l u e ;
61
i f ( N e x t R i g h t E l e m . Count != 0 )
62
{
63
foreach ( int i i n NextRightElem )
64
{
R e c u r s i v e F i l l ( r e f array , index2 , i , m a t r i x [ i , index2 ]
65
* value ) ;
}
66
67
}
68
i f ( N e x t L e f t E l e m . Count != 0 )
69
{
70
foreach ( int i i n NextLeftElem )
46
{
71
R e c u r s i v e F i l l ( r e f array , index2 , i , v a l u e / m a t r i x [
72
index2 , i ] ) ;
}
73
}
74
}
75
}
76
Листинг 5.3: Простая реализация интегрирования
1
p u b l i c d e l e g a t e double F u n c t i o n ( double x , FuzzyNumber y ) ;
2
class Integrate
3
{
4
p u b l i c s t a t i c double i n t e g r a t e ( F u n c t i o n f u n c , double l e f t ,
double r i g h t , FuzzyNumber f )
5
{
6
double I = 0 ;
7
double s t e p = ( r i g h t − l e f t ) / 2000;
8
f o r ( double a = l e f t ; a <= r i g h t ; a = a + s t e p )
9
{
10
I = I + ( ( f u n c ( a , f ) + f u n c ( a + step , f ) ) / 2 ) * ( s t e p ) ;
11
}
12
13
return I ;
14
}
15
}
Листинг 5.4: Выдержка из метода main
1
s t a t i c void Main ( s t r i n g [ ] a r g s )
2
{
3
i n t n = a r r a y 2 . GetL ength ( 0 ) ;
4
f o r ( i n t i = 0 ; i < n ; i ++)
5
{
6
f o r ( i n t j = 0 ; j < n ; j ++)
7
{
8
a r r a y [ i , j ] = new FuzzyNumber ( a r r a y 2 [ i , j ] , a r r a y 1 [ i , j ] , a r r a y 3
[ i , j ]) ;
9
i f ( ( j > i ) &&( a r r a y 2 [ i , j ] ! = 0 ) ) { L e f t I n d e x e s . Add ( i ) ;
R i g h t I n d e x e s . Add ( j ) ; }
10
}
11
}
47
12
FuzzyNumber v a l u e = new FuzzyNumber ( 1 , 1 , 1 ) ;
13
R e c u r s i v e F i l l ( r e f array , n − 1 , n − 1 , value ) ;
14
f o r ( i n t i = 0 ; i < n ; i ++)
15
{
16
f o r ( i n t j = 0 ; j < n ; j ++)
17
{
18
Console . Write ( array [ i , j ] . ToString ( ) ) ;
19
}
20
Console . WriteLine ( ) ;
21
}
22
double sum = 0 ;
23
double temp = 0 ;
24
25
L i s t <double > f i n a l = new L i s t <double > { } ;
26
f o r ( i n t i = 0 ; i < n ; i ++)
27
{
28
temp = I n t e g r a t e . i n t e g r a t e ( t e s t f 1 , −20, 60 , a r r a y [ i , n − 1 ] ) /
I n t e g r a t e . i n t e g r a t e ( t e s t f 2 , −20, 60 , a r r a y [ i , n − 1 ] ) ;
29
f i n a l . Add ( temp ) ;
30
sum += temp ;
31
}
32
double sum2 = 0 ;
33
f o r ( i n t i = 0 ; i < n ; i ++)
34
{
35
C o n s o l e . W r i t e L i n e ( f i n a l [ i ] / sum ) ;
36
}
37
Console . WriteLine ( ) ;
38
C o n s o l e . ReadKey ( ) ;
39
}
48
Отзывы:
Авторизуйтесь, чтобы оставить отзыв