- •4. Представление знаний с использованием логики предикатов
- •4.1. Логические модели и логическое программирование
- •4.2. Простейшие конструкции языка предикатов
- •4.3. Предикатные формулы
- •(X) [являться (х, птица) имеет (х, крылья), владеет (х, гнездо)]
- •Любит (х, у),
- •4.4. Определение правильно построенной формулы
- •(X) [человек (х) смертен]
- •4.5. Логический вывод
- •4.5.1. Правило резолюции для простых предложений
- •4.5.2. Правило резолюции для сложных предложений
- •4.5.3. Простая резолюция сверху вниз
- •S3: сдает (успешно, сессию, студент)
- •Получает ли студент стипендию?
- •S: получает (студент, стипендию)
- •S: сдает (успешно, сессию, студент)
- •Подтверждают отрицание s: s1: ( получает (студент, стипендию))
- •Получает (студент, стипендию)
- •4.5.4. Общая резолюция сверху вниз
- •4.5.5. Унификаторы и примеры унификации
- •4.5.6. Решение задач и извлечение ответа.
- •D1: факториал (3, z)
(X) [являться (х, птица) имеет (х, крылья), владеет (х, гнездо)]
и соответствуют предложению, которое может читаться как: «любое Х является птицей если это Х имеет крылья и владеет гнездом».
Кванторы и могут использоваться и для любого числа переменных. Рассмотрим их различное использование на примере двухместного предиката
Любит (х, у),
который описывает отношение «Х любит Y»:
(X) (Y) любит (Х, Y) - все люди любят всех людей;
(Х) (Y) любит (Х, Y) - существует человек, который любит всех;
(Х) (Y) любит (Х, Y) - для каждого человека существует тот, который его любит;
(Х) (Y) любит (Х, Y) - существует человек, который кого-нибудь любит.
4.4. Определение правильно построенной формулы
Комбинируя логические связки и кванторы можно рекурсивно определить составную формулу логики предикатов, называемую правильно построенной формулой (далее просто ППФ или логическая формула).
Если говорить применительно к естественному языку, то ППФ описывает обычное предложение общего вида.
Термом является либо константа, либо переменная, либо кортеж из n термов, перед которым стоит функтор.
Предикат - это кортеж из n термов, перед которым стоит предикатный символ.
Атомарный предикат является логической формулой.
Если F и G - логические формулы, то (F); F,G; FG; F; FG; FG - также являются логическими формулами.
Если F(X) - логическая формула, то оба выражения (Х) F(X), (X) F(X) является логическими формулами.
Все результаты, получаемые повторением конечного числа n1 - n6, являются логическими формулами.
Множество всех предложений, построенных согласно данным правилам, образуют язык логики предикатов первого порядка.
Воспользовавшись этими определениями, можно, например, предложение «все люди смертны» записать в виде:
(X) [человек (х) смертен]
4.5. Логический вывод
Логический вывод - это процесс получения из множества правильно построенных формул (S) некоторой ППФ (s) путем применения одного или нескольких правил вывода.
4.5.1. Правило резолюции для простых предложений
Наиболее простой метод логического вывода использует только одно правило вывода, называемое резолюцией, которое применяют к логическим формулам вида:
факт: А
отрицание: (А1, ... , Аn)
импликация: А В1, ... , Вm,
где Аi (i = 1, n) и Bj (j = 1, m) - произвольные предикаты.
Рассмотрим наиболее простую из форм резолюции для случая всего лишь двух S = { S1 , S2 } ППФ вида:
S1 (отрицание): А
S2 (импликация): А В ,
в которых предикат А из S1 совпадает с предикатом А левой части S2.
В результате одного шага вывода из S1 и S2 будет получена новая ППФ вида:
S: B
На этом шаге вывода ППФ S1 и S2 называются родительскими предложениями, а S - резольвентой, которая получается в результате применения резолюции к S1 и S2.
Резолюция в этом простейшем случае соответствует правилу вывода modus tollens, которое записывается в виде:
(*)
B
и соответствует следующему умозаключению:
допуская, что: НЕ А и А ЕСЛИ В,
выводим: НЕ В
В еще более простом случае, когда S1 - отрицание, а S2 - факт, т.е.:
S1: А
S2: А
применение правила резолюции даст резольвенту - пустое отрицание
S:
и означает противоречие. Данный шаг вывода может быть записан в виде:
(**)
и резолюцией является рассуждения типа
допуская, что: НЕ А и А
выводим противоречие.
