Чтение онлайн

ЖАНРЫ

Неизвестно

Шрифт:

если вопрос В можно задавать пользователю, спросите пользователя об истинности В

если в имеет вид В1 и В2, то рассмотрите В1, а затем,

если В1 ложно, то положите Отв равным "В это ложь", в противном случае рассмотрите В2 и получите Отв как соответствующую комбинацию ответов на вопросы В1 и В2

если В имеет вид В1 или В2, то рассмотрите В1, а затем,

если В1 истинно, то положите Отв равным "В1 это правда", в противном случае рассмотрите В2 и получите Oтв как соответствующую комбинацию ответов на вопросы В1 и В2.

Вопросы вида

не В

обрабатываются не так просто, и мы обсудим их позже.

14. 4. 2. Формирование ответа на вопрос "почему"

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

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

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

почему?

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

Потому, что

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

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

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

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

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

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

. . .

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

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

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

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

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

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

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

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

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

14. 4. 3. Формирование ответа на вопрос "как"

Получив ответ на свой вопрос, пользователь возможно захочет увидеть, как система пришла к такому заключению. Один из подходящих способов ответить на вопрос "как" - это представить доказательство, т. е. те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство в случае нашего языка записи правил имеет вид решающего И / ИЛИ-дерева. Поэтому наша машина логического вывода будет не просто отвечать на вопрос, соответствующий цели самого верхнего уровня - этого нам недостаточно, а будет выдавать в качестве ответа решающее И / ИЛИ-дерево, составленное из имен правил и подцелей. Затем это дерево можно будет отобразить на выходе системы в качестве объяснения типа "как". Объяснению можно придать удобную для восприятия форму, если каждое поддерево печатать с надлежащим отступом, например:

питер это хищник

было выведено по прав3 из

питер это млекопитающее

было выведено по прав1 из

питер имеет шерсть

было сказано

и

питер ест мясо

было сказано

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

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

14. 5. Реализация

Теперь мы приступим к реализации нашей оболочки, следуя тем идеям, которые обсуждались в предыдущем разделе. На рис. 14.9 показаны основные объекты, которыми манипулирует оболочка. Цель– это вопрос, подлежащий рассмотрению; Трасса– это цепочка, составленная из "целей-предков" и правил, находящихся между вершиной Цель и вопросом самого верхнего уровня; Ответ– решающее дерево типа И / ИЛИ для вершины Цель.

Рис. 14. 9. Отношение рассмотреть( Цель, Трасса, Ответ).

Ответ– это И / ИЛИ решающее дерево для целевого утверждения Цель.

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

рассмотреть( Цель, Трасса, Ответ)

Эта процедура находит ответ Ответ на вопрос Цель. Процедура

ответпольз( Цель, Трасса, Ответ)

порождает решения для тех вопросов Цель, которые можно задавать пользователю. Она спрашивает пользователя об истинности утверждения Цель, а также отвечает на вопросы "почему". Процедура

выдать( Ответ)

выводит результат и отвечает на вопросы "как". Все эти процедуры приводятся в действие процедурой-драйвером эксперт.

14. 5. 1. Процедура рассмотреть

Центральной процедурой оболочки является процедура

Поделиться с друзьями: