ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ

ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ

Разглядим методику построения нечеткой экспертной системы, которая должна посодействовать юзеру с ответом на вопрос: сколько дать «на чай» официанту за сервис в ресторане?[2].

Основываясь на каких-либо закоренелых обычаях и интуитивных представлениях, примем, что задачка о чаевых может быть описана последующими предложениями.

1. Если сервис нехорошее либо пища пригоревшая, то чаевые – малые.

2. Если ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ сервис не плохое, то чаевые – средние.

3. Если сервис хорошее либо пища потрясающая, то чаевые – щедрые.

Качество обслуживания и пищи будем оценивать по 11-балльной системе (0 – наихудшая оценка, 10 – лучшая).

Будем полагать, дальше, что малые чаевые составляют около 5% от цены обеда, средние – около 15% и щедрые – приблизительно 25%.

Заметим, что представленной инфы ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ, в принципе, довольно для проектирования нечеткой экспертной системы. Такая система будет иметь 2 входа (которые условно можно именовать «сервис» и «еда»), один выход («чаевые»), три правила типа «если… то» (в согласовании с 3-мя приведенными предложениями) и по три значения (соответственно, 0 баллов, 5 баллов, 10 баллов и 5%, 15% и 25%) для центров функций принадлежности ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ входов и выхода. Построим данную систему, используя метод вывода Mamdani. При конструировании нечеткой экспертной системы применяем пакет нечеткой логики Fuzzy Toolbox системы MatLab.

1. Командой (функцией) Fuzzy из режима командной строчки запускается основная интерфейсная программка пакета Fuzzy Logic – редактор нечеткой системы вывода (Fuzzy Inference System Editor, FIS Editor, FIS – редактор). Вид открывающегося ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ при всем этом окна приведен на рисунке.

Главное меню редактора содержит позиции:

File – работа с файлами моделей (их создание, сохранение, считывание и печать);

Edit – операции редактирования (добавление и исключение входных и выходных переменных);

View – переход к дополнительному инструментарию.

2. По дефлоту, начальный метод вывода - типа Mamdani и тут ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ никаких конфигураций не требуется, но в системе должно быть два входа, потому через пункт меню Edit/Add Variable…->Input добавляем в систему этот 2-ой вход (в окне редактора появится 2-ой желтоватый блок с именованием input2). Делая дальше однократный щелчок левой кнопкой мыши по блоку input1, меняем в поле имени его имя ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ на service, завершая ввод нового имени нажатием кнопки Enter. Аналогичным образом устанавливаем имя food блоку input2 и tips – выходному блоку output1. Присвоим сразу и имя всей системе, к примеру Tips, выполнив это через пункт меню File/Export -> To Workspace… Вид окна редактора после обозначенных действий приведен на рисунке ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ.

3. Зададим сейчас функции принадлежности переменных. Напомним ещё раз, что программу-редактор функций принадлежности можно открыть 3-мя методами:

· через пункт меню Edit/Membership Functions…,

· двойным щелчком левой кнопки мыши по иконке, отображающей подобающую переменную,

· нажатием кнопок Ctrl+2.

Хоть каким из приведённых методов перейдём к данной программке.

Задание и редактирование функции принадлежности начнем ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ с переменной «service». Поначалу в полях Range и Display Range установим спектр конфигурации и отображения этой переменной – от 0 до 10 (баллов), подтверждая ввод нажатием кнопки Enter. Потом через пункт меню Edit/MFs… перейдем к диалоговому окну вида

и зададим в нем функции принадлежности гауссова типа (gaussmf) с общим ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ числом 3. Нажмем кнопку ОК и возвратимся в окно редактора функций принадлежности. Не изменяя размах и положение данных функций, заменим только их имена на bad, good и excellent.

Щелчком левой кнопки мыши по иконке food войдем в окно редактирования функций принадлежности для этой переменной. Зададим поначалу спектр ее конфигурации от 0 до ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ 10, а потом, поступая как ранее, зададим две функции принадлежности трапецеидальной формы (trapmf) с параметрами, соответственно, [0 0 1 3] и [7 9 10 10] и именами burning и fantastic.

