Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 115 Методичні рекомендації до лабораторних робіт на тему Експертні системи на основі нечіткого логічного висновку

Методичні рекомендації до лабораторних робіт на тему Експертні системи на основі нечіткого логічного висновку

« Назад

Лабораторна робота

Тема: Експертні системи на основі нечіткого логічного висновку

Мета: Створення експертної системи на основі нечіткого логічного висновку

Теоретичні відомості

Лінгвістичною змінною називається така змінна, значенням якої є слова та словосполучення деякої природної чи штучної мови.

Терм-множина - множина всіх можливих значень лінгвістичної змінної.

Терм - будь-який елемент терм-множини. Терм задається нечіткою множиною за допомогою функції належності.

Нечіткою базою знань - називається сукупність нечітких правил "Якщо - то", які визначають взаємозв'язок між входами і виходами досліджуваного об'єкта.

Посилка нечіткого правила є твердженням у вигляді "х є великий", де "великий" - це терм, заданий нечіткою множиною на універсальній множині лінгвістичної змінної.

Заключення правила являє собою твердження типу "y є d", в якому значення вихідної змінної (сі) може задаватися:

- нечітким термом: "у є значний";

- чіткою функцією від вхідних змінних: "у=5+4*х";

- чіткою константою: "у = 5";

- класом рішень: "у є нежить".

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

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

Система на основі нечіткого логічного висновку має вигляд, як показано на рис. 18.

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

Фазифікація - це процес, коли за допомогою функцій належності, визначених для вхідних змінних, визначається їх ступінь відповідності до кожного з лінгвістичних термів лінгвістичної змінної.

Блок нечіткого логічного висновку прогнозує вектор нечітких значень вихідних змінних (V), який відповідає вектору нечітких значень вхідних змінних (X); нечіткий логічний висновок виконують у декілька етапів:

Агрегація - це процес, який по часткових висновках дозволяє визначити істинність лінгвістичного правила.

Нечітка імплікація визначає формулу, згідно з якою модифікується терм вихідної змінної, відповідно до агрегованого значення входів правила.

Активація - визначення узагальненого ступеню відповідності вихідного сигналу певному лінгвістичному терму.

Акумуляція - формування результуючої функції належності, що характеризує вихідне значення системи для поточних значень входів.

Дефазифікація - це процес перетворення нечіткої множини на чітке число.

Алгоритм Mamdani є найбільш поширеною моделлю нечіткого логічного висновку. Функціями належності термів вихідних лінгвістичних змінних є нечіткі числа.

Завдання

У середовищі Matlab створити власну експертну систему на основі нечіткого логічного висновку (3 вхідні лінгвістичні змінні, 1 вихідна лінгвістична змінна).

 Приклад виконання роботи

Для визначення рівня конкурсу при вступі до ВНЗ аналізують час існування навчального закладу, витрати на рекламу адміністрацією ВНЗ, та кількість випускників шкіл. Необхідно розробити систему нечіткого логічного висновку Mamdani-типу для визначення рівня конкурсу при вступі до ВНЗ. Діапазон можливого часу існування навчального закладу від 0 до 60 років. Витрати на рекламу - від 0 до 5000 грн. Кількість випускників шкіл - від 2000 до 15000 чол. При визначенні рівня конкурсу ці величини задаються спеціалістами-експертами на основі відомої їм інофрмації.

Етап 1 Координати системи нечіткого логічного висновку

Вхідні:

  1. Час існування навчального закладу.

  2. Витрати на рекламу адміністрацією ВНЗ.

  3. Кількість випускників.

Вихідні:

1.   Конкурс на вступ до ВНЗ.

Етап 2 Лінгвістичні змінні

Вхідні координати:

1. Час існування навчального закладу (Exists):

Діапазон зміни: [0 60]

Число термів: 3 ("невеликий" (L), "середній" (M), "тривалий" (H))

Форма функцій належності: Трикутна

2. Витрати на рекламу адміністрацією ВНЗ (Reklama):

Діапазон зміни: [0 5000]

Число термів: 3 ("низькі" (L), "середні" (M), "високі" (H))

Форма функцій належності: Трикутна

3. Кількість випускників (Vipusk):

Діапазон зміни: [2000 15000].

Число термів: 3 ("низька" (L), "середня" (M), "висока" (H)).

Форма функцій належності: Трикутна.

Вихідна координата:

Конкурс на вступ до ВНЗ (Konkurs):

Діапазон зміни: [0 20]

Число термів: 5 ("низький" (L), "нижче середнього" (LM),

"середній" (M), "вище середнього" (HM), "високий" (H))

Форма функцій належності: Трикутна

Етап 3 База правил

Етап 4 Створення експертної системи у середовищі MatLab

1. Запустимо MatLab.

2. Командою fuzzy з командного вікна відкриємо редактор нечітких систем.

3. Командою меню Edit\Add_Input додамо другу вхідну координату.

4. Змінимо імена координат, що були присвоєні автоматично, введенням нових імен в полі Name поточного вікна, почергово вибираючи вхідні і вихідну координати (рис. 20).

5. Командою меню View\Edit_Membership_functions перейдемо до вікна редагування функцій належності лінгвістичних змінних.

6. Виділимо за допомогою миші першу вхідну координату Exists.

7. Встановимо необхідне значення діапазону її зміни у полі Range поточного вікна.

8. Командою меню Edit\Add_mfs задамо число лінгвістичних термів (3) для координати Exists та форму їх функцій належності (trimf –трикутна).

9. Почергово вибираючи графіки функцій належності дати імена (в полі Name).

10. Виконаємо пп. 6 – 9 для координат Reklama, Vipusk і Konkurs.

11. Закрити вікно редагування функцій належності.

12. Перейти до вікна редактора правил командою меню View\Edit_Rules.

13. Введемо базу правил, почергово створюючи кожне правило в області формування правила використовуючи конструкцію

if Exists is (L, M, H) and Rekslama is (L,M,H) and

Vipusk is (L,M,H) then Konkurs is (L, LM, M, HM, H)

та вводячи його в базу правил за допомогою кнопки Add_rule.

14. Закриємо вікно редактора правил.

15. Командою меню File\Save_to_workspace_as помістимо створену нечітку експертну систему робоче середовище MatLab під вибраним ідентифікатором (наприклад ES51).

16. Закриємо вікно редактора нечітких систем.

Етап 5 Перегляд результатів роботи

В командному вікні виведемо на екран структуру системи, викликаючи її ідентифікатор ES51. Визначимо необхідне значення тиражу для декількох варіантів вхідних даних використовуючи стандартну функцію evalfis з синтаксисом:

evalfis (Вектор_Вхідних_Значень, Ідентифікатор_Нечіткої_Системи).

наприклад:

evalfis ([3 1000 5000], ES51)

або

A = [10 3000 10000];

evalfis (A, ES51).

Результатом цієї функції є значення вихідної координати системи нечіткого логічного висновку для конкретного значення вектора вхідних координат.

Продивитись процедуру розрахунку результату детально можна за допомогю пункта меню View\View Rules…

Етап 6 Графіки залежностей вихідної змінної від входів

За допомогою пункта меню View\View Surface... побудуємо характеристичні поверхні експертної системи для прийняття рішень на основі нечіткого логічного висновку.

З повагою ІЦ "KURSOVIKS"!