You are on page 1of 4

Завдання для семінарських занять з курсу «Моделі подання знань» для магістрів

(проф. Юрій Щербина)


Пакет 4

Змістовий модуль 2. Логіка першого порядку


Частина 2. Уніфікація та підйом. Пряме логічне виведення у логіці першого порядку. Зворотне
логічне виведення. Резолюція в логіці першого порядку. (За матеріалами лекцій 9 – 11.)

Завдання 1. Доведіть, що правило конкретизації з квантором всезагальності і правило


конкретизації з квантором існування дає змогу отримати базу знань, еквівалентну з точки
зору логічного виведення.

Завдання 2. Видається цілком обґрунтованим твердження, що з окремого факту


Likes(Jerry, IceCream) можна вивести висловлення ∃x Likes(x, IceCream). Запишіть загальне
правило логічного виведення, правило уведення квантора існування, яке дозволяє узаконити
таке логічне виведення. Старанно сформулюйте умови, яким повинні задовольняти змінні й
терми, які беруть участь у цьому виведенні.

Завдання 3. Припустимо, що база знань містить тільки одне висловлення


∃x AsHighAs(x, Everest). Які з наведених нижче фактів є правильними результатами
застосування правила конкретизації з квантором існування?
а) AsHighAs(Everest, Everest).
б) AsHighAs(Kilimanjaro, Everest).
в) AsHighAs(Kilimanjaro, Everest) ∧ AsHighAs(BenNevis, Everest) (після двох застосувань).

Завдання 4. Для кожної наведеної нижче пари атомарних висловлень знайдіть найзагальніший
уніфікатор, якщо він існує.
а) P(A, B, B), P(x, y, z).
б) Q(y, G(A, B)), Q(G(x, x), y).
в) Older(Father(y), y), Older(Father(x), John).
г) Knows(Father(y), y), Knows(x, x).

Завдання 5. Записати логічні подання для наведених нижче речень у формі, придатній для
застосування узагальненого правила Modus Ponens.
а) Horses, cows, and pigs are mammals.
б) An offspring of a horse is a horse.
в) Bluebeard is a horse.
г) Bluebeard is Charlie’s parent.
ґ) Offspring and parent are inverse relations.
д) Every mammal has a parent.

Завдання 6. Ці питання стосуються питань підстановки та сколемізації.


а) Враховуючи припущення ∀x ∃y P(x, y), невірно зробити висновок, що ∃q P(q, q).
Наведіть приклад предиката Р, для якого перший висновок є істинним, а другий –
хибним.
б) Припустимо, що механізм виведення неправильно записаний – пропущена перевірка,
що дозволяє літералу типу P(x, F(x)) уніфікуватись з P(q, q). (Як уже згадувалося,
більшість стандартних реалізацій Prolog насправді дозволяють це зробити.)
Показати, що такий механізм виведення дозволить отримати висновок ∃q P(q, q) з умови
∀x ∃y P(x, y).
в) Припустимо, що процедура, яка перетворює висловлення логіки першого порядку в
сколемівську нормальну форму неправильно сколемізує ∀x ∃y P(x, y) у P(x, Sk0) –
тобто вона замінює y постійною Сколема, а не функцією Сколема від х. Покажіть,
що механізм логічного виведення, який використовує таку процедуру, також
дозволить зробити висновок ∃q P(q, q) з припущення ∀x ∃y P(x, y).
г) Поширена помилка серед студентів полягає в тому, що при уніфікації вони часто
виконують підстановку терму замість константи Сколема, а не підстановку терму
замість змінної. Наприклад, вони говорять, що формули P(Sk1) і P(A) можна
уніфікувати за допомогою підстановки {Sk1/A}. Наведіть приклад, коли це
призводить до неправильного висновку.

Завдання 7. Нехай L - мова першого порядку з єдиним предикатом S(p, q), що означає
«p голить q». Припустимо, предметна множина – всі люди.
а) Розглянемо висловлення «Є людина p, яка голить кожного, хто не голиться сам, і
лише таких людей». Висловіть це у L. Вказівка. Використайте логічну зв’язку ↔.
б) Конвертуйте висловлення із (а) у сколемівську нормальну форму. Вказівка. Як
відповідь випишіть два диз’юнкти, по одному для кожного напрямку ↔.
в) Побудуйте доказ резолюції, щоб показати, що пункти в (б) за своєю суттю несумісні.

Завдання 8. Як можна використовувати резолюцію, щоб показати, що речення є істинним?


Хибним?
Вказівка. Це запитання перевіряє як розуміння резолюції, так і здатність на належному рівні
розуміти про відношення між множинами висловлень. Нагадаємо, що резолюція дозволяє
показати, що KB╞ α, доводячи, що KB ∧ ¬α є невиконуваним. Припустимо, що взагалі
резолютивна система викликається за допомогою ASK(KB, α). Тепер ми хочемо показати, що
дане речення, скажімо, β є істинним або хибним. Відповідь сформулювати у термінах
ASK(KB, α), указавши, якою має бути база знань.

