- •К.Є. Золотько, д.В. Красношапка
- •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. Діагностична медична експертна система
- •Список рекомендованої літератури
- •Посібник до вивчення курсу
Відмінність експертних систем від традиційних програм
ЕС має певні особливості, що відрізняють її від звичайних програм:
1) компетентність. Це здатність:
– досягати експертного рівня рішень (тобто в конкретній предметній галузі мати той же рівень професіоналізму, що й експерт-людина);
– застосовувати знання ефективно й швидко, уникаючи непотрібних обчислень;
– лише поступово знижувати якість роботи з наближенням до меж діапазону роботи ЕС чи меж допустимої надійності даних;
2) здатність до символьних міркувань. Зокрема, система може здійснювати:
– подання знань у символьному вигляді;
– переформулювання символьних знань. Символи поєднують, щоб виразити відношення між ними. Відношення, подані в ЕС, називають символьними структурами;
3) глибина. Ця особливість системи виявляється в тому, що вона може:
– працювати в предметній галузі, яка містить складні завдання;
– застосовувати складні правила (тобто застосовувати або складні конструкції правил, або велику їх кількість);
4) самосвідомість. Це здатність системи:
– досліджувати свої міркування (тобто перевіряти їх правильність);
– пояснювати свої дії.
Існує ще одна важлива відмінність ЕС. Якщо звичайні програми розробляють так, щоб вони щоразу породжували правильний результат, то ЕС розроблено для того, щоб вони поводилися як експерти. Вони, як правило, дають правильні відповіді, але іноді, як і люди, здатні помилятися.
Традиційні програми для розв’язання складних задач теж можуть робити помилки. Але їх дуже важко виправити, оскільки алгоритми, що лежать у їх основі, явно в них не сформульовані. Отже, помилки нелегко знайти й виправити. ЕС подібно до людей мають потенційну можливість учитися на своїх помилках.
2. Основи програмування мовою Visual Prolog
2.1. Загальний огляд мови Пролог
Пролог – це мова логічного програмування, назву якої утворено від скорочення „програмування в термінах логіки”. Перший розроблений інтерпретатор Прологу було написано мовою Фортран, він працював досить повільно. У 1977 р. в Единбурзькому університеті було створено ефективний інтерпретатор/компілятор мови Пролог для комп’ютера DEC-10, що сприяло підвищенню її популярності. Відтоді було створено багато діалектів мови Пролог: СProlog, Turbo Prolog, Strawberry Prolog, Visual Prolog та ін.
Visual Prolog 5.2 – це середовище програмування для мови Visual Prolog, створене фірмою „Prolog Development Center A/S” (Данія). Воно містить усі необхідні засоби для створення великих комерційних додатків, включаючи компілятор, компонувальник і велику бібліотеку підпрограм.
Пролог значно відрізняється від інших традиційних мов програмування, таких як Бейсик, Паскаль чи Сі. Програміст, створюючи програму, наприклад, мовою Сі, указує, як програма повинна працювати, щоб уможливити досягнення бажаної мети (тобто визначає процедуру розв’язання задачі). Якщо програміст пише програму мовою Пролог, він спочатку описує структуру прикладної задачі, а потім указує, що треба знайти, тобто зазначає мету. Його не цікавить, яким чином ця задача буде розв’язана, це питання він перекладає на Пролог-систему. Тому Пролог належить до декларативних (описувальних) мов програмування, а Бейсик, Паскаль та Сі – до процедурних мов. Якщо класифікувати мови програмування за рівнем, то Асемблер можна віднести до мов низького рівня, Сі – до мов середнього рівня, Фортран, Бейсик, Паскаль – до мов високого рівня, Пролог – до мов надвисокого рівня.