Оказавшись в жаркий летний день в заторе и заметив, что температура двигателя растет, вы обращаетесь к экспертной системе, установленной на бортовом компьютере вашего авто с вопросом: «Двигатель перегревается! Что будет?» Высокомудрый электронный советчик, поразмыслив, отвечает: «Придется тратить деньги и поздно вернуться домой». Ответ есть результат прямой цепочки рассуждений. Содержащееся в запросе условие находится в первом правиле, результат - условие второго правила и т. д.
Конечно, в реальной системе правил
гораздо больше, расположены они в произвольном порядке, но суть организации рассуждений от этого не меняется: машина вывода ищет правило, в условной части которого находится запрос, затем - правило, содержащее в условной части результат первого найденного правила и т. д., пока вся цепочка не будет выстроена.
Обратная цепочка рассуждений возникает в задачах диагностического характера. Пусть имеется следующий набор правил:
ЕСЛИ <сел аккумулятор> ТО <в стартер не подается ток>;
ЕСЛИ <в стартер не подается ток> ТО <стартер не вращается>;
ЕСЛИ <стартер не вращается > ТО <двигатель не заводится>.
Теперь наступившее печальное событие «двигатель не заводится» получает объяснение посредством обратной цепочки рассуждений, которая начинается с отыскания правила, в результирующей части которого описано это событие. Условная часть правила содержит непосредственную причину, затем ищется «причина этой причины» и т. д. - до того, пока вся база знаний не будет просмотрена. В данном случае на вопрос к бортовому компьютеру «Почему двигатель не заводится» будет дан ответ «Сел аккумулятор». |