» » »

Язык Prolog. Дизъюнкция. Отрицание.

Язык Prolog. Дизъюнкция. Отрицание

Дизъюнкция

Чистый Пролог разрешает применять только конъюнкцию в вопросах и правилах. Язык, используемый на практике, богаче: в нём допускаются дизъюнкция и отрицание в телах правил и вопросах (т.е. целях, которые исследуются на достижимость). Рассмотрим снова БД библио и следующие выражения со связкой дизъюнкции, обозначаемой точкой с запятой: начальник(Х,анри);библиотекарь(Х)

Оно является аналогом логической формулы

.

Для достижения цели, содержащей дизъюнкцию, система сперва пытается удовлетворить левую часть рассматриваемой дизъюнкции, а если это не удаётся, то переходит к поиску удовлетворения для правой части той же дизъюнкции. Для нашего примера имеем:

? - начальник(Х,анри);библиотекарь(Х).

- - - > Х=эмиль;

- - - > Х=жозеф;

- - - > Х=эмиль;

- - - > нет.

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

Отрицание

В Прологе отрицание имеет имя not и для представления отрицания какого-либо выражения Р используется запись not(P). Цель not(P) достижима тогда и только тогда, когда не удовлетворяется предикат (цель) Р. При этом переменным значения не присваиваются. В самом деле, если достигается Р, то не достигается not(P); значит, надо стереть все присваивания, приводящие к этому результату, наоборот, если Р не достигается, то переменные не принимают никаких значений. Рассмотрим пример, связанный с БД библио:

? - not(начальник(эмиль,арсен)).

- - - > да

? - not(начальник(эмиль,Х)).

- - - > нет

Чтобы обработать отрицание, Пролог рассматривает возможность проведения доказательства как эквивалент значения Л. Следовательно not(P) считается истинным тогда и только тогда, когда не удовлетворяется Р. Подход этот в высшей степени прагматический, не имеющей эквивалента в логике.


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться

Оплаченная реклама

Дисциплины