- •Міністерство освіти і науки, молоді та спорту україни Тернопільський національний технічний університет імені Ів. Пулюя
- •Лабораторне заняття №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 Налагодження і трасування програм
- •Лабораторна робота №2 Робота з найпростішими програмами в системі Турбо-Пролог
- •2.1 Вступ
- •2.2 Завантаження системи Турбо-Пролог, ввід і запуск програм
- •2.3 Робота з Пролог-програмами в режимі діалогу
- •2.4 Трасування програм у середовищі системи Турбо-Пролог
- •2.5 Робота з програмами, що містять внутрішню мету
- •2.6. Найпростіша програма вводу-виводу даних
- •2.7 Побудова найпростішого інтерфейсу для виводу результатів запитів
- •8. Зміст звіту по лабораторній роботі
- •Лабораторна робота №3 Пролог-програми як найпростіші бази даних і знань
- •3.1 Вступ
- •3.2 Запити до бази даних
- •3.2.1 Прості запити
- •3.2.2 Складені запити
- •3.2.3 Запити з анонімними змінними
- •3.3. Статичні і динамічні бази даних
- •3.4. Явні і неявні бази даних. Правила логічного висновку
- •3.5 Використання структур у якості доменів відношень
- •6. Процедури як елемент представлення знань
- •3.7 Цілісність і несуперечність баз даних і знань
- •3.8. Зміст звіту по лабораторній роботі
- •Лабораторна робота №4. Керування ходом виконання програм у системі Турбо-Пролог
- •4.1 Робота системи Турбо-Пролог при виконанні запитів
- •4.2 Уніфікація термів
- •4.3 Пошук з поверненням при виконанні Пролог-програм
- •4.4 Використання відкату після невдачі при використанні внутрішньої мети для організації найпростішого інтерфейсу виводу
- •4.5 Зміст звіту по лабораторній роботі
- •Лабораторна робота №5 Керування ходом виконання Пролог-програм
- •5.1 Організація повторюваних процесів
- •5.2 Керування пошуком з поверненням
- •5.3 Керування ходом виконання програм з використанням відсікання
- •5.4 Застосування предикату not - заперечення як неуспіх
- •5.5 Використання методу відкату і відсікання
- •5.6 Відкат і відсікання при реалізації відносин типу „один-до-багатьох”
- •5.7 Ступінчаті функції і відсікання
- •5.8 Труднощі у використанні відсікання і заперечення
- •5.9 Зміст звіту по лабораторній роботі
- •Лабораторна робота №6 Рекурсія і рекурсивні процедури в Пролозі
- •6.1 Визначення поняття рекурсії
- •6.2 Склад рекурсивної процедури
- •6.3 Особливості виконання рекурсивних процедур Прологом-системою
- •6.4 Приклад рекурсивної процедури пошуку довжини маршруту на графі
- •6.5 Обмеження і властивості, що забезпечують цілісність відношень
- •6.6 Реалізація циклічних процедур за допомогою бектрекінгу
- •6.6.1. Реалізація ітераційного процесу за допомогою бектрекінгу
- •6.6.2 Дії типу ’до’ і ’після’
- •6.6.3. Застосування бектрекінгу для реалізації циклів
- •6.7 Зміст звіту по лабораторній роботі
- •Лабораторна робота №7 Списки і процедури їх обробки
- •7.1 Списки як рекурсивні структури даних
- •7.2 Використання списків в Пролог-програмах
- •7.3. Найпростіші процедури роботи зі списками
- •7.4 Процедури обробки списків
- •7.5. Компонування даних у список
- •7.6. Зміст звіту по лабораторній роботі
- •Лабораторна робота №8 Способи представлення баз даних у Пролог-програмах
- •8.1 Вступ
- •8.2 Представлення відносин у виді фактів
- •8.3 Представлення атрибутів у виді фактів
- •8.4 Представлення бази даних у виді списку структур
- •8.5 Представлення бази даних у виді лінійної рекурсивної структури
- •8.6 Представлення бази даних у виді двійкового дерева
- •8.7 Порівняння різних видів представлення бази даних
- •Лабораторна робота №9 Динамічні бази даних
- •9.1 Вступ
- •9.2 Прості прийоми роботи з динамічними бд
- •9.3 Зв’язок статичних і динамічних баз даних
- •9.4 Процедура роботи з динамічною бд, що навчається у користувача
- •9.5 Розширення бази даних у файли
- •9.6. Організації файлових бд на основі файлів прямого доступу
- •9.6. Особливості представлення динамічних баз даних у Visual Prolog
- •9.7 Зміст звіту по лабораторній роботі
- •Лабораторна робота №10 робота з складно структурованими базами даних
- •10.1 Опис логічної моделі даних
- •10.3 Отримання структурованої інформації з бази даних
- •10.4 Абстракція даних і побудова баз знань
- •10.5. Зміст звіту по лабораторній роботі
- •Лабораторна робота №11 дослідження методів представлення і обробки знань
- •11.1 Структура експертних систем
- •11.2 Представлення знань
- •11.3 Система інтерфейсу користувача
- •11.4 Експертна система на правилах
- •11.5 Експертні системи, що базуються на логіці
- •11.6 Структура бази знань експертної системи для вибору породи дерева
- •11.7 Зміст звіту
- •Список використаних джерел
- •Додаток а Службові предикати Турбо-Пролога
- •Додаток б Службові предикати Турбо-Пролога для роботи з файлами
- •Додаток в
- •Таблиця в.1 – Варіанти завдань
- •6. До лабораторної роботи №7
- •7. До лабораторної роботи №8
- •8. До лабораторної роботи №9
- •9. До лабораторної роботи №10
- •10. До лабораторної роботи №11
Додаток в
Правила обчислення атрибутів екрану
Для обчислення атрибутів екрану необхідно:
1. Вибрати один зовнішній колір і один колір фона.
2. Додати вказані нижче коди даних кольорів.
3. Добавити 128, якщо треба, щоб об’єкт з даним атрибутом мерехкотів.
Таблиця Б.1 – Атрибути екрану
Колір фону (екрану) та їх коди |
Колір символів | ||||
Чорний Синій Зелений Голубий Червоний Бузковий Коричневий Білий |
0 16 32 48 64 80 96 11 |
Сірий Яскраво-синій Яскраво-зелений Яскраво-голубий Яскраво-червоний Яскраво-бузковий Жовтий Яскраво-білий |
2 8 24 40 72 88 104 120 |
Чорний Синій Зелений Голубий Червоний Бузковий Коричневий Білий |
0 1 2 3 4 5 6 7 |
ДОДАТОК В
Індивідуальні завдання
В.1 До лабораторної роботи №2
Розробити програму згідно поданого нижче завдання та поставити до неї ряд запитів (в режимі зовнішньої мети). Результати роботи навести в звіті. Розробити для програми найпростіший інтерфейс користувача при використанні внутрішньої мети. Тексти двох варіантів програми та результати їх роботи навести в звіті. Зробити короткий опис програми.
Варіант 1. Описати в базі знань інформацію про тварин з вказуванням їх назви та виду. Вказати, наприклад, що тварини, які є птахами можуть літати і.т.п.
Варіант 2. Описати в базі знань фрагмент телефонного довідника. Подати інформацію про фамілію особи та номер її телефону. Забезпечити пошук за фамілією особи.
Варіант 3. Описати в базі знань інформацію про студентів, що навчаються в одній групі. Вказати прізвище студента та його бал. Вказати, що студент із середнім балом вище 4 є хорошим студентом.
Варіант 4. Описати в базі знань фрагмент географічного довідника. Подати інформацію про назву країни, та її столиці. Забезпечити пошук країни за її столицею.
Варіант 5. Описатив базі знань фрагмент словника. В словнику міститься наступна інформація: слово і його переклад (наприклад, українські та англійські слова). Забезпечити пошук за українськими словами.
Варіант 6. Описати в базі знань фрагмент авіадовідника. В довіднику повинна бути інформація при номер рейсу та пункт призначення. Забезпечити пошук за пунктом призначення.
Варіант 7. Описати в базі знань інформацію про студентські групи, що навчаються на одному факультеті. Навести інформацію про назву групи та кількість студентів, що в ній навчаються. Забезпечити визначення курсу групи за двома останніми цифрами в її назві.
Варіант 8. Описати в базі знань фрагмент заліжнодорожного довідника. В довіднику повинна бути інформація при номер поїзду та пункт призначення. Вказати, якщо номер проїзда менший за 100 то це швидкий якщо менший за 600 – пасажирський, противному випадку – приміський.
Варіант 9. Створити базу знань для збереження інформації про мікросхеми. Вказати назву марку, функції та технологію виготовлення мікросхеми.
Варіант 10. Створити базу знань для збереження інформації про комп'ютери. При цьому кожен комп'ютер буде розглядатися як набір процесора (фірма виробник), монітора (тип) та принтера (технологія друку). Забезпечити вибір конфігурацій за типом процесора.
Варіант 11. Створити базу знань для збереження інформації про автомобілі. Для кожного автомобіля слід вказати марку, колір та об’єм двигуна. Вказати які авто можна вважати малолітражками.
Варіант 12. Описати в база знань фрагмент довідника, що містить інформацію про дисципліни, що читаються на кафедрі. Подати інформацію про назву, кількість годин вивчення та викладача, що читає дану дисципліну. Забезпечити пошук за назвою дисципліни.
Варіант 13. Описати в база знань фрагмент довідника, що містить інформацію про розклад занять групи. База знань повинна містити інформацію про день, пару, аудиторію та назву дисципліни. Забезпечити вивід пар по днях тижня.
Варіант 14. Описати в база знань фрагмент бібліографічного каталога. Навести інформацію про автора, назву книжки, рік видання. Забезпечити пошук за назвою. Забезпечити пошук за автором книжкм
Варіант 15. Описати в база знань фрагмент каталога періодичних видань з наведенням інформації про індекс, назву, вид (журнал, газета) та періодичність виходу. Вказати, що тижневиком вважається видання, яке виходить раз на тиждень. Забезпечити пошук за назвою періодичного видання.
Варіант 16. Описати в база знань фрагмент довідника з кадрів. Необхідно навести дані про прізвище, посаду та розряд для робітників чи категорію для службовців. Вказати, що фахівцями вважаються робітники вище 5 розряду.
Варіант 17. Описати в базі знань фрагмент файлового каталогу. Навести інформацію про ім’я , розширення та розмір файлу. Написати правило для асоціації розширень файлів з програмими. що їх створили. Забезпечити пошук файлу за його ім’ям.
Варіант 18. Описати в базі знань фрагмент каталогу радіодеталей. Навести інформацію про вид, марку та робочі параметри радіодеталей. Написати правило класифікації радіодеталей за типом.
Варіант 19. Описати в базі знань фрагмент каталогу побутової техніки. Подати інформацію про назву, колір та основні параметри виробу. Написати правило класифікації побутової техніки за видом виконуваної роботи.
Варіант 20. Описати в базі знань фрагамент бази знань, що містить інформацію про родинні відносини. Наприклад, батько-син, батько-дочка і т.п. Написати правило знаходження братів ти сестер.
В.2 До лабораторної роботи №3
Модифікувати розроблену базу знань з використанням структур, шляхом введення більш детальних описів для окремих елементів застосованих відношень. При неохідності застосувати процедури. Поставити до системи ряд запитів при використанні зовнішньої мети та навести результати їх виконання. Застосувати прості та складені запити. Результати досліджень навести в звіті.
В.3 До лабораторної роботи №4
Розширити базу знань програми шляхом введення додаткових фактів та по можливості правил з заданої предметної області.
Розробити для власної програми інтерфейс аналогічний наведеному в тексті лабораторної роботи. Виконати трасування при виконанні мети програми та намалювати спрощену блок схему уніфікації термів. Коротко вказати на основі яких правил здійснювалася уніфікація кожного з термів при досягненні мети програми.
В.4 До лабораторної роботи №5
Реалізувати в програмі процедури типу do_answer() спочатку в середені програми і потім забезпечте виконання цих же дій за допомогою занішніх запитів (згідно завдання 8, 9). Результати роботи навести в звіті. Зробити короткий опис отриманих результатів.
Забезпечити в програмі перетворення відносин типу “багато-до-багатьох” в відносини типу “один-до-багатьох” з використанням відкату та відсікання. Результати навести в звіти.
Модифікувати розроблену раніше програму з використанням меню для вибору різних варіантів запитів. організувати повний інтерфейс програми (повторне виконання запитів, вихід з програми по ключовому слові і т.п.). Результати навести в звіті.
В.5 До лабораторної роботи №6
Модифікувати програму із метою застосування рекурсивних процедур для здійснення циклічних операцій. Наприклад, знаходження відстані, суми, втановлення взаємозв’язку між об’єктами і т.п. Результатии роботи програми навести в звіті.
Написати програми для знаходження швидкості сходження ряду, тобто кількості кроків за які досягається задана точність (0,01). Для реалізації цієї мети слід написати предикати для обчислення факторіалу (варіанти 1–7) або степеня (варіанти 8–16) та знаходження n-го члену ряду.