Функции для работы с нечеткими множествами: ADDRULE, EVALMF, EVALFIS.

ADDRULE -Добавляет правила в базу знаний системы нечеткого логического вывода. Синтаксис: FIS_name= addrule (FIS_name, ruleList). Функция addrule имеет два входных аргумента:

FIS_name – идентификатор системы нечеткого логического вывода в рабочей области MatLab;

ruleList – матрица добавляемых правил. Матрица правил должна быть задана в формате indexed. Количество строк матрицы ruleList равно количеству добавляемых правил, т.е. каждая строка матрицы соответствует одному правилу. Количество столбцов матрицы равно m+n+2, где m (n) – количество входных (выходных) переменных системы нечеткого логического вывода. Первые m столбцов соответствуют входным переменным, т.е. задают ЕСЛИ-часть правил. Следующие n столбцов соответствуют выходным переменным, т.е. задают ТО-часть правил.

EVALMF -Вычисление значений произвольной функции принадлежности. Синтаксис: y = evalmf (x, params, type). Позволяет вычислить значения произвольной функции принадлежности. Функция evalmf иметь три входных аргумента: x – вектор, для координат которого необходимо рассчитать степени принадлежности; params – вектор параметров функции принадлежности, порядок задания которых определяется ее типом; type – тип функции принадлежности. Значение типа функции принадлежности может быть задано в виде строчки символов или числом: 1 - 'trimf';2 - 'trapmf'; 3 - 'gaussmf'; 4 - ‘gauss2mf';5 - 'sigmf';6 - 'dsigmf'; 7 - 'psigmf'; 8 - 'gbellmf'; 9 - 'smf';10 - 'zmf';11 - 'pimf'.

При задании другого типа функции принадлежности предполагается, что она определена пользователем и задана соответствующим m-файлом. Функция evalmf возвращает выходной аргумент y, содержащий степени принадлежности координатвектора x.

EVALFIS -Выполнение нечеткого логического вывода. Синтаксис: output = evalfis(input, fis);output = evalfis(input, fis, numPts). Функция evalfis может иметь три входных аргумента, первые два из которых обязательные:

input – матрица значений входных переменных, для которых необходимо выполнить нечеткий логический вывод. Матрица должна иметь размер M x N, где N – количество входных переменных; M – количество входных данных. Каждая строчка матрицы представляет один вектор значений входных переменных;

fis – идентификатор системынечеткогологическоговывода;

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

Функция evalfis может иметь четыре выходных аргумента:

output – матрица значений выходных переменных, получаемая в результате нечеткого логического вывода для вектора входных значений input. Матрица имеет размер M x L, где M – количество входных данных; L – количество выходных переменныхв fis;

IRR – матрица размером NR x N, где NR – количество правил в fis; N – количество входных переменных. Матрица содержит степени принадлежности входных значений термам, входящих в базу знаний;

ORR – матрица размером numPts x (NR*L), где numPts – количество точек дискретизации; Аргументы IRR, ORR являются необязательными, они содержат промежуточные результаты нечеткого логического вывода.

Возможности и назначение ANFIS-редактора.

ANFIS является аббревиатурой Adaptive Neuro-Fuzzy Inference System – (адаптивная нейро-нечеткая система). ANFIS-редактор позволяет автоматически синтезировать из экспериментальных данных нейро-нечеткие сети. Нейро-нечеткую сеть можно рассматривать как одну из разновидностей систем нечеткого логического вывода типа Сугэно. При этом функции принадлежности синтезированных систем настроены (обучены) так, чтобы минимизировать отклонения между результатами нечеткого моделирования и экспериментальными данными. Загрузка ANFIS-редактора осуществляется по команде anfisedit.

ANFIS-редактор содержит 3 верхних меню - File, Editи View, область визуализации, область свойств ANFIS, область загрузки данных, область генерирования исходной системы нечеткого логического вывода, область обучения, область тестирования, область вывода текущей информации, а также кнопки Helpи Close, которые позволяют вызвать окно справки и закрыть ANFIS-редактор, соответственно.

Область визуализации

В этой области выводится два типа информации:

· при обучении системы – кривая обучения в виде графика зависимости ошибки обучения от порядкового номера итерации.

· при загрузке данных и тестировании системы – экспериментальные данные и результаты моделирования.

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

голубая точка (.) – теструющая выборка;

голубая окружность (o) – обучающая выборка;

голубой плюс (+) – контрольная выборка;

красная звездочка (*) – результаты моделирования.

Область свойств ANFISВ области свойств ANFIS (ANFIS info) выводится информация о количестве входных и выходных переменных, о количестве функций принадлежностей для каждой входной переменной, а также о количестве строчек в выборках. В этой области расположены две кнопки Structureи Clear Plot.

Нажатие кнопки Structureоткрыет новое графическое окно, в котором система нечеткого логического вывода представляет в виде нейро-нечеткой сети.

Нажатие кнопки Clear Plotпозволяет очистить область визуализации.

Область загрузки данных

В области загрузки данных (Load data) расположены:

· меню выбора типа данных (Type), содержащее альтернативы:

o Traning -обучающая выборка;

o Testing - тестирующая выборка;

o Checking - контрольная выборка;

o Demo - демонстрационный пример;

· меню выбора источника данных (From), содержащее альтернативы:

o disk – диск;

o worksp.-рабочая область MatLab;

· кнопка загрузки данных Load Data…;

· кнопка очистки данных Clear Data.

Примечание. В течении одной сеанса работы ANFIS-редактора можно загружать данные одного формата, т.е. количество входных переменных в выборках должно быть одинаковым.

Наши рекомендации