5.1. Представление знаний с помощью логики предикатов

Широкую область применения среди способов представления знаний имеет логика предикатов. Основное преимущество логики предикатов для представления знаний заключается в том, что обладающий хорошо понятными математическими свойствами мощный механизм вывода может быть непосредственно запрограммирован. С помощью этих программ из известных ранее знаний могут быть получены новые знания.

Основные положения

Более простой логической системой, по сравнению с логикой предикатов, является логика высказываний.

Высказыванием (суждением) называется предложение, принимающее только два значения: «истина» или «ложь». Например, высказываниями являются предложения «снег белый», «снег черный», «у Марса 3 спутника» и т.д. Из нескольких простых высказываний можно составить более сложные. Например, из трех высказываний, приведенных выше, можно получить следующие:

«Снег белый или черный»

«Снег белый и у Марса 3 спутника»

«Если снег не черный, то снег белый»

Другими словами, высказывания образуются с помощью четырех подчеркнутых слов или аналогичных им по смыслу. И наоборот, высказывание может быть разделено на несколько частичных высказываний, связанных с помощью этих слов. Высказывания, которые не могут быть разбиты на несколько частичных высказываний, называются элементарными.

Так как проблемы, связанные с элементарными высказываниями, сводятся только к их истинности или ложности, семантика, которую они представляют, не учитывается. Тогда элементарные высказывания могут рассматриваться как переменные, принимающие значения «истина» или «ложь».

Если определить значения всех элементарных высказываний, входящих в какое-либо высказывание, будет определено и значение высказывания в целом, тогда высказывание можно рассматривать как функцию с аргументами — элементарными высказываниями, которые принимают значение «истина» или «ложь». При этом образующим функцию операторам соответствуют подчеркнутые в приведенных высказываниях слова. Для обозначения операторов применяются следующие символы: Ø — «не», Ú — «или», Ù — «и», É — «если»; эти символы называются логическими связками.

Правила де Моргана:

Ø (AÚB)~ (ØA) Ù ( Ø B)

Ø (AÙB)~ (Ø A) Ú ( Ø B)

Рассмотрим вывод, дающий заключение на основе двух предпосылок:

Предпосылка 1: Все люди смертны

Предпосылка 2: Сократ – человек

Заключение: Сократ  смертен

Если представить эти предложения в виде высказываний, то все они могут быть выражены только элементарными высказываниями, между которыми нет никакой логической связи. Таким образом, сделать такое заключение в рамках логики высказываний невозможно. Чтобы это заключение стало возможным, необходимо разделить элементарные высказывания на еще меньшие элементы.

Если, например, разделить предложение «Сократ — человек» на части «Сократ» (субъект) и «человек» (свойства субъекта), получим:

человек(Сократ).

Вместо имен субъектов можно подставить переменные x,y,z и т.д. Например:

человек(x)

Рассмотрим теперь предложение:

«Все люди смертны».

Для представления этого предложения необходимо использовать конструкции вида: «любой x… », «каждый x». Кроме этого, в других предложениях могут использоваться конструкции вида: «существует такой, что». Представив эти конструкции в виде соответственно «"x(…)», «$x(…)», можно записать приведенное предложение следующим образом:

" x(человек (x) É смертен(x)).

Таким образом, приведенные выше предпосылки 1,2 и заключение можно представить в виде, который называется логической формулой:

Предпосылка 1: " x(человек (x) É смертен(x))

Предпосылка 2: человек (Сократ)

Заключение: смертен (Сократ)

Очевидно, что в логической формуле между предложениями установлена связь. Логика предикатов рассматривает вопрос, можно ли, представив предложения в виде логических формул, с помощью выводов получить из нескольких исходных логических формул некую логическую формулу. Следовательно, в случае приведенного выше примера логика предикатов решает вопрос, можно ли из предпосылок 1, 2 вычислить заключение; как и логика высказываний, она не рассматривает, на что указывает понятие «Сократ», или какой смысл имеет  x в записи «человек (x)». Поэтому «Сократ», «человек», «смертный» представляются в виде a, p, q, т.е., под  p(x) понимается «х — человек», под q(a) – «Сократ  смертен». Таким образом, приведенные выше логические формулы преобразуются к виду:

Предпосылка 1: "x (p(x) É q(x))

Предпосылка 2: p(a)

Заключение: q(a)

Здесь a – константа; p, g – предикатные символы.

Если обозначить через f функцию одного аргумента, логическая формула будет иметь вид:

"x (p(f(x)) É q(x))

Если интерпретировать f(x) как «отец х», а p(x) как «х - человек», то эта логическая формула будет означать:

«Все существа, отец которых человек, – люди».

Если интерпретировать f(x) как х-1, а p(x) как «х – натуральное число», то приведенная формула будет означать:

«Любое число х, для которого выполняется условие х — 1 – натуральное число, является натуральным числом».

Упорядочим основные термины,  использующиеся в логике предикатов.

Существует 6 типов символов:

1) Переменные  представлены буквами x, y, z, u, v, w или этими же буквами с индексами.

2) Константы  представлены буквами a, b, c, d, e или этими же буквами с индексами.

3) Функциональные символы  представлены буквами f, g, h, или этими же буквами с индексами.

4) Предикатные символы представлены буквами: p, q, r, s, t или этими же буквами с индексами.

5) Логические символы представлены пропозициональными связками: É, Ù, Ú, Ø  и  знаками кванторов: ", $ .

6) Вспомогательные символы: ( ), {}, [] и т.п.

Каждый предикатный и функциональный символ определяет несколько аргу-ментов.

Терм определяется следующими правилами:

1) Переменные и константы являются термами.

2) Если f – функция m аргументов и t1,…,tm являются термами, то f(t1,…,tm ) – терм.

3) Термами являются только понятия, определённые в правилах 1, 2.

Если обозначить p – предикатный символ n – аргументов, t1,…,tm – термы,           то  p(t1,…,tm) называется атомарной формулой или атомом.

Логические формулы определяются с помощью следующих правил:

1) Атом – логическая формула.

2) Если А и В – логические формулы, а x – переменная, то (A)É(B), (A)Ù(B), (A)Ú(B),  Ø(A), $x (A), "x (A) – логические формулы;

3) Логическими формулами являются только понятия, определённые в правилах 1 и 2.

Чтобы упростить процедуру обработки логических высказываний, вводится приоритет: у квантора " — наивысший, у É — наименьший.

Формализация знаний

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

формулы, описывающие данную область. Записать знания в виде логических формул не удается в некоторых случаях, когда затруднен выбор трех групп символов, или знания превышают возможности представления в логике предикатов.

Определение: Автоматическое преобразование предложений, написанных на естественном языке (ЕЯ), в язык формальных систем типа логики предикатов называется пониманием ЕЯ.

Проблемы:

1) Нечеткость существующих высказываний.

2) Способ выбора предикатных символов.

3) Проблема с логическими символами:

    исключающее ИЛИ;

    неразделительное ИЛИ.

4) Символ « É »; P É Q показывает причинно-следственные отношения между P и Q. Если отбросить смысл предикатных символов, то теряется связь со смыслом P и Q, поэтому использование такого отношения выходит за рамки логики предикатов.