Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛІ ПОДАННЯ ЗНАНЬ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
248.2 Кб
Скачать

7.9. Як працює Пролог

Потужність Прологу безпосередньо пов'язана з використанням інтерпретації логіки за допомогою процедур, тобто представленні знань за допомогою визначення процедур, після чого міркування стає простим про­цесом виклику необхідної процедури. Щоб зрозуміти, яким чином це від­бувається, розглянемо такі два набори інформації:

  1. Для будь-якого X, якщо Xв Чернігівській_ області, тоді Xв Україні

  2. Остер в Чернігівській_ області,

Такі набори називають базою знань. Будемо називати елемент (1) пра­вилом, оскільки він дає нам можливість логічно вивести з однієї порції ін­формації іншу, а елемент (2) — фактом, оскільки він не залежить від ін­шої інформації. Зверніть увагу, що правило містить "якщо", а факт — ні. Факти і правила — два типи речень. Факт не обов'язково має бути істиною з реального життя. Якщо ви скажете, що місто Остер є на Полтавщині, Пролог вам повірить.

Припустимо, ми хочемо знати, чи знаходиться місто Остер в Україні. Зрозуміло, що (1) і (2) можна зв'язати і відповісти на це запитання. Але як це зробити на комп'ютері? Треба виразити (1) і (2) як визначення процедур:

(Ґ) Щоб довести, що X в Україні, треба довести, що X в Чернігівській області.

(2') Щоб довести, що Остер в Чернігівській_ області, нічого не треба робити.

Поставимо запитання у вигляді такої команди:

Довести, що Остер в Україні.

Це викликає процедуру (Ґ), яка, в свою чергу, викликає процедуру (2'). Остання повертає відповідь "так".

Пролог має власні позначення для представлення знань. Наша проста база знань може бути представлена у Пролозі таким чином:

в_україні (.¥):- в чернігівській області (X)

вчернігівськійобласті (остер)

Тут вукраїні та в чернігівській області — предикати, які визнача­ють окремі особливості. Предикат може мати будь-яку фіксовану кількість аргументів (параметрів). Одномісний предикат показує властивість одного поняття, тоді як двомісні описують взаємозв'язок між двома поняттями.

Кількість аргументів, які має предикат, називається арністю (від таких термінів як унарність, бінарність, тернарність та інших подібних). Два різ­них предикати можуть мати однакову назву, якщо вони різної арності, але бажано намагатись уникати такої практики, оскільки вона призводить до непорозумінь.

На сьогоднішній день є багато різних реалізацій Прологу. Прикладом можуть служити Турбо Пролог, Мікро Пролог, Arity Prolog і ALS Prolog на IBM PC та Quintus Prolog на робочих станціях Sun, SWI Prolog, LPA Prolog, Cogent (Amzi) Prolog та Expert Systems Limited's Public Domain Prolog-2.

Протягом багатьох років стандартом де-факто для Прологу була мова, описана КлоксіномХСІоскзіп) та Меллішом (Mellish) в їх популярному під­ручнику "Програмування на Пролозі" ("Programming in Prolog"). Це, прак­тично, мова, яку вживав ще на DEC-10 Уорен та його колеги наприкінці 70-х років, яку часто називають единбурзькою, або Edinburg Prolog, або DEC-10 Prolog. Більшість комерційних версій Прологу розробляються так, щоб бути сумісними з цією версією.

У 1995 р. Міжнародна організація стандартизації (ISO) опублікувала міжнародний стандарт для мови Пролог (Scowen 1995). ISO Пролог дещо схожий на Edinburg Prolog, але з дещо розширеними можливостями.

Нагадаємо також, що такі версії, як Turbo Prolog (PDC Prolog), Colmerauer's Prolog-II та Prolog III, Turbo Prolog мають можливість де­кларувати типи даних. Як результат — програми можуть виконуватись швидше, але це дуже заважає їм перевіряти та модифікувати себе. Colmerauer's Prolog-II та Prolog-Ill — мови обмеженого логічного програ­мування, тобто вони дозволяють накладати обмеження на значення змін­них перед тим, як присвоювати їм якісь значення. Це робить доступним використання нової техніки.

КОНТРОЛЬНІ ЗАПИТАННЯ

    1. Сформулюйте задачу автоматичного доведення теорем.

    2. Дайте визначення логічної моделі.

    3. Дайте визначення предиката.

    4. Які основні елементи використовуються в численні предикатів?

    5. Що таке квантори узагальнення та існування?

    6. Дайте визначення атомарної формули.

    7. Дайте визначення диз'юнкта.

    8. Що таке фраза Хорна?

    9. Поясніть зв'язок фраз Хорна з імплікаціями.

    10. Дайте визначення пренексної нормальної форми.

    11. Яким чином можна усунути квантори узагальнення та існування?

    12. Що таке константи і функції Сколема?

    13. Перелічіть основні дії, необхідні для приведення логічних формул до стандартної фразової форми.

    14. Сформулюйте правило резолюцій. Наведіть власні приклади застосу­вання цього правила.

    15. Що означає виведення пустого диз'юнкта? Яким чином він може бути отриманий?

    16. Опишіть алгоритм перевірки тверджень на основі методу резолюцій.

    17. Що означає поняття повноти для методу резолюцій?

    18. З чим пов'язана необхідність модифікації загального методу резолюцій?

    19. Охарактеризуйте лінійну і вхідну резолюції. Покажіть, що вони не усу­вають бектрекінгового перебору.

    20. Чи є вхідна резолюція повною? Наведіть клас диз'юнктів, для яких вона є повною.

    21. Охарактеризуйте поняття логічного програмування.

    22. Назвіть найпоширенішу мову логічного програмування.

    23. Поясніть взаємозв'язок прологівських фактів і правил з фразами Хорна.

ТЕМИ ДЛЯ ОБГОВОРЕННЯ

      1. Розберіть вбудований прологівський механізм логічного виведення. Поясніть його зв'язок з бектрекінговими алгоритмами.

      2. Наведіть приклади застосування логічного програмування для вирі­шення конкретних практичних задач.

      3. Порівняйте Пролог з процедурними та об'єктно-орієнтованими мовами програмування.

ЗАДАЧІ І ВПРАВИ

        1. Доведіть тотожності, які встановлюють зв'язок імплікацій з фразами Хорна:

а) (х -» у) = х v у;

