
- •К.Є. Золотько, д.В. Красношапка
- •1. Теоретичні основи створення систем штучного інтелекту
- •1.1. Методи розв’язання задач
- •Розв’язання задач методом пошуку в просторі станів
- •Загальна схема алгоритму Харта, Нільсона і Рафаеля
- •Розв’язання задач методом редукції
- •Розв’язання задач дедуктивного вибору
- •Розв’язання задач, що використовують немонотонну логіку, імовірнісну логіку
- •1.2. Експертні системи
- •Експертні системи, засновані на правилах (пряме виведення – forward chaining)
- •Експертні системи, що ґрунтуються на логіці (зворотне виведення – backward chaining)
- •Модуль (компонент) пояснення
- •Модуль (компонент) набуття знань
- •Етапи проектування експертної системи
- •Відмінність експертних систем від традиційних програм
- •2. Основи програмування мовою Visual Prolog
- •2.1. Загальний огляд мови Пролог
- •2.2. Основні теоретичні відомості Основні визначення мови Visual Prolog
- •2.3. Структура програми, складеної мовою Visual Prolog
- •2.4. Предикати введення – виведення
- •2.5. Об’єкти даних
- •Завдання 1
- •2.6. Вбудовані механізми мови Пролог. Керування бектрекінгом
- •2.7. Організація циклів. Рекурсія
- •2.8. Використання динамічної бази даних
- •2.9. Рекомендації щодо створення програм мовою Пролог
- •Завдання 2
- •2.10. Рекурсивні структури даних
- •Структура даних типу дерево
- •Обходи дерева
- •Бінарний пошук на дереві
- •Сортування за деревом
- •Лексикографічне впорядкування
- •2.11. Списки
- •Info("Шевченко о.В.", ["Інформатика", "Чисельні методи"]).
- •Info("Нікольський а.С.", ["Комп’ютерна графіка"]).
- •Info("Рябчук м.В.", ["Фізика", "Хімія", "Астрономія"]).
- •Info("Рябчук м.В.", X), write (X), nl.
- •Ігри двох осіб із повною інформацією
- •Мінімаксний принцип
- •Реалізація деяких методів пошуку в просторі станів у мові Пролог
- •Завдання 3
- •Засоби програмування інтерфейсів у Visual Prolog 5.2
- •3.1. Створення найпростішого додатка
- •Додавання пункту меню
- •Додавання речення для реагування на вибір пункту меню
- •Використання діалогових вікон, створених користувачем
- •Завдання 4
- •Варіанти завдань
- •Тема 1. Консультативна інтерактивна експертна система з визначення оптимальної конфігурації пеом
- •Тема 2. Діагностична інтерактивна експертна система пошуку причини й усунення несправності кольорового телевізора lg cf-20f60k
- •Порядок пошуку причини й усунення несправності телевізора lg cf-20f60k
- •Тема 3. Консультативна експертна система для вибору породи собаки
- •Тема 4. Медична консультативна експертна система щодо вибору лікарських трав
- •Тема 5. Експертна система для визначення мінерального добрива
- •Тема 6. Консультативна інтерактивна експертна система, яка допомагає директору фірми в процесі прийняття кандидата на роботу
- •Тема 7. Консультативна експертна система прогнозу повені та необхідності евакуації населення міста
- •Тема 8. Діагностична медична експертна система
- •Список рекомендованої літератури
- •Посібник до вивчення курсу
Модуль (компонент) пояснення
Як показано на рис. 5, ЕС повинна мати модуль пояснення. Без механізму пояснень користувач не довірятиме отриманим результатам і ЕС не матиме попиту. Призначення модуля пояснень – зробити ЕС „прозорою” для користувача, тобто надати можливість користувачу розуміти логіку дій ЕС, дати надійну гарантію правильності отриманих результатів.
У деяких випадках важливість пояснення для користувача дещо переоцінюють, тому що воно не завжди корисне для нього. Це має місце через природу „інтелекту” ЕС.
Правила найчастіше відображають емпіричні або „компільовані” знання. Вони становлять зведення наближених правил експерта, а не його глибинних знань, що приводять до цих наближених правил. Наприклад, розглянемо такий діалог з ЕС, розробленою для надання порад у разі поломки автомобіля:
Автомобіль заводиться? – Ні.
Двигун прокручується? – Так.
Пахне бензином? – Так.
Порада: Почекайте 5 хвилин і спробуйте завести знову.
Чому?
Я застосував правило: якщо автомобіль не заводиться, двигун прокручується і пахне бензином, тоді порада така: „Почекайте 5 хвилин і спробуйте завести знову”.
Це правило слушне для автомобіля, у карбюратор якого потрапила вода, але в ньому немає жодних відомостей про те, що таке карбюратор і чому допоможе п’ятихвилинна пауза. Якби користувач дійсно захотів зрозуміти, що сталося, йому була б потрібна невелика дисертація про функціонування карбюратора, його зв’язок із педаллю газу тощо.
Для того щоб зробити корисними пояснення для таких систем, необхідно не просто показувати, які правила застосовувала система. Один підхід полягає в тому, щоб супроводжувати правила більш глибокими поясненнями. Інший підхід – це організація більш глибоких знань у систему й використання їх як для отримання висновків, так і для пояснення.
Слід зауважити, що існують системи, у яких знання експерта є суто емпіричні. У цьому випадку пояснення системи корисне для користувача. До цієї категорії належать системи класифікації, наприклад система ідентифікації птахів. Система могла б пояснити ідентифікацію виду білий альбатрос правилами, застосованими для його ідентифікації. Немає жодної теорії, чому білий альбатрос – це білий альбатрос, а чорний – чорний альбатрос. Це просто правила для їх класифікації.
У той час як пояснення системи інколи не має значення для користувача, для розробника ЕС воно дуже важливе. Пояснення ЕС відіграє ту ж діагностичну роль, як і трасування для звичайних програм. Якщо система поводиться некоректно, експерт може застосувати пояснення для визначення помилкового правила. Інженер із знань застосовує пояснення для кращого настроювання БЗ з метою забезпечити більш реалістичний діалог із користувачем.
Існує чотири типи пояснень, звичайно застосовні в ЕС:
трасування правил, яке повідомляє про прогрес консультації;
пояснення того, як система дійшла певного висновку;
пояснення стосовно того, чому система ставить запитання;
пояснення щодо того, чому система не дала висновку.