Цель работы: ознакомление со способами и средствами описания нечётких продукций в системе нечёткого вывода в ин-терактивном режиме использования графических средств пакета Fuzzy Logic Toolbox.

Работа проводится на основе рассмотрения иллюстративно-го примера системы нечёткого вывода ‘tipper’, решающей задачу получения рекомендации о размере чаевых в зависимости от ка-чества обслуживания и еды в ресторане.

2.1. Общие сведения о пакете Fuzzy Logic Toolbox

Для рассмотрения результатов разработки и функциониро-вания системы нечёткого вывода будем использовать графиче-ские средства пакета Fuzzy Logic Toolbox. Эти же средства ис-пользуются и при разработке систем нечёткого вывода как гра-фический объектно-ориентированный язык автоматического про-граммирования.
В состав этих средств входят:
- редактор систем нечёткого вывода FIS Editor (FIS);
- редактор функций принадлежности систем нечёткого вы-вода Membership Function Editor (MFE);
- редактор правил систем нечёткого вывода Rule Editor;
- программа просмотра правил системы нечёткого вывода Rule Viewer;
- программа просмотра поверхности нечёткого вывода Sur-face Viewer.

2.1.1. Система нечёткого вывода

Система нечёткого вывода (СНВ) реализует процесс полу-чения результата по исходным данным посредством нечётких продукций, иначе говоря, по правилам нечётких продукций.
Целью нечёткого вывода может быть получение результата либо в виде нечёткой величины с оценкой степени её принадлеж-ности, либо чёткой количественной оценки результата.
Правило-продукция состоит из двух частей: условия (анте-цедента) или посылки и заключения (консеквента) или вывода. Продукция основывается на правиле заключения при исчислении предикатов – modus ponens: если А и А>В (импликация) произ-вольно выводимые формулы, т.е. истинные выражения, то В – так же выводимая формула.
В правилах нечётких продукций и условная часть, и заклю-чения описываются как нечёткие высказывания. Таким образом, нечёткая продукция является аналогом правила modus ponens в нечёткой среде высказываний, реализуя немонотонный вывод.
Для описания нечётких высказываний используются нечёт-кие лингвистические переменные (ЛП).
ЛП – это именованная переменная, которая принимает свои значения из множества лингвистических термов, т.е. символьных величин.
Для нечёткой ЛП терм-множество задаётся как нечёткое множество. Этот процесс называется фаззификацией.
Фаззификация является одной из проблемных задач описа-ния нечёткого вывода и отражает индивидуальные эмпирические знания автора.
Нечёткие высказывания в условной части нечёткой продук-ции могут быть составными, соединёнными связками "И” и/или "ИЛИ”. Эти связки при исчислении высказываний реализуются логическими или арифметическими операциями пересечения или объединения, соответственно.
Операции исчисления высказываний в условной части не-чётких продукций с определением степени их истинности назы-вают агрегированием.
При получении результата по каждому правилу необходимо дать оценку степени его истинности. Эта оценка зависит от сте-пени истинности высказываний условной части правила, степени истинности отношения, положенного в основу правила, между исходными утверждениями (посылкой) и заключением, т.е. сте-пени истинности импликации, и степени истинности высказыва-ния относительно значения из терм-множества возможных ре-зультатов, приведенного в правиле.
Получение оценки степени истинности заключения, полу-ченного по правилу, называют активизацией.
В случае необходимости получения чёткого количественно-го значения результата оно может быть получено на основании функции принадлежности терм-множества результата различны-ми способами по алгоритмам, названым по именам их авторов (Мамдани, Сугено, Цукамото и т.д.), что определяет тип системы нечёткого вывода. Эта операция называется дефаззификацией.

2.1.2. Редактор систем нечёткого вывода FIS

Цель работы: ознакомление со способами и средствами описания нечётких продукций в системе нечёткого вывода в интерактивном режиме использования графических средств пакета Fuzzy Logic Toolbox.

Работа проводится на основе рассмотрения иллюстративного примера системы нечёткого вывода ‘tipper’, решающей задачу получения рекомендации о размере чаевых в зависимости от качества обслуживания и еды в ресторане.

2.1. Общие сведения о пакете Fuzzy Logic Toolbox

