|
Раздел "Проектирование систем управления\Fuzzy Logic Toolbox"
Список функций Fuzzy Logic Toolbox
\ \
|
|
Замена правил нечеткой базы знаний |
Синтаксис:
outfis = parsrule (infis, inrulelist, ruleformat, lang)
[outfis, outrulelist, errorstr] = parsrule (infis, inrulelist, ruleformat, lang)
Описание:
Функция parsrule предназначена для ввода правил в нечеткую базу знаний. При этом удаляются ранее существующие в базе знаний правила. Функция parsrule может иметь до четырех входных аргументов, первые два из которых обязательные:
- infis - идентификатор исходной системы нечеткого логического вывода;
- inrulelist - список правил "если - то". Правила можно задавать в виде предложений на английском, немецком и французских языках, а также в символьном и индексном форматах. Примеры правил в различных форматах приведены в руководстве пользователя по Rule Editor. При задании правил на естественном языке необходимо использовать следующие ключевые слова:
- для английского языка - "if", "and", "or", "then", "is", "not";
- для французского языка - "si", "et", "ou", "alors", "est ","n''est_pas";
- для немецкого языка - "senn", "und", "oder", "dann", "ist", "nicht",
которые эквиваленты русским словам "если", "и", "или", "то", "есть", "не", соответственно. Весовой коэффициент можно указать в конце правила. По умолчанию значение весового коэффициента равно 1. Список правил задается в виде матрицы, каждая строчка которой определяет одно правило;
- ruleformat - формат правил. Допустимые значения:
'verbose' - словесный;
'symbolic' - символьный;
'indexed' - индексный.
Значение по умолчанию - 'verbose'. Примеры представления нечетких правил в различных форматах приведены в разделе 7.3.В формате 'verbose' невозможно в качестве значений переменной использовать терм 'none'. Для задания "коротких" правил необходимо из правила исключить наименования соответствующих переменных;
- lang - язык представления правил в формате 'verbose'. Допустимые значения:
'english' - английский;
'francais' - французский;
'deutsch' - немецкий.
По умолчанию установлен английский язык.
Функция parsrule может иметь до трех выходных аргументов:
- outfis - идентификатор системы нечеткого логического вывода с новыми правилами;
- outrulelist - список правил системы outfis. Список представляет собой матрицу целых положительных чисел, соответствующих правилам, заданных матрицей inrulelist. Для преобразование чисел в символы необходимо использовать функцию char. Вошедшие в outfis корректно заданные правила в этом списке имеют порядковый номер. Наличие символа '#' указывает на то, что соответствующее правило является некорректным.
- errorstr - список ошибок задания правил.
Пример:
infis=readfis('tipper');
r1='if service is good then tip is average ';
r2='if service is poor and food is rancid then tip is cheap ';
r3='if service is excellent and food is delicious then tip is generous';
inrulelist=[r1; r2; r3];
outfis=parsrule(infis,inrulelist)
Загружается в рабочую область демонстрационная система нечеткого логического вывода "Tipper", задающая зависимость размера чаевых от качества пищи и уровня сервиса в ресторане. Затем формируется новая база знаний, содержащая следующие правила:
"if service is good then tip is average";
"if service is poor and food is rancid then tip is cheap";
"if service is excellent and food is delicious then tip is generous'".
\ \
|
|