Программирование на языке Пролог для искусственного интеллекта
Шрифт:
14.4.3. Формирование ответа на вопрос "как"
Получив ответ на свой вопрос, пользователь возможно захочет увидеть, как система пришла к такому заключению. Один из подходящих способов ответить на вопрос "как" — это представить доказательство, т.е. те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство в случае нашего языка записи правил имеет вид решающего И/ИЛИ-дерева. Поэтому наша машина логического вывода будет не просто отвечать на вопрос, соответствующий цели самого верхнего уровня — этого нам недостаточно, а будет выдавать в качестве ответа решающее И/ИЛИ-дерево, составленное из имен правил и подцелей. Затем это
14.5. Реализация
Теперь мы приступим к реализации нашей оболочки, следуя тем идеям, которые обсуждались в предыдущем разделе. На рис. 14.9 показаны основные объекты, которыми манипулирует оболочка.
Рис. 14.9. Отношение
Основными процедурами оболочки будут:
Эта процедура находит ответ
порождает решения для тех вопросов
выводит результат и отвечает на вопросы "как". Все эти процедуры приводятся в действие процедурой-драйвером
14.5.1. Процедура
Центральной процедурой оболочки является процедура
которая будет находить ответ
Аргументы имеют следующий смысл и следующую структуру:
вопрос, подлежащий
рассмотрению, представленный как И/ИЛИ-комбинация простых утверждений, напримерцепочка, составленная из целей-предков и правил, расположенных между
что означает:
Смысл ее можно выразить так:
Я могу использовать "питер ест мясо" для того, чтобы проверить по прав3, что "питер это хищник".
Далее, я могу использовать "питер это хищник" для того, чтобы проверить по прав5, что "питер это тигр".
решающее И/ИЛИ-дерево для вопроса
где
(1)
(2)
(3)
На рис. 14.10 показана прологовская программа для процедуры
- Telegram
- Viber
- Skype
- ВКонтакте