ЗМІСТ
Вступ................................................................................................................... 4
Перелік лабораторних робіт.............................................................................. 5
Лабораторна робота № 1 Створення та настройка експертної системи з
використанням Fuzzy Logic Toolbox математичного пакета MatLab............... 5
Лабораторна робота № 2 Порівняльне дослідження роботи
алгоритмів Мамдані та Сугено в однотипних додатках................................. 15
Лабораторна робота № 3 Створення інтелектуальної нейронної мережі
для задач апроксимації та для передбачення значення функції за
допомогою пакета Neural Networks................................................................. 22
Лабораторна робота № 4 Моделювання багатошарової нейронної мережі. 31
Лабораторна робота № 5 Ознайомлення з принципами роботи
нейронних мереж у складі систем керування.................................................. 43
Лабораторна робота № 6 Генетичні алгоритми.............................................. 51
Критерії оцінювання......................................................................................... 63
Список літератури............................................................................................ 64
|
|
ВСТУП
Необхідність вивчення дисципліни «Програмування систем штучного
інтелекту» випливає з кваліфікаційної характеристики напряму 6.050201
«Системна інженерія», що визначає як мету навчання підготовку фахівців,
здатних самостійно і творчо розв’язувати задачі проектування, дослідження, експлуатації систем керування й автоматики та їх програмного забезпечення.
Метою вивчення дисципліни «Програмування систем штучного інтелекту» є підготовка фахівців у сфері автоматизації завдань, що складно формалізуються, які до цих пір уважаються прерогативою людини. Завданням вивчення дисципліни є отримання знань про способи мислення людини, а також про методи їх реалізації на комп'ютері.
Мета проведення лабораторних робіт – закріпити знання, отримані на лекціях, шляхом створення прикладних комп'ютерних програм.
Задачі проведення лабораторних робіт, унаслідок яких студенти повинні вміти:
- використовувати знання мов програмування для конкретних технічних задач, набути навичок розробки програмного середовища;
- освоїти роботу з математичним пакетом MatLab, а саме з пакетом
розширення з нейронних мереж Neural Networks Toolbox, пакетом нечіткої логіки Fuzzy Logic Toolbox та пакетом генетичних алгоритмів Genetic Algorithm and Direct Search Toolbox.
Методичні вказівки щодо виконання лабораторних робіт з навчальної дисципліни “Програмування систем штучного інтелекту” містять короткі теоре-тичні відомості з кожної теми, порядок виконання роботи, зміст звіту, контрольні питання та вказівки для користування літературними джерелами.
|
|
Перелік лабораторних робіт
Лабораторна робота № 1
Тема. Створення та настройка експертної системи з використанням Fuzzy Logic Toolbox математичного пакета MatLab
Мета: вивчити основи програмування в математичному пакеті MatLab у додатку Fuzzy Logic Toolbox. Навчитися створювати елементарні експертні
системи з набором правил у базі даних системи.
Короткі теоретичні відомості
Fuzzy Logic Toolbox – це пакет прикладних програм, що входять до складу середовища MatLab. Він дозволяє створювати системи нечіткого логічного
виведення і нечіткої класифікації в рамках середовища MatLab з можливістю їх інтеграції в Simulink.
Основні властивості:
- визначення змінних, нечітких правил і функцій належності;
- інтерактивний перегляд нечіткого логічного виведення;
- сучасні методи: адаптивне нечітке виведення з використанням
нейронних мереж, нечітка кластеризація;
- інтерактивне динамічне моделювання в Simulink;
- генерація переносного С коду за допомогою Real-Time Workshop.
Пакет Fuzzy Logic містить п’ять графічних редакторів для представлення необхідної інформації в процесі проектування, створення і тестування нечітких моделей.
Пакет Fuzzy Logic містить сучасні методи нечіткого моделювання,
включаючи:
- адаптивне нечітке виведення з використанням нейронних мереж для автоматичного формування функції належності в процесі навчання їх на вхідних даних;
- нечітку логіку і кластеризацію для задач розпізнавання образів;
- можливість вибору широко відомого метода Мамдані або метода
Сугено для створення гібридних нечітких систем.
Пакет дозволяє роботу:
- у режимі графічного інтерфейсу;
- у режимі командного рядка;
- з використанням блоків та прикладів пакета Simulink.
Базовим поняттям Fuzzy Logic Toolbox є FIS-структура – система нечіткого виведення (Fuzzy Inference System). FIS-структура містить усі необхідні дані для реалізації функціонального відображення “входи-виходи” на основі нечіткого логічного виведення згідно зі схемою, наведеною на рис. 1.1.
Рисунок 1.1 – Нечітке логічне виведення
Позначення: – вхідний чіткий вектор; – вектор нечітких множин, що відповідає вхідному вектору ; – результат логічного виведення у вигляді вектора нечітких множин; – вихідний чіткий вектор.
Склад графічного інтерфейсу
Fuzzy Logic Toolbox містить наступні редактори:
- редактор нечіткої системи виведення Fuzzy Inference System Editor (FISEditor або FIS-редактор) разом з додатковими програмами – редактором функцій належності (Memberhip Function Editor), редактором правил (Rule Editor), вікно перегляду правил (Rule Viewer) і вікном перегляду поверхні відгуку (SurfaceViewer);
- редактор гібридних систем (ANFIS Editor, ANFIS-редактор);
- програма знаходження кластерів (програма Clustering – кластеризація).
Редактор нечіткої системи виведення
Командою (функцією) fuzzy з режиму командного рядка запускається
основна інтерфейсна програма пакета Fuzzy Logic – редактор нечіткої системи виведення. Головне вікно наведено на рисунку 1.2.
Рисунок 1.2 – Вигляд вікна FIS Editor
Графічний інтерфейс гібридних мереж
Головне вікно редактора ANFIS Editor викликається командою anfisedit з командного рядка, вигляд якого наведено на рисунку 1.3.
За допомогою даного редактора виконується створення або завантаження гібридної системи, перегляд структури, настроювання її параметрів, перевірка якості функціонування такої системи.
Рисунок 1.3 – Вікно редактора гібридних систем
Графічний інтерфейс програми кластеризації
Програма Clustering (кластеризація) дозволяє виявляти центри кластерів, тобто точки в багатовимірному просторі даних, біля яких групуються (скупчуються) експериментальні дані.
Запуск програми Clustering виконується командою findcluster. На рисунку 1.4 наведено приклад використання програми.
Рисунок 1.4 – Результат роботи програми Clustering
|
|
Робота в редакторі нечіткої системи виведення
Fuzzy Inference System Editor
Для завантаження основного fis-редактора надрукуємо слово fuzzy в командному рядку. Після цього відкриється нове графічне вікно, зображене на рисунку 1.2. Для того щоб додати нову вхідну змінну, необхідно в меню Edit вибрати команду Add Variable…\Input. Для зміни імені змінної необхідно ввести нове ім’я в полі Name і натиснути клавішу Enter. Для того щоб задати ім’я системі, необхідно в меню File вибрати в підменю Export команду ToFile і ввести ім'я файла.
Щоб перейти в редактор функцій приналежності, необхідно двічі натиснути на будь-якій з функцій, де можна вибирати властивості конкретної, вікно відображено на рисунку 1.5:
Рисунок 1.5 – Редактор функцій належності
Внизу вікна вказуються наступні властивості функції:
Current Variable:
- Name – ім’я функції;
- Type – тип (вхідна чи вихідна);
- Range – діапазон змінної;
- Display Range – відображуваний діапазон.
Current Membership Function:
- Name – ім’я поточної функції належності;
- Type – тип терму функції належності – вибирається з переліку (трикутна, трапецеїдальна, ґауссові 1 та 2-го порядку та інші);
- Params – числові значення терму функції належності.
Для задання нових функцій належності для змінної необхідно в меню Edit вибрати команду AddMFs... У результаті з'явитися діалогове вікно (рисунок 1.6) вибору типу і кількості функцій належності.
Рисунок 1.6 – Задання функцій належності
Вибравши необхідну кількість термів та їх тип, натиснути OK.
Ім’я та числове значення термів можна змінити, виділивши необхідний, і задати у відповідних полях області Current Membership Function нові значення.
Редактор бази знань RuleEditor
Для виклику редактора необхідно вибрати в меню Edit команду Rules ..., відобразиться головне вікно, зображене на рисунку 1.7.
Рисунок 1.7 – Редактор правил
Для створення нових правил необхідно вибрати відповідну комбінацію термів і залежностей, вибрати тип зв’язку: or або and, вагу правила Weight, значення вихідної змінної та натиснути кнопку Addrule.
Для перегляду вікна візуалізації нечіткого логічного виведення викликаємо його командою Viewrules... меню View.
|
|
Рисунок 1.8 – Візуалізація нечіткого логічного виведення в RuleViewer
Можна переглянути поверхню “входи-виход”, відповідну синтезованій нечіткій системі. Для виведення цього вікна необхідно використовувати команду Viewsurface ... меню View.
Рисунок 1.9 – Поверхня відгуку нечіткої системи