- •Санкт-Петербургский национальный исследовательский университет
- •Редакторы знаний и функции системы kappa
- •Основные этапы разработки объектной модели
- •Пример. Окно Object Browser
- •Построение функциональной модели с использованием продукционных правил Цикл формирования цепи рассуждений в прямом направлении
- •If посылка then заключение.
- •Формирование цепи рассуждений в обратном направлении
- •Средства отладки базы знаний
- •Окно связи правил (Rule Relations)
- •Окно трассировки правил (Rule Trace)
- •Активная трассировка при прямом формировании цепочки рассуждений
- •Окно просмотра иерархии выводов (Inference Browser)
- •Средства создания интерфейса с пользователем. Окно сеанса (Session Window)
- •Средства объяснений оболочки kappa
- •Практическое задание
- •Разработка и программирование объектной модели предметной области
- •Разработка и программирование функциональной модели предметной области
- •Компьютерный практикум по нечетким системам
- •Аппроксимация функции одной переменной с использованием нечеткой системы
- •Варианты заданий
- •Построение элементарной нечеткой экспертной системы
- •Программирование нечеткой системы в среде matlab с использованием встроенных функций
- •Кластеризация с помощью алгоритма нечетких центров
- •Компьютерный практикум по нейронным сетям
- •Аппроксимация функции на основе нейронных сетей
- •Варианты заданий
- •Использование инструмента nnTool для построения нейронной сети
- •Кластеризация с помощью нейронных сетей
- •Рекуррентные нейронные сети Хопфилда и Хэмминга
- •Нейронные сети радиально-базисных функций. Вероятностные сети
- •Построение нейронечеткой модели с помощью anfis-редактора
- •Приложение 1. Функции пакета «Fuzzy Logic Toolbox» системы matlab для работы с системами нечеткой логики
- •Приложение 2. Функции пакета «Neural Network Toolbox» системы matlab для работы с нейронными сетями
Компьютерный практикум по нечетким системам
Аппроксимация функции одной переменной с использованием нечеткой системы
Цель выполнения лабораторной работы:
1. Освоить методику построения нечетких систем.
2. Используя нечеткую систему научиться аппроксимировать функцию одной переменной.
Задание:
Необходимо построить с помощью интерфейсной программы пакета нечеткой логики программной среды MATLAB нечеткую систему, необходимую для аппроксимации табличной функции ,. Варианты задания представлены в табл. 2.1.
Варианты заданий
Значения , , одинаковы для всех вариантов
Таблица 2.1
i
|
Значение | |||||||||
№1 |
№2 |
№3 |
№4 |
№5 |
№6 |
№7 |
№8 |
№9 |
№10 | |
1 2 3 4 5 6 7 8 9 10 |
1.50 1.26 0.99 0.97 0.91 0.71 0.43 0.54 0.19 0.01 |
2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04
|
2.02 1.98 1.67 1.65 1.57 1.42 1.37 1.07 0.85 0.48
|
1.99 2.03 2.20 2.39 2.19 2.61 2.35 2.60 2.55 2.49
|
2.23 2.29 2.27 2.62 2.72 2.82 3.13 3.49 3.82 3.95
|
2.07 2.17 2.21 2.31 2.10 2.09 2.12 1.63 1.78 1.52
|
2.18 2.43 2.40 2.43 2.65 2.75 2.67 2.66 2.63 2.75
|
-0.10 -0.21 0.01 0.05 -0.13 -0.23 -0.21 -0.43 -0.57 -0.44
|
-0.16 0.01 0.10 0.16 0.05 0.35 0.19 0.50 0.74 1.03
|
2.09 2.31 2.72 2.77 2.78 2.97 3.00 3.51 3.43 3.58
|
Пример выполнения:
Зависимость между переменными y и х заданы с помощью табл. 2.2. Требуется построить нечеткую систему, с помощью которой возможно аппроксимировать предложенную функцию, заданную таблично.
Таблица 2.2
1 2 3 4 5 6 7 8 9 10 |
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 |
2.05 1.94 1.92 1.87 1.77 1.74 1.71 1.60 1.56 1.40 |
Для аппроксимации функции с одной переменной используем среду MATLAB. Командой fuzzy из режима командной строки запускается интерфейсная программа пакета Fuzzy Logic (Нечеткая логика) – редактор нечеткой системы вывода FIS (Fuzzy Inference System).
В меню File (Файл) выбираем опцию New Sugeno FIS (новая система типа Sugeno), появится окно редактора (рис. 4.1). В появившемся окне существуют поля входной, выходной функции и редактора правил. Необходимо переименовать блоки input1 в x, output1 в y.
Рис. 4.1. Окно редактора функции
В блоке параметров нечеткой системы типа Sugeno задаются:
меню And method позволяет установить реализации логической операции И: min – минимум и prod – алгебраической произведение (см. раздел 4.2.1);
меню Or method позволяет установить реализации логической операции ИЛИ: max – максимум и probor – алгебраическая сумма (см. раздел 4.2.1);
меню Defuzzification позволяет выбрать один из методов дефаззификации: wtaver – метод взвешенного среднего, при котором илиwtsum – метод взвешенной суммы, при котором , где– количество правил базы знаний.
При щелчке по блоку x (input1) откроем окно редактора функций принадлежности (рис. 4.2). Необходимо добавить функции принадлежности, для этого в меню Edit (Редактирование) выбираем опцию Add MFs (рис. 4.3). В появившемся диалоговом окне задается тип и количество функций принадлежности (9, далее добавляем еще 1 для того, чтобы получить 10 функций принадлежности). В качестве функций принадлежности выберем гауссовы функции (gaussmf). Затем в окне редактора функций принадлежности в поле Range (Диапазон) устанавливаем диапазон изменения значений х от 0 до 1, т.е. диапазон соответствующий табл. 4.2. Далее необходимо подвинуть графики заданных функций принадлежности, чтобы ординаты их максимумов совпадали с заданными значениями аргумента х. Для этого в поле Params (Параметры) задаем размах кривой и положение ее центра.
Рис. 4.2. Окно редактора функции принадлежности для х
Рис. 4.3. Окно добавления функций принадлежности
Далее необходимо задать функции принадлежности для у, щелкнув по блоку у и перейдя к редактору функций принадлежности (рис. 4.4). Добавим функции принадлежности (меню Edit Add MFs). В качестве функции принадлежности выбираются 10 констант, по числу различных значений yi в табл. 4.2. Таким образом сконструированная система является нечеткой системой типа Сугено 0-го порядка. В окне редактора функций принадлежности зададим значения функции у в поле Params.
В окне FIS-редактора (рис. 5.1), щелкнув по среднему блоку, откроем окно редактора правил (рис. 4.5).
При вводе правила необходимо обозначить соответствие между каждой функцией принадлежности аргумента х и числовым значением у.
Рис. 4.4. Окно редактора функций принадлежности для у
Существует возможность просмотра правил (рис. 4.6). Для этого выберем позицию меню View – rules. В левой части окна в графической форме представлены функции принадлежности аргумента х, в правой – переменной выхода у с пояснением механизма принятия решения. Вертикальная черта, пересекающая графики в левой части окна, позволяет изменять значения переменной входа, при этом соответственно изменяются значения у в правой части окна. Изменение аргумента путем перемещения вертикальной линии наглядно демонстрирует, как система определяет значения выхода.
Рис. 4.5. Окно редактора правил
Рис. 4.6. Окно просмотра правил
В результате была построена нечеткая система, которая решила задачу аппроксимации заданной табличной функции. В табл. 4.3 приведено сравнение выходов нечеткой системы с исходными значениями y (четвертый столбец в таблице – выходы нечеткой системы).
Как видно из табл. 4.3 максимальное отклонение выходов нечеткой системы от исходных данных составляет 0,02.
Выбрав в меню View – Surface, перейдем к окну просмотра поверхности выхода, в данном случае – к просмотру кривой у(х) (рис. 4.7).
Таблица 4.3
I |
xi |
| ||
1 2 3 4 5 6 7 8 9 10 |
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 |
2.05 1.94 1.92 1.87 1.77 1.74 1.71 1.60 1.56 1.40 |
2.03 1.95 1.92 1.86 1.78 1.74 1.72 1.61 1.54 1.42 |
0.02 0.01 0 0.01 0.01 0 0.01 0.01 0.02 0.02 |
Рис. 4.7. График функции
В заключении следует отметить, что с помощью вышеуказанных программ-редакторов на любом этапе проектирования нечеткой модели в нее можно внести необходимые коррективы, вплоть до задания какой-либо особенной пользовательской функции принадлежности.
Выводы (пример):
В результате выполнения лабораторной работы я познакомился с теоретическими сведениями о нечетких множествах, их свойствах, базах знаний, нечетком логическом выводе. В ходе выполнения лабораторной работы мною была построена нечеткая система с помощью пакета нечеткой логики Fuzzy Logic среды MATLAB, которая аппроксимирует заданную табличную функцию. Было произведено сравнение выходов нечеткой системы с заданными значениями y, в результате чего было установлено, что максимальное отклонение составило 0.02 (например, при х=0.1), что составляет 1.025%.
Контрольные вопросы
Дайте определение нечеткого множества.
Опишите этапы нечеткого логического вывода
Какой алгоритм вывода использовался при выполнении лабораторной работы? Опишите данный алгоритм.
В чем отличие использованного алгоритма от остальных существующих?
Какие типы функций принадлежности были использованы при выполнении лабораторной работы и почему?