Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROLOG.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
502.27 Кб
Скачать

1.5.Від формальної логіки до логічного програмування.

В логіці предикатів існують методи доведення того, буде чи ні конкретна ППФ наслідком деякої теорії. Природньо виникає бажання автоматизувати таке доведення за допомогою предикату. В більшості підходів до цієї проблеми використовується процедура спростування. Розглянемо основні ідеї цієї процедури.

лддІз визначення тотожньої істинності і непослідовності можна зробити висновок, що ППФ буде тотожньо істинною тоді і тільки тоді, коли прибавлення в теорію заперечення даної ППФ перетворить цю теорію в непослідовну.

Теорія буде непослідовною, якщо в ній можливо вивести протиріччя наступного вигляду

А А.

Для вирішення згаданих задач дуже зручною є фразова форма логіки. Фразова форма логіки предикатів задає такий спосіб запису формул, який використовує тільки з`єднувачі типу , і .

Негативна або ж позитивна атомарна формула називається літералом. Кожна формула - множина літералів, які з`єднані символом . Негативні і позитивні літерали відповідно групуються. Схематично фраза має наступний вигляд:

Р1 Р2 ... Рn N1 N2 ... Nn, де P1 ... Pn - позитивні літерали, а N1... Nn - негативні. З другої сторони фразу можна розглядати як узагальнення поняття імплікації. Дійсно, якщо А і В атомарні формули, тоді формулу А В можна переписати і в такому еквівалентному вигляді: А В. Звідки отримаємо фразову формулу В А.

Фраза має наступну семантику. Всі позитивні атомарні формули виступають в ролі альтернативних заключень, а негативні - є необхідними умовами. Наприклад, А В С D зазначає що А і В будуть істиними тоді і тільки тоді, коли є істиними С і D.

Елементарна фраза має тільки один літерал. Теорія записується в вигляді множини фраз, які неявно з`єднані між собою символом . В літературі зустрічається і друга форма запису фрази за допомогою зворотньої стрілки, яка читається як “імплікується”. Так остання фраза може мати вигляд А, В  С, D.

Для скорочення об`ємів обчислень на практиці використовують спеціальний клас фраз, який дістав назву фраз Хорна. Фраза Хорна - це фраза, яка має тільки один позитивний літерал. Одну фразу Хорна можна записати декількома способами. Наприклад, А В С D еквівалентне А  В, С, D і в системі Турбо-Пролог буде мати вигляд А: В, С, D.

Для любої системи логічного програмування характерною є та обставина, що для виконання програми (побудови виведення результату) використовується вмонтована система автоматичного пошуку. Механізм пошуку логічного висновку Прологу бере свій початок від методу резолюцій Робінсона.

Правило резолюції виведення логічного висновку працює наступним чином. Дві фрази можуть резольвувати між собою, якщо одна з них має позитивний, а друга - негативний літерал з одним і тим же позначенням предикату, та однаковою кількістю аргументів, і якщо аргументи обох літералів можуть бути уніфіковані (погоджені). Наприклад, фраза P(a,b) Q(c,d) і фраза Q(c,d) R(b,c) дають резольвенту P(a,b) R(b,c). Якщо ж аргументом відношення є змінна, то вона уніфікується з константою, а резольвента буде мати дану константу на місцях попереднього розташування змінної.

Розглянемо дві фрази спеціального вигляду:

Р(а) - заключення без умови і Р(а) - умова без заключення. Наявність цих двох фраз в одній теорії є протиріччям. Якщо вони резольвуються між собою, тоді отримана резольвента називається пустою фразою.

Якщо при резолюції двох фраз, що входять в склад теорії, отримується пуста фраза, тоді теорія буде непослідовною.

Розглянемо на прикладі застосування принципу резолюції і уніфікації.

Нехай маємо відношення АРТИСТ(х), яке позначає твердження х є артистом і аналогічне відношення СПІВАК(х). Це дає змогу вираз “співак є артистом” формалізовати наступною імплікацією:

СПІВАК(х)  АРТИСТ(х).

Тепер, після задання виразу “Яремчук - співак”, попробуємо довести за допомогою методу резолюції вираз “Яремчук - артист”.

Спочатку, добавимо до попередніх фраз теорії формулу заперечення того твердження, яке ми хочемо довести. Матимемо наступні фрази теорії:

СПІВАК(х)  АРТИСТ(х) (1)

СПІВАК(Яремчук) (2)

АРТИСТ(Яремчук) (3)

Формулу (1) перепишемо в вигляді СПІВАК(х) АРТИСТ(х). Потім зробимо уніфікаційну підстановку х: Яремчук відносно формул (1) і (2). В результаті можемо видалити тотожньо істинну формулу:

СПІВАК(Яремчук) СПІВАК(Яремчук).

Залишок з`єднаємо зв`язкою  і знову ж видалимо. В результаті маємо пусту фразу, що дає непослідовність нашої теорії. Звідки, методом обгрунтування логічного висловлення виводиться формула АРТИСТ(Яремчук). Наш приклад в синтаксисі системи Турбо-Прологу буде мати вигляд:

АРТИСТ(х): - СПІВАК(х).

СПІВАК(Яремчук).

? - АРТИСТ(Яремчук).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]