Для рассмотрения результатов разработки и функционирования системы нечёткого вывода будем использовать графические средства пакета Fuzzy Logic Toolbox. Эти же средства  используются и при разработке систем нечёткого вывода как графический объектно-ориентированный язык автоматического программирования.

В состав этих средств входят:

-         редактор систем нечёткого вывода FIS Editor (FIS);

-         редактор функций принадлежности систем нечёткого вывода Membership Function Editor (MFE);

-         редактор правил систем нечёткого вывода Rule Editor;

-         программа просмотра правил системы нечёткого вывода Rule Viewer;

-         программа просмотра поверхности нечёткого вывода Surface Viewer.

2.1.1. Система нечёткого вывода

Система нечёткого вывода (СНВ) реализует процесс получения результата по исходным данным посредством нечётких продукций, иначе говоря, по правилам нечётких продукций.

Целью нечёткого вывода может быть получение результата либо в виде нечёткой величины с оценкой степени её принадлежности, либо чёткой количественной оценки результата.

Правило-продукция  состоит из двух частей: условия (антецедента) или посылки и заключения (консеквента) или вывода. Продукция основывается на правиле заключения при исчислении предикатов – modus ponens: если А и АàВ (импликация) произвольно выводимые формулы, т.е. истинные выражения, то В – так же выводимая формула.

В правилах нечётких продукций и условная часть, и заключения описываются как нечёткие высказывания. Таким образом, нечёткая продукция является аналогом правила modus ponens в нечёткой среде высказываний, реализуя немонотонный вывод.

Для описания нечётких высказываний используются нечёткие лингвистические переменные (ЛП).

ЛП – это именованная  переменная, которая принимает свои значения из множества лингвистических термов, т.е. символьных величин.

Для нечёткой ЛП терм-множество задаётся как нечёткое множество. Этот процесс называется фаззификацией.

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

Нечёткие высказывания в условной части нечёткой продукции могут быть составными, соединёнными связками "И” и/или  "ИЛИ”. Эти связки при исчислении высказываний реализуются логическими или арифметическими операциями пересечения  или объединения, соответственно.

Операции исчисления высказываний в условной части нечётких продукций с определением степени их истинности называют агрегированием.

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

Получение оценки степени истинности заключения, полученного по правилу, называют активизацией.

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

2.1.2. Редактор систем нечёткого вывода FIS

Редактор FIS является основным средством, которое используется для создания и редактирования систем нечёткого вывода в графическом режиме.

Вызов редактора FIS для создания СНВ производится с помощью ввода функции fuzzy в окне команд системы MATLAB (см. рис. 2.1). Вызов редактора для уже созданной СНВ осуществляется вводом этой функции, но с аргументом – именем файла, её содержащего.

Рис. 2.1. Вызов редактора FIS

Рис. 2.1. Вызов редактора FIS

Редактор даёт возможность описать основные свойства СНВ: тип и структуру, способы реализации операций агрегирования, активизации и дефаззификации, а также описание лингвистических переменных, используемых при описании модели реального мира.

Описание выполняется с помощью графического интерфейса через окно редактора. Интерфейс позволяет так же вызывать все другие редакторы и программы просмотра.

На схеме, в верхней части окна редактора FIS (см. рис. 2.2), приведена схема СНВ, установленная по умолчанию. Левый и правый прямоугольники – входная и выходная ЛП, соответственно, именованные по умолчанию. Центральный прямоугольник отображает процессор нечетких правил (именованный по умолчанию Untitled). Совокупность этих правил описывается в БЗ и определяет функционирование СНВ.

Рис. 2.2. Схема системы нечеткого вывода в окне редактора FIS

Рис. 2.2. Схема системы нечеткого вывода в окне редактора FIS

По умолчанию так же задается целый ряд параметров: тип СНВ по алгоритму Мамдани, нечеткие логические операции, методы импликации, агрегирования и дефаззификации.

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

Для добавления входной переменной следует выполнить команду основного меню Edit > Add Variable… > Input. После  этого число левых прямоугольников увеличится на один, именованный по умолчанию «input».

Для удаления входной переменной следует выделить её щелчком по изображению и нажать клавишу Delete.

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

Выбор для операций агрегирования условий.

Для метода соединения высказываний конъюнкцией (меню And method) выбором элемента меню либо min, т.е. min-конъюнкции, либо prod, т.е. метода алгебраического произведения степени истинности соединяемых нечетких высказываний.

