Широкую область применения среди способов представления знаний имеет логика предикатов. Основное преимущество логики предикатов для представления знаний заключается в том, что обладающий хорошо понятными математическими свойствами мощный механизм вывода может быть непосредственно запрограммирован. С помощью этих программ из известных ранее знаний могут быть получены новые знания.
Основные положения
Более простой логической системой, по сравнению с логикой предикатов, является логика высказываний.
Высказыванием (суждением) называется предложение, принимающее только два значения: «истина» или «ложь». Например, высказываниями являются предложения «снег белый», «снег черный», «у Марса 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, поэтому использование такого отношения выходит за рамки логики предикатов.