Defuzzification Method: Weighted Sum.
Шаг второй. Каждой входной и выходной переменной поставим в соответствие набор ФП. Для discont определяем диапазон базовой переменной от 5 до 50 (единица измерения – проценты). Такой же диапазон выбираем для ее отображения. Добавим три ФП, тип которых – trimf, и присвоим им наименования – small, middle, big, соответственно, небольшой, средней и большой ставке дисконтирования (см. рис. 7).
Переменной period диапазон базовой переменной определен равным [3,36] (единица измерения – месяцы), поставлены в соответствие три ФП типа gaussmf с наименованиями - short, normal, long. Таким образом, переменная срока окупаемости бизнес-проекта будет принимать следующие значения: короткий, обычный и длительный срок окупаемости (рис.8).
Для переменной rate определяем: базовая переменная изменяет значение в диапазоне [0, 1]. Основное отличие нечеткого вывода по Сугено от СНВ Мамдани заключается в том, что выходная переменная имеет три значения: bad, normal, good, которые задаются соответственно тремя константами – 0, 0.5, 1 (рис.9).
Шаг третий. Заключительным этапом построения СНВ является определение набора правил, которые задают связь входных переменных с выходными.
Для этого в редакторе правил вывода определим:
ЕСЛИ discont = small И period = short ТО rate = good
ЕСЛИ discont = НЕ small И period = long ТО rate = bad
ЕСЛИ discont = middle И period = normal ТО rate = normal
ЕСЛИ discont = big И period = short ТО rate = normal
Рис.8. Входная переменная Period
Рис.9. Выходная переменная Rate
|
|
Текущее состояние окна редактора правил вывода показано на рис. 10.
Средство просмотра поверхности вывода. Для этого существует функция plotsurf. Она вызывается из командной строки окна SciLAB и имеет следующие параметры вызова: plotsurf( fls [, ivar , ovar , vivar [,npart[,mod]]]) .
Параметры функции: fls – имя fls-структуры;
ivar – вектор входных переменных (задаются порядковые номера входных переменных, которые необходимо построить);
ovar – скаляр, номер выходной переменной;
vivar – вектор значений входных переменных;
npart – вектор, number of partitions domain for each input variable;
mod – скаляр, вид отображения поверхности на экране. 1 – grayscale, 2 – jetcolormap, 3 – hotcolormap, 4 – internalcolormap.
Необходимо сохранить полученную систему в рабочее пространство среды SciLAB с помощью пункта меню File –> Export–> To workspace. Внимание! В этом случае данные сохраняются до окончания сеанса работы с SciLAB. Для сохранения данных на диск после окончания сеанса работы применяется соответствующий пункт того же меню – To FLS file…
Рис.10. Редактор правил вывода
Пример 2.
fls=loadfls(flt_path()+"demos/MyEX.fls");
xbasc();
plotsurf(fls,[1 2],1,[0 0]);
Поверхность вывода, соответствующая правилам вывода примера 1 показана на рис.11.
Рис. 11. Поверхность нечеткого вывода
Пример 3. Разработать простую нечёткую экспертную систему по оцениванию привлекательности путёвки. Использовать пять входных лингвистических переменных – Accommodation (проживание), food (питание), excursions (наличие экскурсий), health services (оздоровительные услуги), price(цена) и одну выходную – tip (привлекательность).
|
|
Для решения подобных задач с нечёткой логикой в SciLAB используется компонент под названием Fuzzy Logic Toolbox. Чтобы начать работу с ней нам нужно установить его, для этого запустим программу и во вкладке Инструменты нажмём Управление модулями Atoms (рис.12). Далее в открывшемся окне следует перейти в папку все модули и выбрать Fuzzy Logic Toolbox и нажать установить. Когда компонент установиться следует перезапустить программу. После запуска программы в командном окне появиться запись об успешной загрузке компонента (рис.13).
Рис. 12. Вкладка запуска управления модулями Atoms
Рис. 13. Вывод в командном окне об успешной загрузке компонента Fuzzy Logic Toolbox
Для дальнейшей работы с нечёткой логикой нам необходимо набрать в командном окне команду editfls, после этого откроется окно для работы с нечёткой логикой (рис.14).
Сначала создадим систему с нечёткой логикой по алгоритму Сугено. Для этого во вкладе File выберем Newfls – Takagi-Sugeno. Справа в окне Description зададим параметры:
|
|
Name: permit
Type: Takagi-Sugeno
S-Norm Class: Maximum
T-Norm Class: Minimum
Complemet: One
Implication method: Product
Aggregation method: Maximum
Дата добавления: 2019-09-13; просмотров: 894; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!