
- •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)
D1: факториал (3, z)
На третьем этапе система логического вывода выполнит следующую последовательность этапов вывода на основе резолюции (таблица 4.2)
Таблица 4.2
Вывод на основе резолюции
Шаг вывода |
Родительские предложения |
Унификатор |
Отрицание (резольвента) |
1 |
D1, S2 |
= {x:=3, y:=z, y1:=y/x} = = {x:=3 , y1:= z/3} |
D2: факториал (2, z/3) |
2 |
D2, S2 |
= {x:=2, y:=z/3, y1:=y/x} = = {x:=2 , y1:= z/6} |
D3: факториал (1, z/6) |
3 |
D3, S2 |
= {x:=1, y:=z/6, y1:=y/x} = = {x:=1 , y1:= z/6} |
D4: факториал (0, z/6) |
4 |
D4, S1 |
= {z/6:=1} = {z:=6} |
|
Полученное на 4 шаге противоречие подтверждает отрицание D1, а стало быть вывод является успешным и дает решение:
факториал (3,z), с унификатором = {z:=6}
т.е. факториал (3,6)
Откуда ответ, выдаваемый системой логического вывода: z:=6