8.1.2.
Исчисление предикатов
Исчисление
высказываний имеет определенные ограничения. Оно не позволяет оперировать с обобщенными
утверждениями вроде "Все люди смертны". Конечно, можно обозначить такое
утверждение некоторой пропозициональной константой р, а другой константой
q обозначить утверждение "Сократ — человек". Но из (р л q)
нельзя вывести утверждение "Сократ смертен".
Для этого нужно анализировать
пропозициональные символы в форме предикатов и аргументов, кванторов
и квантифщированных переменных. Логика предикатов предоставляет нам
набор синтаксических правил, позволяющих выполнить такой анализ, набор семантических
правил, с помощью которых интерпретируются эти выражения, и теорию доказательств,
которая позволяет вывести правильные формулы, используя синтаксические правила
дедукции. Предикатами обозначаются свойства, такие как "быть человеком",
и отношения, такие как быть "выше, чем".
Аргументы могут быть отдельными
константами, или составным выражением "функция-аргумент", которое обозначает
сущности некоторого мира интересующих нас объектов, или отдельными квантифицируемыми
переменными, которые определены в этом пространстве объектов. Специальные операторы
— кванторы — используются для связывания переменных и ограничения области
их интерпретации. Стандартными являются кванторы общности (V) и существования
(3). Первый интерпретируется как "все", а второй — "кое-кто"
(или "кое-что").
Ниже
приведены синтаксические правила исчисления предикатов первого порядка.
Любой символ (константа или
переменная) является термом. Если rk является символом k-местной функции
и а1 ..., <xk являются термами, то Гk(a1...,
ak) является термом.
(S
40
Если
Tk является символом k-местного предиката
и
а1 ..., ak являются термами,
то U(а1 ..., ak)
является правильно построенной формулой (ППФ).
(S. -) и (S. v)
Правила заимствуются из исчисления
высказывании.
(S.
V) Если U является ППФ и % является переменной,
то (любой Х) U является ППФ.
Для
обозначения используются следующие символы:
Действительные
имена, символы функций и предикатов являются элементами языка первого порядка.
Использование
квантора существования позволяет преобразовать термы с квантором общности в соответствии
с определением
(EX)U
определено как -(любой X)-U.
Выражение
(EХ)(ФИЛОСОФ(Х)) читается как "Кое-кто является философом", а
выражение (любой Х)(ФИЛОСОФ(Х)) читается как "Любой является
философом". Выражение ФИЛОСОФ(Х) представляет собой правильно построенную
формулу, но это не предложение, поскольку область интерпретации для переменной
X не определена каким-либо квантором. Формулы, в которых все упомянутые
переменные имеют определенные области интерпретации, называются замкнутыми
формулами.
Как
и в исчислении высказываний, в исчислении предикатов существует нормальная форма
представления выражений, но для построения такой нормальной формы используется
расширенный набор правил синтаксических преобразований. Ниже приведена последовательность
применения таких правил. Для приведения любого выражения к нормальной форме следует
выполнить следующие операции.
(1)
Исключить операторы эквивалентности, а затем импликации.
(2) Используя правила Де Моргана
и правила замещения (E X)U на -(любой X)-U (а следовательно, и (любой X) U на
-(E X)-U), выполнить приведение отрицания.
(3)
Выполнить приведение переменных. При этом следует учитывать особенности определения
области интерпретации переменных кванторами. Например, в выражении (E Х)(ФИЛОСОФ(Х))&(E
Х)(АТЛЕТ(Х)) переменные могут иметь разные интерпретации в одной и той же
области. Поэтому вынесение квантора за скобки — (E Х)(ФИЛОСОФ(Х))&.(АТЛЕТ(Х))—
даст выражение, которое не следует из исходной формулы.
(4) Исключить кванторы существования.
Кванторы существования, которые появляются вне области интерпретации любого квантора
общности, можно заменить произвольным именем (его называют константой Сколема),
в то время как экзистенциальные переменные, которые могут существовать внутри
области интерпретации одного или более кванторов общности, могут быть заменены
функциями Сколема. Функция Сколема— это функция с произвольным именем, которая
имеет следующий смысл: "значение данной переменной есть некоторая функция
от значений, присвоенных универсальным переменным, в области интерпретации которых
она лежит".
(5)
Преобразование в префиксную форму. На этом шаге все оставшиеся кванторы (останутся
только кванторы общности) переносятся "в голову" выражения и таким образом
оказываются слева в списке квантифицированных переменных. За ними следует матрица,
в которой отсутствуют кванторы.
(6)
Разнести операторы дизъюнкции и конъюнкции.
(7)
Отбросить кванторы общности. Теперь все свободные переменные являются неявно универсально
квантифицированными переменными. Экзистенциальные переменные станут либо константами,
либо функциями универсальных переменных.
(8)
Как и ранее, отбросить операторы конъюнкций, оставив множество фраз.
(9) Снова переименовать переменные,
чтобы одни и те же имена не встречались в разных фразах.
8.1.
Снова о роботах и комнатах
В главе 3 мы
уже упоминали об исчислении предикатов в упрощенном виде. Там выражение вида
at(робот,
комнатаА)
означало,
что робот находится в комнате А. Термы робот и комнатаА в этом выражении представляли
собой константы, которые описывали определенные реальные объекты. Но что будет
означать выражение вида
at(X,
комнатаА) ,
в
котором х является переменной? Означает ли оно, что нечто находится в комнате
А? Если это так, то говорят, что переменная имеет экзистенциальную подстановку
(импорт). А может быть, выражение означает, что все объекты находятся в комнате
А? В таком случае переменная имеет универсальную подстановку. Таким образом, отсутствие
набора четких правил не позволяет однозначно интерпретировать приведенную формулу.
Перечисленные
в этом разделе правила исчисления предикатов обеспечивают однозначную интерпретацию
выражений, содержащих переменные.
В
частности, фраза
at(X,
комнатаА )<—at (X, ящик1) интерпретируется как
"для
всех X X находится в комнате А, если X находится в ящике 1". В этой фразе
переменная имеет универсальную подстановку. Аналогично, фраза
at(X,
комнатаА) <-интерпретируется как "для всех X X находится в комнате А".
А вот фраза
<—
at(X, комнатаА) интерпретируется как "для всех XX не находится в комнате
А".
Иными
словами, это не тот случай, когда некоторый объект X находится в комнате А и,
следовательно, переменная имеет экзистенциальную подстановку.
Теперь
можно преобразовать фразовую форму, в которой позитивные литералы сгруппированы
слева от знака стрелки, а негативные — справа. Если фраза в форме
P1, ..., Рт <—
q1,...qn содержит переменные х1,..., хk, то
правильная интерпретация имеет следующий вид:
для всех x1, ...,
хk
p1
или ... или pm является истинным, если q1
и ... и qn являются истинными.
Если п = 0, т.е. отсутствует
хотя бы одно условие, то выражение будет интерпретироваться следующим образом:
для
всех x1, ..., xk
p1
или ... или рт является истинным.
Если т = 0, т.е. отсутствуют
термы заключения, то выражение будет интерпретироваться следующим образом:
для
всех x1, ..., xk
не имеет значения, что q1
и ... и qn являются истинными.
Если же т = п = 0, то мы имеем дело с пустой фразой, которая всегда интерпретируется как ложная.
| Maya 3D графика в кино и телевидении Воздействие испытаний ядерного оружия на здоровье населения Объектно-ориентированный язык программирования Java Объектно-ориентированное программирование Delphi Библиотека визуальных компонентов VCL и ее базовые классы Кроссплатформенное программирование для Linux Элементы управления Win32 Элементы управления Windows XP Файлы и устройства ввода/вывода Что такое экспертная система? Объектно-ориентированное программирование Инструментальные средства разработки экспертных систем Программирование на языке CLIPS Критерии и количественные характеристики надежности Расчет характеристик надежности невостанавливаемых резервированных изделий Расчет надежности системы с постоянным резервированием Интегрирование тригонометрических функций ; |