Завдання 9. Побудуйте приклад двох диз’юнктів логіки першого порядку, до яких правило
резолюції можна застосувати двома способами і результати на виході будуть різними. Чи
можливе таке в пропозиційній логіці? Відповідь поясніть.

Завдання 10. З «коні – тварини», випливає, що «голова коня – голова тварини». Продемонструйте,
що це логічне виведення є правильним, виконавши наступні кроки:
а) Перекладіть умову і наслідок мовою логіки першого порядку. Використайте три
предикати: HeadOf(h, x) (означає «h – голова x»), Horse(x), і Animal(x).
б) Заперечте наслідок і конвертуйте умову та заперечений наслідок у диз’юнкти
сколемівської нормальної форми.
в) Використайте резолюцію, щоб довести, що наслідок випливає з умови.

Завдання 11. Нижче наведено два висловлення мовою логіки першого порядку:
A. ∀x ∃y (x ≥ y)
B. ∃x ∀y (x ≥ y)
а) Припустимо, що змінні пробігають всі натуральні числа і число 0, і що предикат ≥
означає «більше або дорівнює». Для цієї інтерпретації переведіть українською
висловлення A та B.
б) Чи є при цій інтерпретації істинним висловлення A?
в) Чи є при цій інтерпретації істинним висловлення B?.
г) Чи є B логічним наслідком A?
ґ) Чи є A логічним наслідком B?
д) З використанням правила резолюції спробуйте довести, що A випливає з B. Зробіть
цю спробу, навіть якщо ви вважаєте, що A не випливає логічно з B; продовжуйте свої
зусилля допоки доведення не обірветься, і ви не зможете продовжувати далі (оскільки
воно обірвалося). Покажіть уніфіковану підстановку для кожного кроку резолюції.
Якщо доведення закінчилося невдачею, точно поясніть, де, як і чому воно обірвалося.
е) А тепер спробуйте довести, що B випливає з A.

Завдання 12. За умови, що визначено відношення parent, як описано в пункті «Визначення


відношень на снові фактів» у лекції 10 (див. рис. 22), укажіть, яку відповідь дасть система
Prolog на наведені нижче запити?
а) ? – parent (jim, X).
б) ? – parent (X, jim).
в) ? – parent (pam, X), parent (X, pat).
г) ? – parent (pam, X), parent (X, Y), parent (X, jim).

Завдання 13. Сформулюйте на мові Prolog перелічені нижче питання щодо відношення parent,
яке описано в підрозділі «Визначення відношень на снові фактів» у лекції 10 (див. рис. 22).
а) Хто є батьками Пет?
б) Чи має Ліз дитину?
в) Хто є дідусем або бабусею Пет?

Завдання 14. Перетворіть наведені нижче твердження в правила Prolog.


Вказівка. Скористайтеся інформацією з підрозділу «Визначення відношень на снові правил» у лекції 10.
а) Кожний, хто має дитину, щасливий (уведіть відношення happy з одним
параметром).
б) Для всіх X, якщо X має дитину, що має сестру, то X має двох дітей (уведіть
нове відношення hastwochildren).

Завдання 15. Визначте відношення grandchild з використанням відношення parent.


Вказівка. Це відношення має бути аналогічним відношенню grandparent, див. підрозділ «Визначення
відношень на снові правил» у лекції 10 (рис. 24).

Завдання 16. Визначте відношення aunt(X, Y) у термінах відношень parent і sister.


Вказівка. Для спрощення цієї задачі ви можете спочатку нарисувати схему для відношення, яке визначає
поняття aunt (тітка), у стилі рис. 24.

Завдання 17. У підрозділі «Рекурсивні правила» лекції 10 дано визначення відношення


predecessor. Розглянемо наступне альтернативне визначення відношення predecessor:
predecessor (X, Z) :– parent (X, Z).
predecessor (X, Z) :– parent (Y, Z), predecessor (X, Y).

Чи можна це визначення відношення predecessor так само вважати правильним? Від


коректуйте схему, наведену на рис. 28 лекції 10, щоб ця схема відповідала цьому новому
визначенню.
Завдання 18. Поясніть докладно, як система Prolog формує відповіді на наступні запити з
використанням програми, що на лістингу 20 (лекція 10). Складіть відповідні схеми виконання
в стилі рисунків 29 і 30 (лекція 10). Чи відбуваються повернення під час пошуку відповідей на
деякі запити?

а) ? – parent (pam, bob).


б) ? – mother (pam, bob).
в) ? – grandparent (pam, ann).
г) ? – grandparent (bob, jim).

 Юрій Щербина, 2020

You might also like