б) ((х &у & і) -> и) = х v yw z v и.

        1. Дана база знань:

Вовк їсть м 'ясо. Заєць їсть моркву.

Якщо хтось їсть м 'ясо, то він є хижаком.

Запишіть ці знання у вигляді фраз Хорна та перевірте методом резолю­цій, чи є хижаками вовк і заєць.

        1. Маємо базу знань: будь-яка людина може успадкувати майно від іншої людини тільки, якщо вона є її родичем або якщо стосовно неї було скла­дено заповіт. Іванов успадкував майно від Петрова, але Петров не скла­дав заповіту.

Запишіть ці знання у вигляді фраз Хорна та доведіть методом резолю­цій, що Джиннер є родичем Джонса.

        1. Дана база знань: Сніг буває тільки тоді, якщо температура є нижчою 5 °С. У липні температура ніколи не падає нижче 5 °С.

Запишіть ці знання у вигляді фраз Хорна і доведіть методом резолюцій, що в липні ніколи не буває снігу.

        1. Усі студенти Києво-Могилянської академії знають англійську мову. Серед програліістів, які поїхали на роботу до Лондона, ніхто не знав англійської мови.

Запишіть ці знання у вигляді фраз Хорна і доведіть методом резолюцій, що серед програмістів, які поїхали на роботу до Лондона, не було жод­ного студента Києво-Могилянської академії.

        1. Усі жінки красиві. У всіх відділах компанії "Рожева мрія " є жінки. Запишіть ці знання у вигляді фраз Хорна та доведіть методом резолю­цій, що у кожному відділі компанії "Рожева мрія " працює хоча б один красивий співробітник.

Розділ 8

ПРОДУКЦІЙНІ МОДЕЛІ

ІЦо буде, якщо щось буде?

Буде черга, а потім знову нічого не буде.

Анекдот епохи розвинутого соціалізму