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

Рассмотрим следующие предложения на естественном языке.

«Маше нравятся цветы».

«Аня любит сына».

«Сын Ани любит Машу».

Эти предложения могут быть записаны следующим образом.

1.2.1 Запись фактов

Предложение «Маше нравятся цветы» записывается так:

нравится(маша, цветы)

Принимая во внимание, что существует отношение сын, которое подразумевает присутствие матери, то далее можно записать

любит(аня, сын(аня))

И третье предложение

любит(сын(аня), маша)

Здесь нравится и любит — имена предикатов, маша, цветы, аня — константы, сын — имя функции.

1.2.2 Теперь запишем правила.

1 Разберем, для примера, предложение

«Оля любит всех, кого любит Аня».

которое задает такое правило:

«Для любого X, если любит(аня,X),

то из этого следует, что любит(оля,X)».

Запишем это правило, используя квантор всеобщности и посылку справа, а следствие слева от знака импликации, как это принято в логическом программировании:

Х ( любит(оля,X) любит(аня,X) )

Снимем квантор, полагая, что квантор всеобщности «по умолчанию» относится ко всем переменным, входящим в формулу (как говорят, формула «универсально замкнута») и получим правило логического программирования:

любит(оля,X) любит(аня,X)

2 Другое предложение

«Нам нравится всё, что нравится человеку, которого мы любим».

задает правило:

«Для любых X, Y, Z, если любит(Х,Y) и нравится (Y,Z),

то из этого следует, что нравится(Х,Z)»,

что записывается:

X Y Z ( нравится(Х,Z) любит(Х,Y) & нравится(Y,Z) )

Перепишем, предполагая кванторы всеобщности по умолчанию:

нравится(Х,Z)  любит(Х,Y) & нравится(Y,Z)

1.3 Понятие метода резолюций

Один из методов построения логического следствия, не зависящего от интерпретации, т.е. подстановки конкретных значений в логические выражения, реализованный в Прологе является метод резолюций. Он основан на следующем заключении.

Пусть S - некоторое множество дизъюнктов и U - дизъюнкт. Необходимо определить является ли U логическим следствием из S.

Для этого множество S дополняется отрицанием ¬U. Если окажется, что объединение множеств S и {¬U} противоречиво, то U логически следует из S. Попросту это надо трактовать так: или есть U или есть U, но не оба сразу.

Предположим, что даны два дизъюнкта C1 и C2 из S, а L1 и L2 - комплементарные пары

из C1 и C2 соответственно (комплементарными называются литеры U и ¬U).

Дизъюнкция, в которой предварительно вычеркнуты комплементарные пары, называется резольвентой.

Принцип резолюции основан на том, что резольвента дизъюнктов C1 и C2 является логическим следствием C1 и C2.

Если в результате многократного применения процесса построения резольвент получается пустой дизъюнкт, то множество дизъюнктов S противоречиво. Более того, для противоречивого множества дизъюнктов при построении резольвент всегда можно получить пустой дизъюнкт.

Для иллюстрации этого процесса приведём следующий пример. Пусть множество дизъюнктов S задано следующим образом:

P  ¬Q1  ¬Q2 (1)

P  ¬Q3 (2)

U  ¬Q3 (3)

U  ¬P  ¬R (4)

R (5)

Q1 (6)

Q3 (7)

Для доказательства того, что U является логическим следствием из S, к множеству S добавляется дизъюнкт

¬U. (8)

Тогда получаются резольвенты:

¬Q3 (9) из (8) и (3),т.е. ( ¬U )  (U  ¬Q3 )

а

пустой дизъюнкт (10) из (9) и (7),т.е. ( ¬Q3)  (Q3)

Получается, что объединение множеств S и ¬U противоречиво, следовательно, U логически следует из S.

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