Добавил:
darkwarius13@gmail.com Рад если помог :). Можешь на почту спасибо сказать Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_HM14_2018.doc
Скачиваний:
62
Добавлен:
27.06.2021
Размер:
1.97 Mб
Скачать

Лабораторна робота № 3 Моделювання нечіткої системи засобами інструментарію нечіткої логіки

3.1 Мета роботи

Метою заняття є вивчення методів побудови нечіткої системи за допомогою модуля SciFLT середовища SciILAB та за допомогою пакету Fuzzy Logic Toolbox середовища MatLab.

3.2. Методичні вказівки з організації самостійної роботи студентів

При розробці інтелектуальних систем знання про конкретну предметну область, для якої створюється система, рідко бувають повними й абсолютно достовірними. Навіть кількісні дані, отримані шляхом досить точних експериментів, мають статистичні оцінки вірогідності, надійності, значимості і т.д. Інформація, якою заповнюються експертні системи, отримується у результаті опитування експертів, думки яких є суб’єктивними і можуть розходитися. Поряд із кількісними характеристиками в базах знань інтелектуальних систем повинні зберігатися якісні показники, евристичні правила, текстові знання і т.д. При обробці знань із застосуванням механізмів формальної логіки виникає протиріччя між нечіткими знаннями і чіткими методами логічного виведення. Розв’язати це протиріччя можна шляхом подолання нечіткості знань (коли це можливо) або використанням спеціальних методів подання й обробки нечітких знань.

Системи нечіткого виводу призначені для перетворення значень вхідних змінних процесу у вихідні змінні на основі використання нечітких продукційних правил. Для цього системи нечіткого виведення повинні містити базу правил нечітких продукцій і реалізовувати нечітке виведенння на основі посилок або умов, представлених у формі нечітких лінгвістичних висловлювань.

Основними етапами нечіткого виведення є:

  1. формування бази правил систем нечіткого виведення.

  2. фазифікація вхідних змінних.

  3. агрегація підумов в нечітких правилах продукцій.

  4. активізація або композиція підвисновків в нечітких правилах продукцій.

  5. акумулювання висновків нечітких правил продукцій.

Для підготовки до лабораторної роботи слід опрацювати конспект лекцій за темами: «Продукційні нечіткі моделі», «Алгоритми нечіткого логічного виведення», а також відповідний матеріал з переліку рекомендованої літератури [2, 3, 4, 6].

3.3. Методичні вказівки та короткі відомості щодо виконання лабораторної роботи

1. Провести моделювання нечіткої системи засобами інструментарію нечіткої логіки за допомогою модуля SciFLT середовища SciILAB чи за допомогою пакету Fuzzy Logic Toolbox середовища MatLab.

2. Оформити звіт за результатами лабораторної роботи та захистити його.

1. Моделювання нечіткої системи засобами інструментарію нечіткої логіки в середовищі SciAb.

У SciFLT реалізовані всі основні функції, необхідні для створення та модифікації систем нечіткого виведення.

Для побудови системи нечіткого виведення в командному рядку основного вікна SciLAB необхідно набрати команду editfls. Ця команда викликає графічний редактор систем нечіткого виведення (СНВ).

Редактор снв для побудови нечітких систем

У меню необхідно вибрати File->New FLS->тип створюваної системи (Мамдані або Сугено).

Спочатку створимо систему нечіткого виводу за Мамдані.

У лівій панелі з'явиться Tree-control – дерево створюваної нечіткої системи.

