1.3. Исчисление предикатов
В исчислении высказываний каждый элементарный символ обозначает высказывание некоторой сложности, причем не существует способа получить доступ к компонентам этого суждения. Кроме того, в высказываниях не используются переменные, т.е. элементарные символы являются константами.
Исчисление предикатов предоставляет такие возможности. Например, вместо высказывания P – «всю неделю шел дождь» в исчислении предикатов можно создать предикат погода(X,Y), описывающий отношение между днем недели и погодой, где X – множество дней недели, Y - множество вариантов погоды. Тогда можно заявить, что для всех значений X и Y«дождь» утверждение погода(X,Y) есть истина, что и будет эквивалентно высказыванию P. Посредством правил вывода и с учетом синтаксиса предикатов можно изменять выражения исчисления предикатов, обращаясь непосредственно к их компонентам и выводя новые предложения. Таким образом, исчисление предикатов по сравнению с исчислением высказываний увеличивает гибкость описания окружающего мира.
Алфавит исчисления предикатов состоит следующих знаков: букв (русских или английских) как строчных, так и прописных, цифр и знака подчеркивания. Круглые скобки используются для правильного построения выражений.
Символы начинаются с буквы, за которой следует последовательность знаков, например, День_недели, погода_вчера, plus. Символы могут представлять константы, переменные, функции и предикаты.
Константы соответствуют некоторым объектам или их свойствам из описываемого мира и должны начинаться со строчной буквы или состоять только из цифр.
Переменные обозначают общие классы объектов или свойств и должны начинаться с прописной буквы. Переменная должна быть определена на некотором множество констант, имеющих общее свойство, например, переменная День_недели определена на множестве {пн, вт, ср, чт, пт, сб, вс}, т.е. может принимать любое из этих значений. Теоретически область определения переменной может быть бесконечной.
Функция обозначает отражение одного или нескольких элементов множества, называемого областью определения, в однозначно определяемый элемент другого множества, называемый областью значений функции. Функция состоит из символа, начинающегося со строчной буквы, и заключенного в круглые скобки списка аргументов. Число аргументов определяет арность функции, например, функция погода(День_недели) имеет арность 1, а функция plus(7,минус_2) – арность 2. Замена функции ее значением называется оцениванием функции. Тогда значение функции plus(7,минус_2) – целое число 5. Значение функции погода(День_недели), можно определить, только заменив переменную День_недели константой из области ее определения, например, если в понедельник шел дождь, то это значение и будет результатом оценивания функции погода(День_недели) для День_неделипн.
Предикаты указывают на отношение между несколькими объектами в мире, причем количество связанных таким образом объектов определяет арность предиката. Предикаты подобно функциям состоят из предикатного символа, начинающегося со строчной буквы, и заключенного в круглые скобки списка термов. Термом исчисления предикатов может быть константа, переменная, или функция. Минимальная единица языка исчисления предикатов – это атомарное предложение или просто атом, представляющее собой предикат некоторой арности, например, друг(иван,петр) или друг(отец(вася),отец(маша)), причем в последнем случае аргументы предиката являются функциями. Если отец(вася)иван, а отец(маша)петр, то после оценки функциональных выражений приведенные в примере предикаты будут эквивалентны.
Из атомарных предложений можно формировать предложения или выражения, также являющиеся предикатами, используя те же логические связки, что и в исчислении высказываний. Составленное таким образом множество термов и предикатов представляет собой базу знаний, описывающую объекты и их отношения в области определения некоторого мира, текущее состояние которого вычисляется путем интерпретации предикатов.
Интерпретация предикатов на некоторой области определения D – это связывание логических объектов из D с каждым термом в выражении исчисления предикатов согласно следующим правилам:
-
каждой константе ставится в соответствие элемент из D;
-
каждой переменной ставится в соответствие множество элементов из D, являющееся ее областью определения;
-
каждая функция f арности n задает отображение из Dn в D;
-
каждый предикат p арности m задает отображение из Dm в {T,F}.
При таком определении интерпретации, для получения значения предложения, нужно присвоить ему значение истинности на данной интерпретации, в результате чего предложение будет отображено в {T,F}.
Используемые в предложениях переменные относятся к некоторым объектам из своей области определения. Кванторы переменных ограничивают значения предложения, содержащего переменную. Квантор существования указывает, что предложение истинно, хотя бы для одного значения из области определения переменной. Квантор всеобщности указывает, что предложение истинно для всех значений из области определения переменной. Например, высказывания: «все любят мороженное» и «У Ивана есть друг» можно представить соответственно как: X любить(X,мороженное) и X друг(иван,Х), где X – множество людей.
Для указания области действия квантора используются круглые скобки, например, X(p(X)q(Y)r(X)), указывает, что переменная Х связана квантором всеобщности в предложениях p(X) и r(X). В исчислении предикатов все выражения должны быть связаны кванторами.
Следует отметить, что квантор всеобщности усложняет вычисление значения истинности предложения, т.к. необходимо проверить все возможные значения переменной. Если область определения переменной, связанной квантором всеобщности, бесконечна, то полная проверка истинности путем последовательной подстановки в выражение значений переменной в принципе невозможна, из-за чего проблему исчисления предикатов, строго говоря, считают в общем случае неразрешимой.
Проверка истинности выражений, содержащих связанные квантором существования переменные, с бесконечной областью определения, может вызвать не меньшие сложности, например, если выражение ложно при всех значениях переменной, то алгоритм проверки никогда не завершится.
В качестве примера, рассмотрим описание семейных отношений согласно библейской генеалогии. Отношения родителей и детей можно описать набором предикатов: мать(ева,авель); мать(ева,каин); отец(адам,авель); отец(адам,каин), где имена являются константами. Для описания в общем виде родительских и братских отношений можно использовать импликацию атомарных предложений с участием переменных:
XY(отец(X,Y)мать(X,Y)родитель(X,Y));
XYZ(родитель(X,Y)родитель(X,Z)братья(Y,Z)),
где X={адам, ева}, Y, Z={авель, каин}.
Интерпретация путем подстановки соответствующих констант позволяет вывести новое правильное заключение, например, братья(авель,каин).
Интерпретация должна обеспечивать значение истинности для всех выражений в базе знаний, а сами выражения должны достаточно детально описывать некоторый мир, предоставляя возможность логически выводить новые корректные выражения из набора первоначальных выражений по определенным правилам. Именно эта возможность является достоинством исчисления предикатов.
Выражение Х логически следует из набора выражений S, если каждая интерпретация, удовлетворяющая S, удовлетворяет и Х, а правила вывода позволяют определить, когда новое выражение логически следует из имеющегося набора выражений. Выражение Х выполнимо, если существует интерпретация, при которой ХТ, в противном случае Х невыполнимо. Если выражение имеет значение Т для всех возможных интерпретаций, то оно называется адекватным.
Правило вывода обосновано, если каждое выражение, полученное в соответствии с этим правилом из множества выражений, логически следует из этого множества. Например, правило отделения или modus ponens и универсальное инстанцирование – обоснованные правила вывода.
Правило отделения гласит, что если предложения P и PQ истинны в некоторой интерпретации, то Q в этой интерпретации тоже истинно. Например, если P означает «идет дождь», а Q – «земля мокрая», то утверждение «если идет дождь, то земля мокрая» есть импликация P→Q. При условии, что РТ, т.е. сейчас идет дождь, получаем набор истинных предложений: P→Q, Р. Применив к ним правило отделения, получаем, что QT, т.е. можем добавить в набор новый факт – «сейчас земля мокрая».
Правило универсального инстанцирования гласит, что если в истинном предложении любую переменную, стоящую под квантором всеобщности, заменить соответствующим термом из области ее определения, то результирующее предложение останется истинным. Например, высказывание «все люди смертны» можно представить с исчислении предикатов как, X(человек(Х)смертный(Х)), а утверждение «Сократ – человек» как, человек(сократ). Переменная Х в высказывании стоит под знаком квантора всеобщности, следовательно, согласно правилу универсального инстанцирования, ее можно заменить на любое значение из области определения и, применив правило отделения, получить утверждение смертный(сократ), т.е. «Сократ – смертен».
Следует отметить, что рассуждения, использующие логику исчисления предикатов, основываются на следующих предположениях:
-
предложения в базе знаний адекватно и полно описывают предметную область, т.е. содержат всю необходимую для решения некоторой задачи информацию;
-
предложения в базе знаний не противоречат друг другу.
Создание опирающихся на исчисление предикатов баз знаний для реального мира сталкивается с существенными трудностями, так в экспертных системах предпосылка в импликации часто является целью, а заключение – наблюдаемым состоянием мира. Например, в системе диагностики автомобиля может существовать утверждение «если двигатель не вращается, и фары не горят, то проблема в аккумуляторе или проводке». Оно напоминает обычное предикатное выражение, используемое в правиле отделения, но это не так. Невозможность завести двигатель и зажечь фары не обязательно означают неисправность аккумулятора или проводки. Это только наиболее вероятная причина наблюдаемого состояния автомобиля. А вот обратное утверждение – истинно, но пользы от него, с точки зрения экспертной системы, практически нет.
Данный случай является примером абдуктивного рассуждения, когда из P→Q и Q выводится Р. Абдукция является необоснованным правилом вывода, означающим, что выведенное предложение не обязательно истинно для каждой интерпретации. Однако это правило широко применяется во многих экспертных системах, т.к. хотя именно неисправности или болезни вызывают, т.е. имплицируют, симптомы, а не наоборот; но диагноз ставится от симптомов к причинам, их вызвавшим.
Для измерения степени доверия к заключению часто вводится коэффициент уверенности, определяющий вероятность ошибки для абдуктивного рассуждения. Такой подход позволяет учесть в правилах меру достоверности данных и проводить нечеткие рассуждения или применять стохастические методы к нечеткому выводу. Проблему изменения степени доверия в процессе работы системы решают немонотонные рассуждения, которые делают наиболее обоснованные предположения в условиях неопределенности информации. Затем выполняется логический вывод на основе этих предположений, принимаемых за истинные. При изменении меры доверия к некоторому утверждению производится перепроверка всех заключений, выведенных с его использованием. Цена такого подхода – необходимость постоянно отслеживать весь ход рассуждений, основанных на неточных знаниях, с помощью систем поддержки истинности, сохраняющих непротиворечивость базы знаний в процессе поиска решения поставленной задачи.
