Алгоритмы нечеткого вывода

Введение

Целью данной работы является построение нечёткой экспертной системы в системе MATLAB, используя пакет нечёткой логики Fuzzy Logic Toolbox.

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

1. Если студент отвечает на все три вопроса отлично, то ставится оценка 5−«отлично».

2. Если студент отвечает на все три вопроса хорошо, то ставится оценка 4−«хорошо».

3. Если студент отвечает на все три вопроса удовлетворительно, то ставится 3−«удовлетворительно».

Ответ на вопросы мы будем оценивать по шкале от 2 до 5. Для по строения нечёткой экспертной системы этих условий достаточно.

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

Построение системы нечеткого вывода для задачи подбора ПО

В качестве лингвистических переменных в рамках данной задачи выступают критерии оценки ПО. Для них задаются такие термы, как «Низкий», «Сред­ний», «Высокий» и т.д. Каждому терму лингвистиче­ской переменной соответствует нечеткое множество и функция. С помощью функции принадлежности определяются степени принадлежности каждого эле­мента глобального множества данному терму. Эле­ментами глобального множества являются численные экспертные оценки характеристик программно­го продукта по некоторой шкале.

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

Для реализации алгоритма принятия решения с помощью нечеткого вывода необходимо описать правила, по которым осуществляется связь между различными характеристиками и выходным значе­нием полезности альтернатив. Сравнение альтерна­тив и принятие решения производится с помощью продукционных правил. Каждое продукционное правило состоит из одной или нескольких посылок и заключения. Если посылок несколько, они связы­ваются логическим «И». Продукционное правило имеет вид:

ЕСЛИ посылка [И посылка ...], ТО заключение, где посылка и заключение являются нечеткими высказываниями. Например:

ЕСЛИ Надежность высокая И Изучаемость сред­няя, ТО Полезность высокая.

Используемые для вывода правила учитывают характеристики альтернатив по всем критериям и степени важности каждой их характеристик для пользователя. Чем выше степень важности некото­рой характеристики для пользователя, тем более высокую оценку по соответствующему критерию долж­на иметь альтернатива.

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

Алгоритмы нечеткого вывода

Пусть x, y - входные переменные, имеющие четкие значения x0, y0; z - выходная переменная.

Заданы функции принадлежности A1, A2, B1, B2, C1, C2 и правила:

Если x есть A1 и y есть B1, ТО z есть C1, Если x есть A2 и y есть B2, ТО z есть C2.

Алгоритм Mamdani

В системах типа Mamdani база знаний строится из нечетких высказываний вида «р есть а» с помощью связок «И», «ЕСЛИ-ТО»:

ЕСЛИ x высокий И y средний, TO z высокий Этапы нечеткого вывода реализуются следую­щим образом:

Фаззификация: находятся степени истинности для предпосылок каждого правила: A1(x0), A2(x0), B1(y0), B2(y0).

Вывод: находятся уровни отсечения для предпосылок каждого из правил с использованием операции минимум:

где - операция логического минимума.

Затем находятся усеченные функции принад­лежности:

Композиция: с использованием операции максимум (обозначается как «V») производится объединение найденных усеченных функций, что приводит к получению итогового нечеткого под­множества для переменной выхода с функцией принадлежности:

(1.1)

Приведение к четкости для получения z0 производится методом центра тяжести.

Алгоритм Tsukamoto

Исходные данные и база знаний такие же, как и в алгоритме Mamdani, но предполагается, что

функции C1(z), C2(z) являются монотонными. Этапы нечеткого вывода:

1. Фаззификация: находятся степени истин-
ности для предпосылок каждого правила: А10)
А20), В10), В20).

2. Вывод: Находятся уровни отсечения для
предпосылок каждого из правил с использованием
операции минимум:

α1 = А10) В10),

α2 = А20) В20),

где - операция логического минимума.

Затем находятся четкие значения z1 и z2 из урав­нений

α11(z),

α2 = С2(z)

3. Определяется четкое значение переменной
вывода, как взвешенное среднее z1 и z2:

(1.2)

В общем случае четкое значение z0 определяет­ся по формуле (1.2) (дискрный вариант метода центра тяжести).

Алгоритм Sugeno

В алгоритме Sugeno база знаний строится из правил в следующей форме:

Если х есть A1 и у есть В1 ТО z1 = α1x + b1y,

Если х есть А2 и у есть В2, ТО z2 = α2х + b2у. Этапы нечеткого вывода:

Фаззификация: находятся степени истин­ности для предпосылок каждого правила: A1(x0), А20), B1(y0), В20).

Вывод: Находятся уровни отсечения для предпосылок каждого из правил с использованием операции минимум:

α1 = А10) В10),

α2 = А20) В20),

Находятся индивидуальные выходы правил:

Определяется четкое значение переменной вывода:

(1.3)

Алгоритм Larsen

Вид базы знаний совпадает с видом базы знаний для алгоритма Mamdani.

1. Нечеткость: находятся степени истинности для предпосылок каждого правила: А1(х) А20), В10), В20).

Описание системы

Экспертная система «Оценки» имеет три входа (первый, второй и третий вопросы), один выход (оценка), три правила типа «если…то…» (в соответствии и с теми предложениями, которые мы определили выше). Данная система построена используя алгоритм вывода Мамдани.

2.1 Командой fuzzy запускаем FIS-редактор. По умолчанию предлагается алгоритм вывода типа Мамдани. Изменяем параметр aggregation на sum. Так как в системе должно быть три входа, поэтому через пункт меню Edit-Add input добавляем ещё два входа. Изменяем названия: input1-q1; input2-q2; input3-q3.

2.2 Теперь изменяем параметры функций принадлежности для входа.

Функции принадлежности типа gauss2mf.

Изменяем параметры функции принадлежности для выхода. Она будет типа: trimf.

2.3 Теперь установим правила:

а) Если студент отвечает на все три вопроса отлично, то ставится оценка 5−«отлично».

б) Если студент отвечает на все три вопроса хорошо, то ставится оценка 4−«хрошо».

в) Если студент отвечает на все три вопроса удовлетворительно, то ставится 3−«удовлетворительно».

г) Проверяем систему в действии: открываем окно просмотра правил.

При выставлении оценок за вопросы 4-4-5(первый-второй-третий соответственно), система ставит 4,82, фактически 5. При выставлении оценок за вопросы 3-4-5, система ставит 4,05. При выставлении оценок за вопросы 3-4-4, система ставит 4,01.

Заключение

В данной работе было реализовано изучение теоретического материала и построение нечеткой экспертной системы. С помощью программы Matlab, используя пакет нечёткой логики Fuzzy Logic Toolbox была создана модель реакции функции в зависимости от установленных нами условий, при выполнении которой был использован алгоритм Мамдани.

Список использованной литературы

1. В.Дьяконов, В.Круглов. Математические пакеты расширения matlab. Специальный справочник.

2. Азаров В.Н., Олейник А. В., Леохин Ю.Л. журнал «Качество Инновации Образование» № 3 2009г ст. 43-49.


Приложение


Наши рекомендации