Программирование на языке ПРОЛОГ для искуственного интеллекта

       

Формирование ответа на вопрос "почему"


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

        а - это правда?

В ответ пользователь может спросить:

        почему?

Объяснение в этом случае выглядит примерно так:

        Потому, что

        Я могу использовать    а,
                чтобы проверить по правилу  Па,  что  b,   и

        Я могу использовать  b,
                чтобы проверить по правилу  Пb,  что  с,   и

        Я могу использовать  с,
                чтобы проверить по правилу  Пc,  что  d,   и
        . . .

        Я могу использовать  y,
                чтобы проверить по правилу  Пy,  что  z,   и

        z - это ваш исходный вопрос.

Объяснение - это демонстрация того, как система намерена использовать информацию, которую она хочет получить от пользователя. Намерения системы демонстрируются в виде цепочки правил и целей, соединяющей эту информацию с исходным вопросом.

Рис. 14. 8.  Объяснение типа "почему". На вопрос "Почему вас интересует
текущая цель?" дается объяснение в виде цепочки правил и целей,
соединяющей текущую цель с исходным вопросом пользователя,
находящимся в верхушке дерева. Эта цепочка называется трассой.

Будем называть такую цепочку трассой. Трассу можно себе представлять как цепочку правил, соединяющую в И / ИЛИ-дереве вопросов текущую цель с целью самого верхнего уровня так, как это показано на рис. 14.8. Таким образом, для формирования ответа на вопрос "почему" нужно двигаться в пространстве поиска от текущей цели вверх вплоть до самой верхней цели. Для того, чтобы суметь это сделать, нам придется в процессе рассуждений сохранять трассу в явном виде.



Содержание раздела