Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППР_ЛР.doc
Скачиваний:
2
Добавлен:
18.11.2019
Размер:
476.16 Кб
Скачать

Завдання

Розробити власну СППР на основі нечіткого логічного виведення (4 вхідні лінгвістичні змінні та 1 вихідна лінгвістична змінна), вміти редагувати та додавати нові лінгвістичні змінні та блоки правил в проект.

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

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

Етап 1 Визначення вхідних та вихідних змінних.

Вхідні лінгвістичні змінні:

  • – якість оформлення – діапазон зміни: [0 100], число термів: 3 (“низький” L, “середній” M, “високий” H), форма ФН: трикутна;

  • – обсяг виконаної роботи – діапазон зміни: [60 100], число термів: 3 (“низький” L, “середній” M, “високий” H), форма ФН: трикутна;

  • – захист дипломної роботи – діапазон зміни: [2 5], число термів: 3 (“низький” L, “середній” M, “високий” H), форма ФН: трикутна;

Вихідні лінгвістичні змінні:

  • – оцінка дипломної роботи – діапазон зміни: [0 100], кількість термів: 5 (“низький” L, “нижче середнього” LM, “середній” M, “вище середнього” MH, “високий” H), форма ФН: трикутна;

Етап 2 Складання бази правил

Таблиця 1 База правил RB1

Оформлення

Виконання

Захист

Оцінка

L

L

L

L

L

L

M

LM

L

L

H

M

L

M

L

LM

L

M

M

LM

L

M

H

M

L

H

L

LM

L

H

M

M

L

H

H

M

M

L

L

LM

M

L

M

LM

M

L

H

M

M

M

L

LM

M

M

M

M

M

M

H

MH

M

H

L

M

M

H

M

MH

M

H

H

MH

H

L

L

LM

H

L

M

M

H

L

H

M

H

M

L

M

H

M

M

MH

H

M

H

H

H

H

L

MH

H

H

M

MH

H

H

H

H

Етап 3 Розробка експертної системи в середовищі FuzzyTECH

1. Запускаємо програму FuzzyTECH

2. В редакторі проекту командою Edit/New Variable додаємо нову змінну. У діалоговому вікні (рис. 2) змінюємо текст у полі Name на імена наших змінних, тип змінної залишаємо Input Interface (вхідна змінна), метод фазифікації також залишаємо не змінним Compute MBF.

Рис. 2 Вибір типу та методу фазифікації змінної

3. Натиснувши кнопку Next ми переходимо до наступного вікна визначення властивостей змінної (рис. 3). В цьому вікні необхідно вказати діапазон зміни лінгвістичної змінної (граничні положення визначають поля min та max), а також у полі Default вказати значення, яке прийматиме змінна по замовчанню в режимі відладки. Поле Unit призначене для відображення одиниць вимірювання даної лінгвістичної змінної.

Рис. 3 Вибір діапазону зміни лінгвістичної змінної

4. Натиснувши кнопку Next відбудеться перехід до діалогового вікна (рис. 4), де необхідно визначитися з числом термів та формою їх функцій належності. У полі Number вводимо кількість термів, у списку Name можна обрати їх стандартні імена, які потім при бажанні можна змінити. В цьому вікні також можна змінити форму функцій належності термів (High Shoulder – для вхідних змінних, Low Shoulder – для вихідних змінних), положення мод окремих функцій належності відносно ширини діапазону значень лінгвістичної змінної у полі Width, а також симетричність та асиметричність функцій належності. У полі Width змінити положення мод зі 100% на 50%.

Рис. 4 Визначення числа термів та їх функцій належності

5. Якщо додавати коментарії до змінної не має необхідності (останнє діалогове вікно), то можна натиснути кнопку End, що призведе до закриття майстра і створення нової лінгвістичної змінної.

6. Використовуючи пункти 1-5 додаємо в проект всі інші лінгвістичні змінні (рис. 5), не забуваючи змінювати властивості у вихідної змінної.

Рис. 5 Проект із всіма лінгвістичними змінними

7. Командою Edit/New Rule Block додаємо блок (базу) правил для наших змінних, у першому діалоговому вікні майстра визначаємо набір вхідних та вихідних лінгвістичних змінних (рис. 6).

Рис. 6 Перше діалогове вікно майстра блоку правил

8. Натиснувши кнопку Next ми переходимо до наступного діалогового вікна, де можна встановити операції агрегування для всіх правил. Ми залишаємо всі параметри незмінними (рис. 7). На цьому етапі майстра можна натиснути кнопку End, після чого в проекті з’явиться новий елемент, а саме блок правил (рис. 8).

9. Для того щоб заповнити блок правил, потрібно подвійним клацанням правої кнопки миші активізувати цей блок, після чого з’явиться вікно з вже заповненими правилами (згідно з розсудом програми), але їх необхідно частково видалити кнопкою Partial Rule Block на панелі інструментів цього ж вікна, саме ту частину, яка відповідає за вихідну лінгвістичну змінну.

Рис. 7 Друге діалогове вікно майстра блоку правил

Рис. 8 Проект із новим блоком правил

10. Далі ми самі заповнюємо значення вихідної змінної згідно з побудованої бази правил на другому етапі.

11. Використовуючи розроблений проект, проводимо його інтерактивну відладку (Debug>Interactive) для того, щоб в подальшому можна було провести аналіз та візуалізацію результатів (рис. 9). Змінюючи положення бігунка по кожній змінній ми можемо на виході отримати значення вихідної лінгвістичної змінної.

Рис. 9 Вікно інтерактивної відладки

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