Для метода соединения высказываний дизъюнкцией (меню Or method) выбором элемента меню либо max, т.е. max-дизъюнкции, либо probor, т.е. алгебраической суммы степеней истинности соединяемых нечетких высказываний.

Выбор для операций активизации.

Метод вывода заключения (меню Implication) может быть установлен выбором элемента меню либо min, т.е. min-активизации:

либо prod, т.е. prod-активизации:

где с – произведение степени истинности условия на весовой коэффициент правила (F); – степень истинности нечеткого высказывания о результате в правиле.

Выбор для операций агрегирования заключений.

Метод для агрегирования значений функции принадлежности каждой из выходных ЛП заключений нечетких правил (меню Aggregation) может быть установлен выбором элементов меню либо max, т.е. max-дизъюнкции, либо sum, т.е. метода граничной суммы, либо probor, т.е. метод алгебраической суммы  для объединяемых значений переменных.

Выбор для операций деффазификации.

Метод для выполнения деффазификации (меню Deffazification) может быть установлен выбором элементов меню либо centroid, то есть метод центра тяжести для дискретного множества значений функции принадлежности, либо bisector, то есть метод центра площади, либо mom, то есть метод среднего максимума, либо som, то есть метод наименьшего (левого) модального значения, либо lom, то есть метод наибольшего (правого) модального значения.

Изменение начальных установок имен входных и выходных ЛП может производиться в правой нижней области окна редактора FIS после выделения нужного графического символа. Выделение производится щелчком по соответствующему прямоугольнику. Замена производится путем указания нужного имени в поле ввода Name.

2.1.3. Редактор функций принадлежности (MFE)

Редактор функций принадлежности в графическом режиме обеспечивает задание и изменение функции принадлежности любых термов ЛП СНВ.

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

Рис. 2.3. Окно редактора Membership Function Editor

Рис. 2.3. Окно редактора Membership Function Editor

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

Для описания функции принадлежности каждого значения ЛП используются три поля: Name, Type и Params. Описываемая функция выделяется щелчком по её графику. В поле Name устанавливается значение ЛП. В поле Type, выбором элемента меню, устанавливается имя нужной функции принадлежности (одной из 11-ти встроенных). В поле ввода Params указываются необходимые параметры функции принадлежности, которые определяют положение ее модальных значений на числовой шкале, диапазон изменения которой указывается в полях ввода Range и Display range.

Эти операции выполняются над всеми значениями из терм-множеств лингвистических переменных СНВ.

Добавление нового значения ЛП со встроенной функцией принадлежности производится по команде основного меню Edit > Add MF.

Удаление ненужного значения ЛП производится нажатием клавиши Delete, после выделения графика функции принадлежности этого значения.

2.1.4. Редактор правил системы нечеткого вывода

Редактор правил СНВ (см. рис. 2.4) обеспечивает описание правил системы в графическом режиме. Основой языка представления знаний (ЯПЗ) являются априорные элементарные нечеткие высказывания относительно значений ЛП вида:

<имя ЛП is значение ЛП>.

Сложные нечеткие высказывания в условных частях нечетких продукций соединяются связками «and» и/или «or».

Условная часть нечеткого правила вводится словом «If» и отделяется от заключения словом «then».

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

Правила нумеруются.

Таким образом база знаний СНВ, описанная средствами пакета Fuzzy Logic ToolBox, представляется линейной последовательностью нумерованных нечетких продукций, описанных изложенным образом.

Тексты введённых правил размещаются на поле в верхней части окна редактора правил.

Описание новых или изменение нечетких продукций производится только после описания всех необходимых ЛП средствами редакторов FIS и MFE. После этого могут выполняться три вида операций над правилами: удаление (кнопка Delete rule), добавление (кнопка Add rule) и изменение (кнопка Change rule).

Рис. 2.4. Окно редактора Rule Editor

Рис. 2.4. Окно редактора Rule Editor

Удаляемое или изменяемое правило предварительно должно быть выделено. При изменении или добавлении правила набор нужных значений ЛП, для описания априорных высказываний, производится выделением их из списков, размещённых в полях нижней части окна редактора.

Тип связки для сложных высказываний  устанавливается переключателем Connection.

