Определив правильно построенные выражения в исчислении предикатов, важно задать их значения в терминах объектов, свойств и отношений в некотором мире. Семантика исчисления предикатов обеспечивает формальную основу для определения значений истинности корректно построенных выражений.
Истинность выражений зависит от соответствия констант, переменных, предикатов и функций объектам и отношениям в области определения. Из истинности отношений в области определения следует истинность соответствующих выражений.
Например, информация относительно некоторого человека Джорджа и его друзей Кейт и Сьюзи может быть выражена так.
friends(george.susie) friends(george,kate)
И если Джордж действительно друг Сьюзи и Кейт, то каждое из этих выражений будет иметь значение истинности Т. Если же Джордж — друг Сьюзи, но не Кейт, то первое выражение будет иметь значение истинности Г, а второе — значение истинности F[А.Д.7] Чтобы использовать исчисление предикатов для решения задач, объекты и отношения в интерпретируемой области определения описываются с помощью набора корректных выражений. Термы и предикаты этих выражений обозначают объекты и отношения в области определения. Так формируется база данных выражений исчисления предикатов, каждое из которых, имея значение истинности 7", описывает "состояние мира". Описание Джорджа и его друзей — это простой пример такой базы данных. Другой пример — мир блоков, описанный во введении в часть П.
Основываясь на интуиции, определим семантику исчисления предикатов формально. Сначала определим интерпретацию в области определения D. Затем, используя эту интерпретацию, определим присвоение значений истинности предложениям языка.
ОПРЕДЕЛЕНИЕ ИНТЕРПРЕТАЦИЯ
Пусть область определения D — некоторое непустое множество. Интерпретация на D — это связывание логических объектов из D с каждой константой, переменной, предикатом и функциональным символом в выражении исчисления предикатов на основе следующих правил.
1. Каждой константе ставится в соответствие элемент из D.
2. Каждой переменной ставится в соответствие непустое подмножество из D; оно является областью допустимых значений для этой переменной.
3. Каждая функция f арности (числа операндов) т определяется для т параметров из D и задает отображение из Dmв D.
4. Каждый предикат р арности п определяется для п параметров из D и задает отображение из D" в {7", F}.
При таком определении интерпретации, чтобы получить значение выражения, следует присвоить выражению значение истинности на этой интерпретации.
ОПРЕДЕЛЕНИЕ
ЗНАЧЕНИЯ ИСТИННОСТИ ВЫРАЖЕНИЙ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ
Пусть существует выражение £ и интерпретация / для Е на непустой области определения D. Значение истинности для Е определяется так.
1. Значение константы— это элемент из D, которому соответствует данная константа в интерпретации /.
2. Значение переменной — это множество элементов из D, которые соответствуют данной переменной в интерпретации /.
3. Значение функционального выражения — это такой элемент из D, который получается в результате оценивания функции для значений параметров, соответствующих интерпретации.
4. Значение символа истинности true — это Г, a false — F.
5. Значение атомарного предложения равно либо Т, либо F, и определяется интерпретацией /.
6. Значение отрицания предложения равно Г, если значение предложения равно F; и значение отрицания предложения равно F, если значение предложения равно Т[А.Д.8] 7. Значение конъюнкции двух предложений равно Г, если оба предложения принимают значение Т, иначе оно равно F.
8 -10. Значение истинности выражений, использующих операции v, -> и =, определяется значениями их операндов, как описано в подразделе 2.1.2.
Наконец, для переменной X и предложения S, содержащего X, выполняются следующие соотношения.
11. Значение выражения VXS равно Г, если S равно Г для всех значений X из /, иначе оно равно F.
12. Значение 3XS равно Г, если в интерпретации существует значение X, для которого S равно Г; иначе оно равно F.
Квантификация переменных — это важная часть семантики исчисления предикатов. Если переменная используется в предложении, например, X в предложении likes{george,X), то она выполняет роль заполнителя и обозначает знакоместо. На это место в выражении может быть подставлена любая константа, допускаемая интерпретацией. Заменяя переменную X в предложении likes{george,X) значением kate или susie, получим утверждения likes(george,kate) и likes(george,susie). Переменная X может быть замещена любыми допустимыми константами. Данное имя переменной можно заменить любым другим именем переменной, например У или PEOPLE, при этом значение выражения не изменится. Таким образом, переменная является шаблоном для подстановки. В исчислении предикатов переменные должны быть связаны одним из двух кванторов: универсальности или существования. Переменная считается свободной, если она не связана квантором универсальности или существования. Выражение считается замкнутым (closed), если все его переменные связаны кванторами. Основное выражение (ground expression) вообще не имеет никаких переменных. В исчислении предикатов все переменные должны быть связаны кванторами.
Для обозначения квантора всеобщности применяется символ V. Для указания области действия квантора, т.е. выделения имен переменных, на которые распространяется действие квантора, часто используются круглые скобки. Так, например,
VX(p(X)vq(y)->r(X))
указывает, что переменная X связана квантором всеобщности в р(Х) ив г(Х).
Квантор всеобщности усложняет вычисление значения истинности предложения, потому что для определения истинности выражения необходимо проверить все возможные значения переменной. Например, чтобы определить значение истинности VX likes(george,X), где переменная X задана на множестве всех людей, необходимо проверить все возможные значения X.
Если область определения интерпретации бесконечна, исчерпывающая проверка всех подстановок переменной, связанной квантором всеобщности, в вычислительном отношении совершенно невозможна, так как алгоритм никогда не остановится. Из-за этой проблемы исчисление предикатов считают неразрешимым.
Поскольку исчисление высказываний не использует переменные, предложения имеют только конечное число возможных значений истинности, и их можно проверить полным перебором. Для этого используются таблицы истинности.
Переменные также могут быть связаны квантором существования. В этом случае выражение с переменной считается истинным, если оно истинно по крайней мере для[А.Д.9] одного значения из области определения переменной. Квантор существования обозначается 3. Область действия квантора существования также задается круглыми скобками, в которых все вхождения переменной считаются связанными этим квантором.
Анализ истинности выражения, содержащего переменную, связанную квантором существования, может оказаться не проще, чем оценивание выражений, содержащих переменные под квантором всеобщности. Предположим, необходимо определить истинность выражения. Для этого можно подставлять в него различные значения каждой переменной, пока не будет найдено такое, которое делает выражение истинным. Если область определения переменной бесконечна, и выражение ложно при всех подстановках значений, алгоритм никогда не завершится.
Приведем несколько примеров взаимосвязи между операцией отрицания и кванторами всеобщности и существования. Эти соотношения используются в системах опровержения резолюций, описанных в главе 12. В приведенных соотношениях имя переменной используется в качестве формального символа, который заменяет набор констант. Для предикатов р и q и переменных X и У выполняются следующие соотношения.
-,3Xp(X)=VX-,p(X)
-,VXp(X)s3X-,p(X)
3Xp(X)=3Vp(V)
VXg(X)=VVg(y)
VX(p(X)Aq(X))^Xp(X)A\fYq(Y)
3X(p(X)vq(X))=BXp(X)v3Yq(Y)
На определенном нами языке переменные, связанные квантором всеобщности и квантором существования, могут ссылаться только на объекты (или константы) из рассматриваемой области определения. Имена предикатов и имена функций не могут быть заменены именами переменных, стоящих под знаком квантора. Этот язык называется исчислением предикатов первого порядка (first-order predicate calculus).
ОПРЕДЕЛЕНИЕ
ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ПЕРВОГО ПОРЯДКА
Исчисление предикатов первого порядка позволяет связывать знаком квантора переменные, соответствующие объектам из предметной области, но не предикаты или функции. Например,
V{Likes)Likes(george,kate)
не является правильно построенным выражением в исчислении предикатов первого порядка. Существуют исчисления предикатов высших порядков, в которых такие выражения поддаются интерпретации. Некоторые исследователи [McCarthy, 1968], [Appelt, 1985] использовали языки высших порядков, чтобы представить знания в программах понимания естественного языка.
Многие грамматически правильные английские предложения могут быть представлены в исчислении предикатов первого порядка с помощью символов, связок и символьных переменных, определенных в этом разделе. Важно заметить, что не существует уникального отображения предложений в выражения исчисления предикатов. Английское предложение может иметь любое число различных представлений в области исчисления предикатов. Основная трудность для программистов систем искусственного интеллекта заключается в том, чтобы найти схему использования предикатов, оптимальную с точки зрения выразительности и эффективности оконча[А.Д.10] - тельного представления. Приведем примеры английских и русских предложений, представленных средствами исчисления предикатов.
If it doesn't rain on Monday, Tom will go to the mountains. (Если в понедельник не будет дождя, Том пойдет в горы.)
-,weather(rain,monday)->go(tom, mountains)
Emma is a Doberman pinscher and a good dog. (Эмма—это доберман-пинчер и хорошая собака.)
gooddog(emma)Aisa(emma,doberman)
All basketball players are tall. (Все баскетболисты — высокие.)
VX{basketball_player(X)->tall(X))
Some people like anchovies. (Некоторые люди любят анчоусы.)
3X(person(X)Alikes(X,anchovies))
If wishes were horses, beggars would ride. (Если бы желания были лошадьми, то нищие бы ездили верхом.)
equal{wishes,horses)-:>ride(beggars) Nobody likes taxes. (Никто не любит налоги.) -,3Xlikes(X, taxes)
2.2.3. Значение семантики на примере "мира блоков"
В заключение этого раздела рассмотрим вопросы присвоения значений истинности некоторым выражениям исчисления предикатов на примере из "мира блоков". Предположим, мы хотим промоделировать мир блоков, изображенный на рис. 2.3, и сконструировать алгоритм управления для руки робота. Для представления качественных отношений в этом мире можно использовать предложения исчисления предикатов. С помощью этих предложений нужно описать, свободна ли верхняя грань данного блока, можно ли взять блок а, и т.д. Предположим, что компьютер обладает знаниями о расположении каждого блока и руки, а также способен отслеживать перемещение блоков на столе (используя трехмерную систему координат).
В этом примере из "мира блоков" нужно очень точно определить свои действия. Сначала необходимо создать набор выражений исчисления предикатов, который должен фиксировать текущее состояние мира блоков в рассматриваемой предметной области. В разделе 2.3 будет представлена интерпретация и возможная модель мира блоков, описанная набором выражений исчисления предикатов.
Исчисление предикатов декларативно, т.е. не существует никакой принятой синхронизации или порядка рассмотрения каждого выражения. Тем не менее в разделе 7.4 мы дополнительно рассмотрим процедурную семантику (procedural semantics) или ясно определенную методологию для оценки этих выражений во времени. Конкретный пример процедурной семантики для выражений исчисления предикатов — это язык PROLOG (глава 14). Создаваемое нами ситуационное исчисление связано с рядом вопросов, включающих проблему фреймов и немонотонности логических интерпретаций. Эти вопросы будут представлены на рассмотрение позже. Для этого примера достаточно сказать, что выражения исчисления предикатов будут оцениваться слева направо[А.Д.11]
На рис. 2.3 представлена семантическая интерпретация этих выражений исчисления предикатов. Она отображает константы и предикаты в набор выражений из области определения D (в данном случае это блоки и отношения между ними). Интерпретация сопоставляет значение истинности Г с каждым выражением в описании. Для других наборов блоков, находящихся в другом расположении, или же, например, для группы из четырех акробатов, могла бы быть предложена другая интерпретация. Вопрос заключается не в уникальности интерпретаций. Главное, интерпретация должна обеспечивать значение истинности для всех выражений в наборе, а сами выражения должны достаточно детально описывать мир, предоставляя все необходимые выводы. В следующем разделе эти идеи используются для формальной основы правил вывода исчисления предикатов.