Для выходной переменной tips укажем поначалу спектр конфигурации от 0 до 30, позже зададим три функции принадлежности треугольной формы (trimf) с именами small, middle, large так, как это представлено на ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ рисунке.

Заметим, что можно, очевидно, задать и какие-либо другие функции либо избрать их другие характеристики.

4. Перейдем к конструированию правил. Для этого выберем пункт меню Edit/Rules… Дальше ввод правил делается в согласовании с предложениями, описывающими задачку. Итоговый набор правил отображен на рисунке и смотрится последующим образом:

1. If (service is ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ bad) or (food is burning) then (tips is small) (1)

2. If (service is good) then (tips is middle) (1)

3. If (service is excellent) or (food is fantastic) then (tips is large) (1)

Такая запись представляется довольно понятной; единица в скобках после каждого правила показывает его «вес», т.е. значимость правила. Данный вес ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ можно поменять, используя соответственное поле в левой нижней части окна редактора правил. Правила представимы и в других формах: символической и индексной, при всем этом переход от одной формы к другой происходит через функции пт меню редактора правил Options/Format.

На этом, фактически, конструирование экспертной системы закончено.

5. Самое время ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ проверить систему в действии. Откроем окно просмотра правил (View/Rules) и установим значения переменных: service=0 (нехороший), food=10 (потрясающая). Увидим ответ: tips=15 (средние).

Доказательством отмеченной зависимости выходной переменной от входных может служить вид поверхности отклика, который представляется при выборе пт меню View/Surface; направьте внимание, что при помощи мышки график ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ можно поворачивать во все стороны.

В открывшемся окне, меняя имена переменных в полях ввода, можно задать и просмотр одномерных зависимостей, к примеру tips от food.

4.


ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

1. Что такое нечеткое огромное количество?

2. Что такое нечеткая логика?

3. Что такое нечеткая переменная?

4. Что такое лингвистическая переменная?

5. Что такое функция принадлежности?

6. Что является ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ основой для проведения операции нечеткого логического вывода?

7. Что является результатом нечеткого вывода?

8. Какие разработаны модели нечеткого вывода?

9. В чем заключается метод Mamdani?

5.


ГЛОССАРИЙ

1. Нечеткое огромное количество(fuzzy sets)- огромное количество упорядоченных пар A ={mA(х)/х}, где mA(х) - характеристическая функция (либо просто функция принадлежности), принимающая значения из ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ некого упорядоченного огромного количества M=[0,1]. Функция принадлежности показывает степень (уровень) принадлежности элемента x подмножеству A . Если M={0,1}, то нечеткое подмножество A может рассматриваться как обыденное либо точное огромное количество.

2. Нечеткая логика (fuzzy logic)-раздел арифметики, представляющий из себя обобщение традиционной логики и теории множеств. В базе нечеткой логики лежит описание ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ объектов и процессов при помощи нечетких множеств.

3. Характеристическая функция нечеткого огромного количества (мembership function) показывает на степень (уровень) принадлежности некого элемента x огромному количеству A . Нечеткое огромное количество отличается от обыденного тем, что для хоть какого его элемента нельзя совершенно точно утверждать, что он принадлежит либо не принадлежит некому подмножеству, а ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ молвят, что принадлежит, но в той либо другой степени.

4. Лингвистическая переменная(Linguistic variable)-переменная, которая может принимать значения понятий (фраз) естественного языка и применяется при описании объектов и явлений при помощи нечетких множеств. Значения, которые воспринимает сама лингвистическая переменная, в свою очередь являются нечеткими переменными и принимают ПРИМЕР ПОСТРОЕНИЯ НЕЧЕТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ значения из некого спектра числовых значений.

5. Фазификация- введение нечеткости в нечеткий логический вывод.

6. Дефазификация- композиция и приведение к четкости в нечетком логическом выводе.


primer-oformleniya-materialov.html
primer-oformleniya-oblozhki-vipusknoj.html
primer-oformleniya-otveta-dlya-tipovoj-zadachi.html