- •Лабораторне заняття № 1 Ознайомлення з мовою програмування Пролог
- •1.1 Загальні відомості про мову Пролог
- •1.2 Елементи мови Пролог
- •1.3 Структура програм Пролога
- •1.3.1 Секція domains Пролог-програми
- •1.3.2 Секція predicates
- •1.3.3 Секція clauses
- •1.3.4 Секція goal
- •1.3.5 Секція database
- •1.4 Розробка найпростішого інтерфейсу програми
- •1.5 Використання структур як доменів відношень
- •1.6 Процедури як елемент представлення знань
- •1.7 Цілісність і несуперечність баз даних і знань
- •1.8 Зміст звіту з лабораторної роботи
- •Лабораторна робота № 2 Керування ходом виконання програм у системі Пролог
- •2.1 Робота системи Пролог при виконанні запитів
- •2.2 Уніфікація термів
- •2.3 Пошук з поверненням при виконанні Пролог-програм
- •2.4 Використання відкату після невдачі для організації найпростішого інтерфейсу виводу
- •2.5 Організація повторюваних процесів
- •2.6 Керування пошуком з поверненням
- •2.7 Керування ходом виконання програм з використанням відсікання
- •2.8 Застосування предикату not -- заперечення як неуспіх
- •2.9 Використання методу відкату і відсікання
- •2.10 Відкат і відсікання при реалізації відносин типу „один-до-багатьох”
- •2.11 Ступінчаті функції і відсікання
- •2.12 Труднощі у використанні відсікання і заперечення
- •2.13 Зміст звіту з лабораторної роботи
- •Лабораторна робота № 3 Рекурсія і рекурсивні процедури в Пролозі
- •3.1 Визначення поняття рекурсії
- •3.2 Склад рекурсивної процедури
- •3.3 Особливості виконання рекурсивних процедур Прологом-системою
- •3.4 Приклад рекурсивної процедури пошуку довжини маршруту на графі
- •3.5 Обмеження і властивості, що забезпечують цілісність відношень
- •3.6 Зміст звіту з лабораторної роботи
- •Лабораторна робота № 4 Списки і процедури їх обробки
- •4.1 Списки як рекурсивні структури даних
- •4.2 Використання списків у Пролог-програмах
- •4.3. Найпростіші процедури роботи зі списками
- •4.4 Процедури обробки списків
- •4.5. Компонування даних у список
- •4.6. Зміст звіту з лабораторної роботи
- •Лабораторна робота № 5 Способи представлення баз даних у Пролог-програмах
- •5.1 Вступ
- •5.2 Представлення відносин у вигляді фактів
- •5.3 Представлення атрибутів у вигляді фактів
- •5.4 Представлення бази даних у вигляді списку структур
- •5.5 Представлення бази даних у вигляді лінійної рекурсивної структури
- •5.6 Представлення бази даних у вигляді двійкового дерева
- •5.7 Порівняння різних видів представлення бази даних
- •Лабораторна робота № 6 Динамічні бази даних
- •6.1 Вступ
- •6.2 Прості прийоми роботи з динамічними бд
- •6.3 Зв’язок статичних і динамічних баз даних
- •6.4 Процедура роботи з динамічною бд, що навчається у користувача
- •6.5 Розширення бази даних у файли
- •6.6. Організації файлових бд на основі файлів прямого доступу
- •6.6. Особливості представлення динамічних баз даних у Visual Prolog
- •6.7 Зміст звіту з лабораторної роботи
- •Лабораторна робота № 7 створення простої експертної системи
- •7.1 Вступ
- •7.2 Завантаження бази знань і режим консультації
- •7.2 Структура бази знань esta
- •7.3 Формати файлів баз знань в esta
- •7.4 Елементарні прийоми роботи з секціями
- •7.5 Елементарні прийоми роботи з параметрами
- •7.6. Зміст звіту з лабораторної роботи
- •Лабораторна робота № 8 розробка нечітких систем керування з використанням fuzzy logic toolbox математичного пакета matlab
- •8.1 Вступ
- •8.2 Склад графічного інтерфейсу
- •8.3 Редактор бази знань RuleEditor
- •8.4 Вступ Приклад виконання роботи
- •8.5 Зміст звіту з лабораторної роботи
- •8.6 Контрольні питання
- •Лабораторна робота № 9 порівняльне дослідження роботи алгоритмів мамдані та сугено
- •9.1 Вступ
- •9.2 Алгоритм Мамдані (Mamdani)
- •9.3 Алгоритм Сугено (Sugeno)
- •9.4 Порядок виконання роботи
- •9.5 Зміст звіту з лабораторної роботи
- •9.6 Контрольні питання
- •Список використаних джерел
- •Додаток а Службові предикати Пролога для роботи з файлами
- •Додаток б Індивідуальні завдання До лабораторних робіт № 1, 2, 4
- •Додаток в Індивідуальні завдання До лабораторної роботи № 3
- •Додаток г Індивідуальні завдання до лабораторної роботи № 5
- •Додаток д варіанти завдань до виконання лабораторної роботи № 7
- •Тема 11. Експертна система аналізу поточної успішності студентів на факультеті.
- •С.В. Зікратий, х.В. Паньків системи штучного інтелекту лабораторний практикум
4.6. Зміст звіту з лабораторної роботи
1. Вказати номер, тему й мету лабораторної роботи.
2. В програмі, розробленій в роботі № 2, забезпечити можливість компонування даних у список (з використанням предикату findall()) з метою їх подальшої обробки (обчислення кількості елементів, проведення дій над елементами і т.п.).
3. У звіті навести текст та результати роботи програми.
Лабораторна робота № 5 Способи представлення баз даних у Пролог-програмах
Мета роботи: Ознайомитися з різними способами організації баз даних. Одержати навички доступу до окремих цілісних інформаційних елементів баз даних.
5.1 Вступ
Система понять для представлення знань трохи відрізняється від понять для представлення даних. Разом з тим база знань (БЗ) здатна зберігати дані і як простий різновид знань у вигляді бази даних (БД). Відповіді на запити, що формує користувач до бази, реалізуються одним із двох можливих способів:
– повідомлення, що є відповіддю на запит, зберігаються в явному вигляді в БД, і процес одержання відповіді являє собою виділення із БД підмножини значень, що задовольняють запит;
– відповідь не існує в явному вигляді в БД і формується в процесі логічного висновку на підставі наявних даних.
Останній випадок принципово відрізняється від технологій використання БД і розглядається в рамках представлення знань, тобто інформації, необхідної в процесі отримання нових фактів. У Пролог-програмах виведення нових фактів можливе на підставі набору правил, що включаються в програму і являють собою спрощений варіант БЗ. Представлення знань у вигляді набору правил має такі переваги:
– простота створення і розуміння окремих правил;
– простота механізму логічного висновку.
До недоліків цього способу організації БЗ відноситься її відмінність від людської структури знань.
У мові Пролог існує кілька різних способів представлення баз даних. До основних з них варто віднести представлення бази даних як:
1) множина фактів, кожний з яких відповідає цілісному інформаційному елементові (тобто запису) бази даних;
2) множина фактів, кожний з яких відповідає парі значень атрибут/ключ;
3) список структур, у якому кожна структура відповідає запису бази даних;
4) лінійна рекурсивна структура, де кожна структура відповідає запису бази даних;
5) рекурсивна структура у вигляді двійкового дерева, у якій кожен вузол дерева відповідає запису бази даних.
Виберемо предметну область, наприклад, Службові_відносини, у якій зосереджені взаємозв’язки і відомості про співробітників, місця їхньої роботи і посади, а також їхні посадові оклади. Для цієї предметної області розглянемо різні варіанти структурної організації даних з використанням кожного з п’яти названих способів представлення бази даних. Для кожного з можливих представлень спробуємо реалізувати запит, що дозволяє знайти всіх співробітників визначеного відділу.
5.2 Представлення відносин у вигляді фактів
Модель будь-якої предметної області може бути представлена сукупністю об’єктів із вказуванням зв’язків між ними. Використовуючи реляційний підхід до побудови БД, будь-який об’єкт може бути інтерпретований як відношення, що досить повно описує деякий аспект предметної області та встановлює функціональну залежність атрибутів цього відношення від деякого ключового атрибута. Для розглянутого прикладу таким відношенням може бути
Робота (Ім’я_службовця, Відділ, Посада, Оклад),
де як ключ може розглядатися атрибут – Імя_службовця. Відношення представляє собою множину кортежів, кожний з яких відповідає визначеному екземплярові об’єкта предметної області і може бути представлений у вигляді цілісного інформаційного елемента.
Найпростішим способом представлення бази даних у мові Пролог служить запис кожного цілісного інформаційного елемента у вигляді факту, наприклад:
work1(“Маслов”, 101, “оператор”, 200).
work1(“Денега”, 211, “керівник”, 450).
work1(“Петренко”, 101, “менеджер”, 300).
Запит work1(Name, 101, Post, Salary) дозволяє відшукати всіх службовців 101 відділу.
