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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!