Рассмотрим пример создания экспертной системы на основе использования продукционных правил. Правила типа «если-то», называемые продукциями, являются одним из наиболее популярных формализмов представления знаний. Каждое такое правило есть условное утверждение, однако, существуют различные варианты их интерпретации:
1) ЕСЛИ <условие P> ТО <заключение C>;
2) ЕСЛИ <ситуация S> ТО <действие А>;
3) ЕСЛИ <выполняются условия С1 и С2> ТО <не выполняется условие С3>.
Продукции обладают следующими свойствами:
· Модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний;
· Возможность инкрементного наращивания: добавление новых правил в базу знаний независимо от существующих правил;
· Удобство модификации (следствие модульности): старые правила можно изменять и заменять на новые независимо от других правил;
· Прозрачность системы как следствие применения правил.
Последнее свойство - это способность системы к объяснению принятых решений и полученных результатов. Применение «если - то» правил облегчает получение ответов на вопросы типа: «как?» и «почему?».
«Если - то»- правила часто применяют для определения логических отношений между понятиями предметной области. Про чисто логические отношения можно сказать, что они принадлежат к «категорическим знаниям», то есть соответствующие им отношения абсолютно верны. Однако, в некоторых предметных областях преобладают вероятностные («мягкие») знания. Эти знания являются «мягкими» в том смысле, что говорить об их применимости к любым практическим ситуациям можно только до некоторой степени. В таких случаях используют модифицированные «если - то» – правила, дополняя их логическую интерпретацию вероятностной оценкой или использовать нечёткие продукционные правила.
Например, если условие A, то заключение B с вероятностью F.
Проиллюстрируем использование правил типа «если - то» на примере «игрушечной» базы знаний, помогающей идентифицировать животных по их основным признакам в предположении, что задача идентификации ограничена только небольшим числом разных животных.
Правило 1: если
Животное «имеет» шерсть
или
Животное «кормит детенышей» молоком
то
Животное - млекопитающее.
Правило 2:если
Животное «имеет» перья
или
Животное «летает » и
Животное «откладывает яйца»
то
Животное - птица.
Правило 3:если
Животное это млекопитающее и
Животное «ест» мясо
то
Животное - хищник.
Правило 4:если
Животное это хищник и
Животное «имеет» «рыжий цвет» и
Животное «имеет» «темные пятна»
то
Животное - «гепард».
Правило 5: если
Животное это хищник и
Животное «имеет» «рыжий цвет»
и
Животное «имеет» «черные полосы»
то
Животное - «тигр».
Правило 6: если
Животное это птица и
Животное «не может» «летать»
и
Животное «плавает»
то
Животное - «пингвин».
Правило 7: если
Животное это птица и
Животное «летает»
то
Животное - «альбатрос».
Факт: Х это животное: - принадлежит (Х, [гепард, тигр, пингвин, альбатрос]).
Наша пролог-система отвечает на вопросы, используя базу знаний, однако, нельзя сказать, что ее поведение вполне соответствует поведению эксперта. Это происходит по двум причинам:
· Система не может объяснить свой ответ: как она установила, что «Пушок» тигр, а не гепард;
· В систему необходимо ввести всю необходимую информацию в виде фактов, при этом возможен ввод лишней информации («Пушок» ленив) или потеря необходимой информации.
Для того, чтобы исправить эти два недостатка, в системе должен быть реализован более совершенный способ взаимодействия между пользователем и системой во время и после завершения рассуждений, то есть необходимо создать свое средство интерпретации в виде специальной надстройки над пролог-системой.
Система должна взаимодействовать с пользователем в режиме диалога следующим образом: