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




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


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

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

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

        почему?

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

        Потому, что

        Я могу использовать    а,

                чтобы проверить по правилу  Па,  что  b,   и

        Я могу использовать  b,

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

        Я могу использовать  с,

                чтобы проверить по правилу  Пc,  что  d,   и

        . . .

        Я могу использовать  y,

                чтобы проверить по правилу  Пy,  что  z,   и

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

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

fig14_8.gif (2639 bytes)

Рис. 14. 8.  Объяснение типа "почему". На вопрос "Почему вас интересует

текущая цель?" дается объяснение в виде цепочки правил и целей,

соединяющей текущую цель с исходным вопросом пользователя,

находящимся в верхушке дерева. Эта цепочка называется трассой.

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




Содержание  Назад  Вперед