Спочатку вибираємо в ньому пункт Description і заповнюємо форму, що з'явилася справа. У ній необхідно вказати ім'я системи, що редагується, коментарі (не обов'язково), види T-норми і S-конорми, тип операторів доповнення, імплікації, агрегації і метод дефазифікації.

Для системи за Мамдані зазвичай вибирають такі типи операторів (див. рис. 1).

Далі визначаємо склад вхідних і вихідних змінних. Для цього необхідно вибрати в дереві пункти Inputs і Outputs відповідно. У вікні справа з'явиться кількість змінних, їх список, а також кнопки Add, Delete і Exit. Додаємо нові змінні кнопкою Add.

Збереження системи, що проектується в робочий простір середовища SciLAB проводиться за допомогою пункту меню File –> Export–> To workspace. В цьому випадку дані зберігаються до закінчення сеансу роботи з SciLAB. Для збереження даних на диск після закінчення сеансу роботи застосовується відповідний пункт того ж меню – To FLS file .

Рис. 1. Опис системи.

Редактор змінних

Для редагування змінних (перейменування, завдання діапазону значень, визначення типу функції приналежності) необхідно вибрати в списку вхідних або вихідних змінних потрібну.

Тоді в правому вікні з'явиться редактор змінних (див. рис. 2).

В ньому необхідно задати ім'я та діапазон допустимих значень. За допомогою кнопки Add внизу вікна додати функції приналежності. Їх можна також видаляти, помітивши клацанням миші і натиснувши кнопку Delete (checked).

Редактор ФП є інструментом, який дозволяє відображати і редагувати будь-які ФП, що асоціюються (зв'язані) зі всіма вхідними і вихідними змінними СНВ, що розробляється.

Рис. 2. Редактор змінних (вхідна змінна з прикладу 1 Discount).

Редагують ФП поточної змінної змінюючи характеристики ФП (найменування, тип і числові параметри). Таким чином, при побудові СНВ необхідно за допомогою редактора ФП визначити відповідні функції для кожної з вхідних і вихідних змінних.

Редактор правил виведення

Після того, як вказана кількість вхідних і вихідних змінних, визначені їх найменування і побудовані відповідні ФП, в СНВ необхідно включити правила виведення. Для цього в дереві контролю вибирається пункт Rules.

Грунтуючись на описах вхідних і вихідних змінних, визначених в редакторові ФП, редактор правил виведення формує структуру правила автоматично. Від користувача потрібно лише зв'язати значення вхідних і вихідних змінних, вибираючи із списку заданих раніше ФП, і визначити логічні зв'язки між ними. Також допускається використання логічного заперечення (НЕ) і зміна ваг правил в діапазоні від 0 до 1.

Приклад 1. Як приклад, що ілюструє метод побудови СНВ, розглянемо наступну ситуацію. Необхідно оцінити ступінь інвестиційної привабливості конкретного бізнес-проекту на основі даних про ставку дисконтування і період окупності.

Крок перший. Викликаємо редактор для створення СНВ, набираючи в командному рядку editfls. У вікні редактора, що з'явилося, створюємо нову систему за Мамдані. Заповнюємо опис як показано на рис. 1. Додаємо дві вхідні змінні і одну вихідну змінну.

В результаті отримаємо наступну структуру СНВ: два входи, механізм нечіткого виведення за Мамдані, один вихід. Оголосимо першу змінну як discont, а другу – period, які, відповідно, представлятимуть ставку дисконтування і період окупності бізнес-проекту. Найменування вихідний змінної, на підставі якої ухвалюється рішення про ступінь інвестиційної привабливості бізнес-проекту, задамо як rate. Збережемо модель, яку ми створили під ім'ям Invest. На рис. 1 представлений поточний стан вікна редактора СНВ.

Крок другої. Кожній вхідній і вихідній змінній поставимо у відповідність набір ФП. Для discont визначимо діапазон базової змінної від 5 до 50 (одиниця вимірювання відсотки). Такий же діапазон оберемо для її відображення. Додамо три ФП, тип яких – trimf, і привласнимо їм найменування – small, middle, big, які відповідають невеликій, середній і великій ставці дисконтування (рис. 2).

Для терміну окупності period діапазон базової змінної визначимо рівним [3, 36] (одиниця вимірювання місяці) і поставимо у відповідність три ФП типу gaussmf з найменуваннями short, normal, long. Таким чином, змінна терміну окупності бізнес-проекту прийматиме наступні значення: короткий, звичайний і тривалий термін окупності (рис. 3).

Рис. 3. Вхідна змінна Period.

Нарешті, для змінної rate визначимо: базова змінна змінює значення в діапазоні [0, 1], семантика описується трьома ФП типу trimf з найменуваннями: bad, normal, good (рис. 4).

Рис. 4. Вихідна змінна Rate.

У графічному вигляді змінні представлені на рис. 5 і 6 (меню View->Plot variables).

Рис. 5. Графічне представлення вхідних змінних.

Рис. 6. Графічне представлення вихідної змінної.

Крок третій. Завершальним етапом побудови СНВ є визначення набору правил, які задають зв'язок вхідних змінних з вихідними. Для цього в редакторові правил виведення визначимо:

ЯКЩО discont = small І period = short ТО rate = good

ЯКЩО discont = НЕ small І period = long ТО rate = bad

ЯКЩО discont = middle І period = normal ТО rate = normal

ЯКЩО discont = big І period = short ТО rate = normal

Поточний стан вікна редактора правил виводу показаний на рис. 7.

Засіб проглядання поверхні виводу (функція 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 internal color map.

Рис. 7. Редактор правил виведення.

Приклад 2.

fls=loadfls(flt_path()+"demos/MyEX.fls");

xbasc();

plotsurf(fls,[1 2],1[0 0]);

Поверхню виведення, що відповідає правилам виведення з прикладу 1 показано на рис. 8.

Рис. 8. Поверхня нечіткого виведення.

Побудова нечітких систем типу Сугено

Редактор СНВ. Для побудови СНВ типу Сугено необхідно в меню File вибрати пункт New Sugeno FIS. Кількість вхідних і вихідних змінних визначається так само, як і при побудові СНВ типу Мамдані.

Редактор ФП. Для СНВ типу Сугено зміни стосуються тільки схеми визначення ФП для вихідних змінних. У середовищі SciLAB можуть бути реалізовані два види нечітких моделей. Перша модель – це нечітка модель Сугено нульового порядку. В цьому випадку нечітке правило вивведення має наступний вигляд:

if x is A and у is B then z = k,

де A і B нечіткі множини антеценденту, k чітко задана константа консеквенту. Для побудови такої моделі при додаванні ФП необхідно вибрати тип константа (constant) і задати як параметр ФП числове значення відповідної константи. Друга модель нечітка модель Сугено першого порядку. Для неї нечітке правило виводу записується таким чином:

if x is A and у is B then z = px+qy+r,

де p, q і r – константи.

В цьому випадку тип ФП – лінійна залежність (linear). Для визначення параметрів ФП необхідно ввести вектор, елементи якого відповідають чисельним значенням констант консеквенту.

Робота з редактором правил виведення, а також із засобами перегляду правил і поверхні виведення виконується аналогічно випадку побудови СНВ за Мамдані.

Основна відмінність нечіткого виведення за Сугено з використанням нечіткої моделі нульового порядку і правил виведення, визначених вище, полягає в тому, що вихідна змінна має три значення: bad, normal, good, які задаються відповідно трьома константами – 0, 0.5, 1.

Соседние файлы в предмете Нечеткие множества