Представление исходных данных. Визуализация многомерных данных в среде Statistica (Лабораторная работа № 1), страница 6

·  дефаззификатор  -  преобразует  выходное  нечеткое  множество   в  четкое  число  Y.

Ввиду  важности  базы  знаний  рассмотрим  ее  более подробно.  Эта  база  задает  взаимосвязь  между  входами  и  выходами  исследуемого объекта  в таком  формате:

ЕСЛИ  (посылка  правила),  ТО  (заключение правила).

Посылка  правила  представляет собой  утверждение  типа  «х есть  малый»,  где  «малый»  -  это терм,  заданный  нечетким множеством  на  универсальном  множестве  лингвистической переменной х.   Заключение  правила  -  это факт  типа  «у  есть d»,  в  котором  значение  выходной  переменной  может задаваться  нечетким термом  («у  есть  большой»), классом решений  («у  есть  надежный  заемщик»),  четкой  константой  («у = 5»).       

Многомерные  зависимости  «входы – выходы»  задаются  нечеткими правилами  с  логическими  операциями  И  или  ИЛИ.  Нечеткую  базу  знаний,  связывающую  входы   Х =1, х2, . . ., хn)   с  выходом  у,  представим  следующим образом:

      (1)

где    -  нечеткий  терм,  которым  оценивается переменная  хi в  j-м  правиле,  ;   di  -  заключение  j –го  правила;  m  -  количество  правил  в базе  знаний;  Θj  -  логическая  операция  (И  или  ИЛИ);    -  нечеткая  импликация.

          В  машине нечеткого вывода  часто  используется  логический  вывод  Мамдани,  названный  так в честь  английского ученого,  который  впервые  предложил  нечеткий  контроллер   для  модели  парового  двигателя.   Этот  вывод  выполняется   по  базе  знаний  (1),  в  которой  все  значения  входных  и  выходной  переменных   заданы  нечеткими  множествами.  База знаний  Мамдани  может  трактоваться как  разбиение  пространства  влияющих  факторов  на подобласти  с  размытыми границами,  внутри  которых  функция отклика принимает  нечеткое  значение.  Правило  в  базе  знаний  представляет собой  «информационный  сгусток»,  отражающий  одну  из особенностей  зависимостей  «входы – выход». 

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

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

2   Работа на компьютере

Выполнение  данной  работы  производится  с  программным модулем  FuzzyLogic  системы  Matlab,  версия 7.01.    Схема  работы  с  этой  системой  показана  на  рис.2.

Редактор  входов

Рисунок 2  -  Схема  работы  модуля FuzzyLogic  системы Matlab

1.Вход  в  модуль:  после  вызова  системы   Matlab  в  командном  окне  (CommandWindow)  набрать слово  fuzzy  и  нажать  клавишу  Enter.  Появится  окно  редактора  системы  нечеткого  вывода  Fuzzy inference system  (FIS) – editor  (рис.3).

Рисунок 3  -  Окно  редактора

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

По  умолчанию  редактор СНВ  создает систему с  одним  входом  и  одним  выходом;  создаваемая   система  относится  к  типу  Мамдани.  Добавить  второй  вход,  для чего  в  меню    Edit   выбираем команду  Addvariable  - input  (добавить  переменную  -  вход). Появится  окно  редактора  с  двумя  входами.

3.  Переименовать  входы  и  выход.  Щелчком  мыши  выделить  окно  с первой  переменной Input1,  затем  в  окне  редактора  вместо Input1  набрать  food  (еда)  и  нажать  Enter.  Аналогичные  процедуры  произвести  со  вторым  входом (обозначим  его  как  service)  и  выходом  (tip  - чаевые). В  результате  должно  получиться  окно  редактора  с  двумя  входами,  одним выходом  и  соответствующими  новыми  подписями  переменных  (рис.4).