Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_РЛП_4_форм.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
644.61 Кб
Скачать

3.4.Язык пролог и метод резолюций. Логическая интерпретация языка Пролог.

Факты в Прологе интерпретируются как положительные литеры. Правила интерпретируются как формула-импликация. Вопросы интерпретируются как отрицательные литеры.

Пример 3.4.1. Логическая интерпретация программы «Родственные отношения». Отношение родитель обозначим предикатным символом R. Отношение мужчина обозначим предикатным символом M. Отношение отец обозначим предикатным символом F. Программа интерпретируется как набор дизъюнктов.

R(пам, боб), R(том, боб), R(том, лиз),

R(боб, энн), R(боб, пат), R(пам, джим),

M(боб), M(том), M(джим),

R(X, Y)M (X) F(X, Y) (получен из импликации R(X, Y)&M (X) F(X, Y))

F(X, боб) (вопрос «Кто является отцом Боба?»)

Дизъюнкты, полученные из предложений Пролог-программы содержат не более одной положительной литеры. Последний (целевой) дизъюнкт не содержит положительных литер. Такие дизъюнкты называются хорновскими. Использование хорновских дизъюнктов существенно снижают возможности языка Пролог по сравнению с методом резолюций, однако упрощает процесс поиска пустого дизъюнкта, т.к. между целевым и любым другим дизъюнктами возможно взятие не более одной резольвенты.

Пример 3.4.2. Логическое решение программы «Родственные отношения».

Используется алгоритм поиска в глубину.

1

R(пам, боб),

2

R(том, боб),

3

R(том, лиз),

4

R(боб, энн),

5

R(боб, пат),

6

R(пам,джим),

7

M(боб),

8

M(том),

9

M(джим),

10

R(X,Y)M(X)F(X,Y),

11

F(X, боб),

12

R(X,Y)M(X),

из (11) и (10)

рекурсивный вызов

13

M(пам),

из (12) и (1)

рекурсивный вызов

14

резольвент нет

возврат к шагу 12

12

R(X,Y)M(X),

возврат,

13

M(том),

из (12) и (2)

14

□.

из (13) и (8),

КОНЕЦ РАБОТЫ (успех)

3.5.Работа в пролог-системе

Простейшие пролог-системы строятся по принципу командной строки. При этом факты и правила, составляющие пролог-программу помещаются в текстовый файл, который подключается к пролог-системе посредством специальной команды (встроенного предиката). После этого в командной строке можно набирать вопросы к системе (определенные пользователем предикаты). Если на вопрос существует несколько ответов, пролог-система может найти все.

Более продвинутые пролог-системы строятся по принципу среды программирования. В этом случае для размещения программы предназначено специальное окно (окно редактирования), а вопросы к системе набираются в другом (целевом) окне. В этом же окне пользователь получает ответы.