Величина весового коэффициента правила устанавливается в поле ввода Weight.

Перечисленные операции над правилами выполняются после щелчка по соответствующей клавише внизу окна.

2.1.5. Программа просмотра правил

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

Рис. 2.5. Окно программы просмотра Rule Viewer

Рис. 2.5. Окно программы просмотра Rule Viewer

Прямоугольники, относящиеся к одной ЛП, размещаются в столбце с её именем.

Число прямоугольников в столбце определяется числом правил в БЗ. Столбец выходной переменной дополняется прямоугольником  с результатом дефаззификации выбранным методом.

Вертикальная линия, пересекающая прямоугольники столбца входной переменной, показывает введённое значение числового эквивалента значения нечёткой ЛП, которое определяется заданием диапазона числовой шкалы ("Range”) и его функции принадлежности на ней.
Числовой эквивалент может быть введён как в виде числа в поле ввода Input в нижней части окна, либо перетаскиванием вертикальной линии внутри столбца, после выделения щелчком по её изображению. Вводимое значение может быть проконтролировано по значению в цифрах вверху столбца.
Результат считывается вверху столбца выходной ЛП.

2.1.6. Программа просмотра поверхности нечёткого вывода

Для оценки взаимовлияния значений ЛП на результаты работы СНВ можно воспользоваться программой просмотра поверхности нечёткого вывода системы.

Вызов программы обеспечивается из окна любой рассмотренной программы выбором в основном меню окна пункта View со значением Surface.

2.2. Состав лабораторной работы №2

Система нечёткого вывода (файл «tipper.fis»), выбранная для рассмотрения, решает задачу получения рекомендации относительно величины чаевых официанту в зависимости от качества обслуживания и еды, заказанной клиентом.

Эмпирические знания эксперта, использованные для решения задачи в этой проблемной области, представлены в виде следующих эвристических правил:

1. Если обслуживание плохое или ужин подгоревший, то чаевые малые.

2. Если обслуживание хорошее, то чаевые средние.

3. Если обслуживание отличное или ужин превосходный, то чаевые щедрые.

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

Для представления результатов оценка чаевых предлагается в процентах от стоимости заказа в диапазоне от 0 до 30% .

2.2.1. Порядок действий при выполнении лабораторной работы №2

1. Войти в среду MATLAB щёлчком по символу на рабочем столе.

2. Вызвать редактор системы нечёткого вывода FIS вводом команды fuzzy (‘tipper’) в окне команд MATLAB, обеспечив получение структуры системы нечёткого вывода tipper.

3. В окне редактора FIS, последовательно выделяя прямоугольники с именами, установить названия и диапазон значений входных и выходной лексических переменных, использованных в задаче, по информации в правой нижней части окна.

4. По информации в левой нижней части окна определить выбранные способы реализации операций нечёткого пересечении и объединения нечётких множеств, нечёткой импликации, а также операций агрегирования и дефаззификации.

5. Для ознакомления с принятыми способами фаззификации значений лингвистических переменных, используем окно редактора функций принадлежностей, вызвав его командой Membership Function из пункта меню Edit окна редактора FIS.

6. В окне редактора функций принадлежностей, последовательно выделяя лингвистические переменные, определить для каждого её значения тип и параметры функции принадлежности по информации в правой нижней части окна после щелчка по её графику в верхней части окна.

7. Для ознакомления с текстом правил–продукций используем окно редактора правил, вызвав его командой Rules из пункта меню Edit окна редактора функций принадлежностей.

8. Анализируя правила получения результатов, оцените как и все ли ситуации учтены при получаемых рекомендациях.

9. Для ознакомления с результатами решения задачи используем окно редактора правил для вызова программы просмотра правил, по команде Rules из пункта меню View.

10. Меняя количественные оценки качества обслуживания и еды, оцените адекватность рекомендаций сложившейся ситуации.

2.2.2. Требования к отчету по лабораторной работе №2

1. Титульный лист, содержание.

2. Краткое описание задачи и метода ее решения.

3. Анализ работы системы нечеткого вывода на основе подготовленных правил.

4. Анализ функций нечеткой принадлежности, использованных для решения задачи.

5. Построение поверхности нечеткого вывода. Выбор альтернативы. Комментарии к полученным результатам.