Редактор функций принадлежности
Теоретическая часть
FIS-редактор
FIS-редактор предназначен для создания, сохранения, загрузки и вывода на печать систем нечеткого логического вывода, а также для редактирования следующих свойств:
- тип системы;
- наименование системы;
- количество входных и выходных переменных;
- наименование входных и выходных переменных;
- параметры нечеткого логического вывода.
Загрузка FIS-редактора происходит с помощью команды fuzzy. В результате появляется интерактивное графическое окно, приведенное на рисунке 4.1.
Рисунок 4.1 - Интерактивное графическое окно FIS-редактора
На этом же рисунке также указаны функциональные назначения основных полей графического окна. В нижней части графического окна FIS-редактора расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно.
FIS-редактор содержит 8 меню:
1. Меню File.Это общее меню для всех GUI-модулей используемых с системами нечеткого логического вывода:
- С помощью команды New FIS… пользователь имеет возможность создать новую систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы: Mamdani и Sugeno, которые определяют тип создаваемой системы. Создать систему типа Mamdani можно также нажатием Ctrl+N.
- С помощью команды Import пользователь имеет возможность загрузить ранее созданную систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы From Workspace… и From disk, которые позволяют загрузить систему нечеткого логического вывода из рабочей области MatLab и с диска, соответственно. При выборе команды From Workspace… появится диалоговое окно, в котором необходимо указать идентификатор системы нечеткого логического вывода, находящейся в рабочей области MatLab. Файлы систем нечеткого логического вывода имеют расширение .fis. Загрузить систему нечеткого логического вывода с диска можно также нажатием Ctrl+N или командой fuzzy FIS_name, где FIS_name – имя файла системы нечеткого логического вывода.
- При выборе команды Export появятся две альтернативы To Workspace… и To disk, которые позволяют скопировать систему нечеткого логического вывода в рабочую область MatLab и на диск, соответственно.
2. Меню Edit:
- Команда Undo отменяет ранее совершенное действие. Команда Add Variable… позволяет добавить в систему нечеткого логического вывода еще одну переменную. При выборе этой команды появятся две альтернативы Input и Output, которые позволяют добавить входную и выходную переменную, соответственно.
- Команда Remove Selected Variable удаляет текущую переменную из системы. Признаком текущей переменной является красная окантовка ее прямоугольника. Назначение текущей переменной происходит с помощью однократного щелчка левой кнопки мыши по ее прямоугольнику.
- Команда Membership Function… открывает редактор функций принадлежностей.
- Команда Rules… открывает редактор базы знаний.
3. Меню View.Это общее меню для всех GUI-модулей, используемых с системами нечеткого логического вывода:
- Команда Rules открывает окно визуализации нечеткого логического вывода.
- Команда Surface открывает окно вывода поверхности «входы-выход», соответствующей системе нечеткого логического вывода.
4. Меню And Method.Это меню позволяет установить следующие реализации логической операции И:
- min – минимум;
- prod – умножение;
- команда Custom…возможность установить собственную реализацию операции И. Для этого необходимо в появившемся графическом окне напечатать имя функции, реализующей эту операцию.
5. Меню Or Method.Это меню позволяет установить следующие реализации логической операции ИЛИ:
- max – умножение;
- probor - вероятностное ИЛИ;
- команда Custom…возможность установить собственную реализацию операции ИЛИ.
6. Меню Implication.Это меню позволяет установить следующие реализации импликации:
- min – минимум;
- prod – умножение;
- команда Custom…
7. Меню Aggregation.Это меню позволяет установить следующие реализации операции объединения функций принадлежности выходной переменной:
- max – максимум;
- sum – сумма;
- probor - вероятностное ИЛИ;
- команда Custom…
8. Меню Defuzzification.Это меню позволяет выбрать метод дефаззификации. Для систем типа Мамдани запрограммированы следующие методы:
- centroid – центр тяжести;
- bisector –медиана;
- lom – наибольший из максимумов;
- som – наименьший из максимумов;
- mom – среднее из максимумов.
Для систем типа Сугэно запрограммированы следующие методы:
- wtaver – взвешенное среднее;
- wtsum – взвешенная сумма.
Пользователь также имеет возможность установить собственный метод деффазификации (Custom…).
Редактор базы знаний
Редактор базы знаний (Rule Editor) предназначен для формирования и модификации нечетких правил. Редактор базы знаний может быть вызван из любого GUI-модуля, используемого с системами нечеткого логического вывода, командой Rules… меню Edit или нажатием клавиш Ctrl+3. В FIS-редакторе открыть редактор базы знаний можно также двойным щелчком левой кнопкой мыши по прямоугольнику с названием системы нечеткого логического вывода, расположенного в центре графического окна.
Общий вид редактора базы знаний с указанием функционального назначения основных полей графического окна приведен на рисунке 4.6. В нижней части графического окна расположены кнопки Help и Close.
Рисунок 4.6 - Редактор базы знаний
Редактор функций принадлежности содержит четыре системных меню File, Edit, View, Options, меню выбора термов входных и выходных переменных, поля установки логических операций И, ИЛИ, НЕ и весов правил, а также кнопки редактирования и просмотра правил.
Для ввода нового правила в базу знаний необходимо с помощью мыши выбрать соответствующую комбинацию лингвистических термов входных и выходных переменных, установить тип логической связки (И или ИЛИ) между переменными внутри правила, установить наличие или отсутствие логической операции НЕ для каждой лингвистической переменной, ввести значение весового коэффициента правила и нажать кнопку Add Rule. По умолчанию установлены следующие параметры:
- логическая связка переменных внутри правила – И;
- логическая операция НЕ – отсутствует;
- значение весового коэффициента правила – 1.
Возможны случаи, когда истинность правила не изменяется при произвольном значении некоторой входной переменной, т.е. это переменная не влияет на результат нечеткого логического вывода в данной области факторного пространства. Тогда в качестве лингвистического значения этой переменной необходимо установить none.
Для удаления правила из базы знаний необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу и нажать кнопку Delete Rule.
Для модификации правила необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу, затем установить необходимые параметры правила и нажать кнопку Edit Rule.
Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода.
Меню Edit:
- Команда Undo отменяет ранее совершенное действие.
- Команда FIS Properties… открывает FIS-редактор.
- Команда Membership Function… открывает редактор функций принадлежностей.
Меню Options.Это меню позволяет установить язык и формат правил базы знаний. При выборе команды Language появится список языков English (Английский), Deutsch (Немецкий), Francais (Французкий), из которого необходимо выбрать один. При выборе команды Format появится список возможных форматов правил базы знаний: Verbose - лингвистический; Symbolic – логический; Indexed – индексированный.
Различные форматы баз знаний демо-системы нечеткого логического вывода Tipper приведены на рисунке 4.6 (формат правил Verbose), рисунке 4.7 (формат правил Symbolic) и рисунок 4.8 (формат правил Indexed).
Рисунок 4.7 - База знаний в формате Symbolic
Рисунок 4.8 - База знаний в формате Indexed
Общая постановка задачи
Спроектировать систему типа Мамдани средствами пакета Fuzzy Logic Toolbox на примере построения нечеткой аппроксимирующей системы. Выбранную нелинейную функцию описать базой правил для лингвистических переменных, описывающих z(x,y), определенных на множестве из пяти, семи, девяти и одиннадцати термов.
Примечание. Если z выходит за заданные границы, то z принимает значение равное значению минимальной или максимальной границы, соответственно. pi = 3,1415926535897932384626433832795
Пример выполнения работы
Теоретическая часть
FIS-редактор
FIS-редактор предназначен для создания, сохранения, загрузки и вывода на печать систем нечеткого логического вывода, а также для редактирования следующих свойств:
- тип системы;
- наименование системы;
- количество входных и выходных переменных;
- наименование входных и выходных переменных;
- параметры нечеткого логического вывода.
Загрузка FIS-редактора происходит с помощью команды fuzzy. В результате появляется интерактивное графическое окно, приведенное на рисунке 4.1.
Рисунок 4.1 - Интерактивное графическое окно FIS-редактора
На этом же рисунке также указаны функциональные назначения основных полей графического окна. В нижней части графического окна FIS-редактора расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно.
FIS-редактор содержит 8 меню:
1. Меню File.Это общее меню для всех GUI-модулей используемых с системами нечеткого логического вывода:
- С помощью команды New FIS… пользователь имеет возможность создать новую систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы: Mamdani и Sugeno, которые определяют тип создаваемой системы. Создать систему типа Mamdani можно также нажатием Ctrl+N.
- С помощью команды Import пользователь имеет возможность загрузить ранее созданную систему нечеткого логического вывода. При выборе этой команды появятся две альтернативы From Workspace… и From disk, которые позволяют загрузить систему нечеткого логического вывода из рабочей области MatLab и с диска, соответственно. При выборе команды From Workspace… появится диалоговое окно, в котором необходимо указать идентификатор системы нечеткого логического вывода, находящейся в рабочей области MatLab. Файлы систем нечеткого логического вывода имеют расширение .fis. Загрузить систему нечеткого логического вывода с диска можно также нажатием Ctrl+N или командой fuzzy FIS_name, где FIS_name – имя файла системы нечеткого логического вывода.
- При выборе команды Export появятся две альтернативы To Workspace… и To disk, которые позволяют скопировать систему нечеткого логического вывода в рабочую область MatLab и на диск, соответственно.
2. Меню Edit:
- Команда Undo отменяет ранее совершенное действие. Команда Add Variable… позволяет добавить в систему нечеткого логического вывода еще одну переменную. При выборе этой команды появятся две альтернативы Input и Output, которые позволяют добавить входную и выходную переменную, соответственно.
- Команда Remove Selected Variable удаляет текущую переменную из системы. Признаком текущей переменной является красная окантовка ее прямоугольника. Назначение текущей переменной происходит с помощью однократного щелчка левой кнопки мыши по ее прямоугольнику.
- Команда Membership Function… открывает редактор функций принадлежностей.
- Команда Rules… открывает редактор базы знаний.
3. Меню View.Это общее меню для всех GUI-модулей, используемых с системами нечеткого логического вывода:
- Команда Rules открывает окно визуализации нечеткого логического вывода.
- Команда Surface открывает окно вывода поверхности «входы-выход», соответствующей системе нечеткого логического вывода.
4. Меню And Method.Это меню позволяет установить следующие реализации логической операции И:
- min – минимум;
- prod – умножение;
- команда Custom…возможность установить собственную реализацию операции И. Для этого необходимо в появившемся графическом окне напечатать имя функции, реализующей эту операцию.
5. Меню Or Method.Это меню позволяет установить следующие реализации логической операции ИЛИ:
- max – умножение;
- probor - вероятностное ИЛИ;
- команда Custom…возможность установить собственную реализацию операции ИЛИ.
6. Меню Implication.Это меню позволяет установить следующие реализации импликации:
- min – минимум;
- prod – умножение;
- команда Custom…
7. Меню Aggregation.Это меню позволяет установить следующие реализации операции объединения функций принадлежности выходной переменной:
- max – максимум;
- sum – сумма;
- probor - вероятностное ИЛИ;
- команда Custom…
8. Меню Defuzzification.Это меню позволяет выбрать метод дефаззификации. Для систем типа Мамдани запрограммированы следующие методы:
- centroid – центр тяжести;
- bisector –медиана;
- lom – наибольший из максимумов;
- som – наименьший из максимумов;
- mom – среднее из максимумов.
Для систем типа Сугэно запрограммированы следующие методы:
- wtaver – взвешенное среднее;
- wtsum – взвешенная сумма.
Пользователь также имеет возможность установить собственный метод деффазификации (Custom…).
Редактор функций принадлежности
Редактор функций принадлежности (Membership Function Editor) редактор предназначен для задания следующей информации о терм-множествах входных и выходных переменных:
- количество термов;
- наименования термов;
- тип и параметры функций принадлежности, которые необходимы для представления лингвистических термов в виде нечетких множеств.
Редактор функций принадлежности может быть вызван из любого GUI-модуля, используемого с системами нечеткого логического вывода, командой Membership Functions… меню Edit или нажатием клавиш Ctrl+2. В FIS-редакторе открыть редактор функций принадлежности можно также двойным щелчком левой кнопкой мыши по полю входной или выходной переменных. Общий вид редактора функций принадлежности с указанием функционального назначения основных полей графического окна приведен на рисунке 4.2. В нижней части графического окна расположены кнопки Help и Close, которые позволяют вызвать окно справки и закрыть редактор, соответственно.
Рисунок 4.2 - Редактор функций принадлежности
Редактор функций принадлежности содержит 4 меню:
1. Меню Fileи2. View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода.
3. Меню Edit:
- Команда Undo отменяет ранее совершенное действие.
- Команда Add MFs… позволяет добавить термы в терм-множество, используемое для лингвистической оценки текущей переменной. При выборе этой команды появится диалоговое окно (рисунок 4.3), в котором необходимо выбрать тип функции принадлежности и количество термов. Значения параметров функций принадлежности будут установлены автоматически таким образом, чтобы равномерно покрыть область определения переменной, заданной в окне Range. При изменении области определения в окне Range параметры функций принадлежности будут промасштабированы.
Рисунок 4.3 – Диалоговое окно выбора количества термов и типа функций принадлежности
- Команда Add Custom MF… позволяет добавить один лингвистический терм, функция принадлежности которого отличается от встроенных. После выбора этой команды появится графическое окно (рисунок 4.4), в котором необходимо напечатать лингвистически терм (поле MF name),, имя функции принадлежности (поле M-File function name) и параметры функции принадлежности (поле Parameter list).
Рисунок 4.4 – Диалоговое окно задания лингвистического терма с невстроенной функцией принадлежности
- Команда Remove Selected MF удаляет текущий терм из терм-множества текущей переменной. Признаком текущей переменной является красная окантовка ее прямоугольника. Признаком текущего терма является красный цвет его функции принадлежности.
- Команда Remove All MFs удаляет все термы из терм-множества текущей переменной.
- Команда FIS Properties… открывает FIS-редактор.
- Команда Rules… открывает редактор базы знаний.
4. Меню Type.Это меню позволяет установить тип функций принадлежности термов, используемых для лингвистической оценки текущей переменной. На рисунке 4.5 приведено меню Type, в котором указаны возможные типы функций принадлежности.
Рисунок 4.5 - Меню Type
Редактор функций принадлежности содержит четыре окна ввода информации: Range, Display Range, Name и Params. Эти четыре окно предназначены для задания диапазона изменения текущей переменной, диапазона вывода функций принадлежности, наименования текущего лингвистического терма и параметров его функции принадлежности, соответственно. Параметры функции принадлежности можно подбирать и в графическом режиме, путем изменения формы функции принадлежности с помощью технологии “Drug and drop”. Для этого необходимо позиционировать курсор мыши на знаке режима “Drug and drop”(см. рис. 7.5), нажать на левую кнопку мыши и не отпуская ее изменять форму функции принадлежности. Параметры функции принадлежности будут пересчитываться автоматически.
Редактор базы знаний
Редактор базы знаний (Rule Editor) предназначен для формирования и модификации нечетких правил. Редактор базы знаний может быть вызван из любого GUI-модуля, используемого с системами нечеткого логического вывода, командой Rules… меню Edit или нажатием клавиш Ctrl+3. В FIS-редакторе открыть редактор базы знаний можно также двойным щелчком левой кнопкой мыши по прямоугольнику с названием системы нечеткого логического вывода, расположенного в центре графического окна.
Общий вид редактора базы знаний с указанием функционального назначения основных полей графического окна приведен на рисунке 4.6. В нижней части графического окна расположены кнопки Help и Close.
Рисунок 4.6 - Редактор базы знаний
Редактор функций принадлежности содержит четыре системных меню File, Edit, View, Options, меню выбора термов входных и выходных переменных, поля установки логических операций И, ИЛИ, НЕ и весов правил, а также кнопки редактирования и просмотра правил.
Для ввода нового правила в базу знаний необходимо с помощью мыши выбрать соответствующую комбинацию лингвистических термов входных и выходных переменных, установить тип логической связки (И или ИЛИ) между переменными внутри правила, установить наличие или отсутствие логической операции НЕ для каждой лингвистической переменной, ввести значение весового коэффициента правила и нажать кнопку Add Rule. По умолчанию установлены следующие параметры:
- логическая связка переменных внутри правила – И;
- логическая операция НЕ – отсутствует;
- значение весового коэффициента правила – 1.
Возможны случаи, когда истинность правила не изменяется при произвольном значении некоторой входной переменной, т.е. это переменная не влияет на результат нечеткого логического вывода в данной области факторного пространства. Тогда в качестве лингвистического значения этой переменной необходимо установить none.
Для удаления правила из базы знаний необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу и нажать кнопку Delete Rule.
Для модификации правила необходимо сделать однократный щелчок левой кнопкой мыши по этому правилу, затем установить необходимые параметры правила и нажать кнопку Edit Rule.
Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода.
Меню Edit:
- Команда Undo отменяет ранее совершенное действие.
- Команда FIS Properties… открывает FIS-редактор.
- Команда Membership Function… открывает редактор функций принадлежностей.
Меню Options.Это меню позволяет установить язык и формат правил базы знаний. При выборе команды Language появится список языков English (Английский), Deutsch (Немецкий), Francais (Французкий), из которого необходимо выбрать один. При выборе команды Format появится список возможных форматов правил базы знаний: Verbose - лингвистический; Symbolic – логический; Indexed – индексированный.
Различные форматы баз знаний демо-системы нечеткого логического вывода Tipper приведены на рисунке 4.6 (формат правил Verbose), рисунке 4.7 (формат правил Symbolic) и рисунок 4.8 (формат правил Indexed).
Рисунок 4.7 - База знаний в формате Symbolic
Рисунок 4.8 - База знаний в формате Indexed