Методичні вказівки
Етапи виконання роботи
Виконання завдання складається з чотирьох етапів:
складання схеми зв’язків між об’єктами;
формулювання і запис правила з використанням квантору загальності [4];
запис правила на мові Prolog;
формулювання запитань та отримання відповідей у середовищі Prolog.
При виконанні другого етапу достатньо звертати увагу лише на декларативний сенс правила. У відмінності від цього, на наступному етапі більш уваги слід звернути на процедурний сенс правила для підвищення ефективності пошуку рішень.
Приклад виконання завдання
Задача: Скласти правило для визначення предикату «донька» на основі фактів . жінка (ім’я), батьки (ім’я_батька, ім’я_дитини).
Рішення: Предикат «донька» позначимо daughter(X, Y), де X – імя доньки, Y – імя одного з батьків (мамо або тато). Базу фактів можна скласти на основі схеми родинних відношень, яка представлена на рис. 5.1. Необхідно додати ще факти, які визначать жінок:
woman(тетяна).
woman(ліза).
woman(ганна).
woman(марина).
woman(юлія).
Предикат можна сформулювати наступним чином: для всіх X і Y, X є донькою Y, якщо X є жінкою, і Y є батьком X.
Тоді, правило на мові Prolog має вигляд:
daughter(X,Y) :- woman(X), parent(Y,X).
Після цього можна поставити запитання (табл. 5.3)
Таблиця 5.3 – Приклади запитань |
||
Запитання |
Пояснення |
Відповідь |
? daughter(ганна,марина). |
Чи є Ганна донькою Марини? |
Yes |
? daughter(ганна, X). |
Хто є батьком (мати або тато) Ганни? |
X = марина; X = сергій |
? daughter(X,марина). |
Хто є донькою Марини? |
X = ганна |
? daughter(_,ліза). |
Чи є у Лізи донька? |
No |
Контрольні запитання
Визначення поняття предикату.
Визначення понять: факт, правило, запитання.
Основні визначення мови Prolog: терм, атом, константа, змінна, структура.
Правила уніфікації термів.
Поясніть, як Prolog-система дає відповідь на запитання.