сии Задание №4
.pdfЗадание №4
Моделирование экспертных систем в программной среде Fuzzy Logic Toolbox MatLab
Цель работы: ознакомиться с особенностями создания экспертных систем. Получить навыки работы с программной средой пакета Fuzzy Logic Toolbox MatLab.
Задание: в программной среде пакета Fuzzy Logic Toolbox MatLab реализовать экспертную систему нечеткого вывода по алгоритму Сугено, для аппроксимации функции в соответствии с вариантом задания.
Варианты заданий:
Вариант |
Функция |
Вариант |
Функция |
|||||||||||||||
0 |
y x 2 |
3 |
|
10 |
y |
|
|
2x 2 |
|
1 |
||||||||
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
2 |
|
|
|
|
|
3 |
|
|
|
|
||||
1 |
y |
x3 5 |
|
|
11 |
y |
|
3x3 |
|
1 |
||||||||
|
|
2 |
|
|||||||||||||||
|
|
|
|
|
||||||||||||||
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
y 2x2 |
12 |
y |
|
3x3 |
|
1 |
|||||||||||
|
|
|
|
|
|
|
|
|
2 |
|
|
|||||||
|
y 3x3 |
|
|
|
|
2x 2 |
||||||||||||
3 |
|
|
|
|
|
|
|
|
13 |
y |
|
|
|
|
1 |
|||
|
|
|
|
|
|
|
|
3 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
4 |
y x 2 |
1 |
14 |
y |
|
x 4 |
1 |
|||||||||||
|
|
|
|
|
|
|
|
2 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
5 |
y x3 |
1 |
15 |
y |
|
x 4 |
1 |
|||||||||||
|
|
|
|
|
|
|
|
2 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
6 |
y x 2 1 |
16 |
y 3x3 1 |
|||||||||||||||
7 |
y x3 1 |
17 |
y 3x 2 1 |
|||||||||||||||
8 |
y |
2x 2 |
18 |
y |
|
x3 |
1 |
|||||||||||
|
3 |
|
|
|
|
2 |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
9 |
y |
3x 3 |
|
19 |
y |
|
x3 |
1 |
||||||||||
|
2 |
|
|
|
|
|
2 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Содержание отчета:
1.Цель работы.
2.Задание.
3.Описание алгоритма создания экспертной системы.
4.Описание выполнения работы.
5.Проверка работоспособности системы
6.Построение поверхности нечеткого вывода и результатов системы
7.Выводы по работе.
1
Краткие теоретические сведения:
Рассмотрим создание экспертной системы в программной среде Fuzzy Logic Toolbox на следующем примере.
Построить нечеткую систему вывода, отображающую зависимость между переменными x и y по функции y=x2.
Создание экспертной системы
Для вызова редактора систем нечеткого вывода необходимо в окне команд набрать fuzzy. В результате появится окно FIS-редактора с типом системы нечеткого вывода Мамдани по умолчанию. Создадим новую систему нечеткого вывода типа Сугено File–>New FIS…–>Sugeno.
Имя входной переменной input1 можно переименовать в x, а имя системы в «APPROX» путем сохранения системы в файл File–>Export–>To file…(Рис. 1).
Рисунок 1 – Окно FIS-редактора
Далее необходимо добавить функции принадлежности входных и выходных переменных, но предварительно надо удалить все имеющиеся функции
2
принадлежности. Для этого необходимо вызвать редактор функций принадлежности
Edit–>Membership Functions и выбрать Edit–>Remove All MFs.
Входную функцию зададим следующими значениями:
Таблица 1 – Входные значения функции
x |
–1 |
–0.6 |
–0.4 |
-0.2 |
0 |
0.2 |
0.4 |
0.6 |
1 |
y=x2 |
1 |
0.36 |
0.16 |
0.04 |
0 |
0.04 |
0.16 |
0.36 |
1 |
Добавим для x девять функций принадлежности Edit–>Add MFs…. Значение поля типа функции принадлежности (MF type) указать Гаусса (gaussmf), в поле количество функций принадлежности (Number of MFs) – 9 (по количеству значений x из табл. 1) (Рис. 2)
Рисунок 2 – Добавление функций принадлежности
В поле диапазон (Range) входного значения x установим [-1 1]. Переименуем для наглядности все функции принадлежности следующим образом: mf1–>n4, mf2–>n3, mf3–>n2, mf4–>n1, mf5–>z, mf6–>p1, mf7–>p2, mf8–>p3, mf9–>p4. Установим максимумы функций в соответствующие точки x, путем изменения второго значения в поле Params для каждого графика функции (n4 –1, n3 –0.6, n2 –0.4, n1 –0.2, z 0, p1 0.2, p2 0.4, p3 0.6 p4 1) (Рис. 3). Закроем окно редактора функций принадлежности.
3
Рисунок 3 – Окно редактора функций принадлежности входной переменной x
В окне редактора нечеткой системы FIS Editor APPROX изменим имя переменной output1 на y. (Рис. 4)
4
Рисунок 4 – Окно редактора нечеткой системы
Теперь перейдем к редактированию функций принадлежности переменной y. Откроем редактор функций принадлежности (Edit–> Membership Functions…), выберем блок y и удалим все имеющиеся функции принадлежности для блока переменной y (Edit–>Remove All MFs). Добавим пять функций принадлежности , по числу значений y в таблице 1 (Edit–>Add MFs…). В поле MF type укажем constant, в
поле Number of MFs – 5 (Рис. 5).
Рисунок 5 – Добавление функций принадлежности
Диапазон значений оставим [0 1], а имена функций изменим на значения соответствующие выходному значению y и укажем это же значение в поле Params (Рис. 6). Закроем окно редактора функций принадлежности.
5
Рисунок 6 – Результат нечеткого вывода
Откроем окно редактора правил (Edit–>Rules…). Введем необходимые правила, которые обозначают соответствие между каждой функцией принадлежности x и значением y. Функция n4 соответствует значению x=–1 и y=1, n3 соответствует значению x=–0,6 и y=0,36 и т.д. по таблице 1 (Рис 7). Закроем окно редактора правил, построение системы закончено.
6
Рисунок 7 – Редактор правил
Просмотреть результаты созданной системы можно в окне View–>Rules, тут же можно изменять входное значение x и получать аппроксимированное значение у (Рис. 8). Просмотреть получившийся график функции можно View–>Surface (Рис. 9).
Рисунок 8 – Результаты работы системы
7
Рисунок 9 – График функции
8