Экспертная система это – компьютерная программа, обладающая знаниями эксперта в соответствующей предметной области и моделирующая процесс суждения человека-эксперта. Применение экспертной системы в качестве системы поддержки принятия решения позволяет сократить временные и финансовые затраты на экспертизу, снизить влияние человеческого фактора.
Экспертные системы призваны решать те задачи, где, как принято считать, невозможно обойтись без совета или рекомендации эксперта-человека. Некоторые области деятельности, в которых возможно и оправдано использование ЭС в качестве инструмента поддержки принятия решений, приведены ниже.
Медицина
– Диагностика и выявление причин болезни
– Выбор стратегии лечения
– Подбор лекарства
– Анализ кардиограммы
– Подбор диеты
Техника
– Выявление причин неисправностей оборудования
– Устранение аварийных ситуаций
– Выбор конфигурации системы
– Выбор технологии, материала, комплектующих, оборудования
Бизнес
– Оценка инвестиционной привлекательности проекта
– Оценка рисков проекта
– Выбор/оценка поставщика (подрядчика)
– Выбор стратегии развития бизнеса
– Формирование команды проекта
Финансы
– Оценка надежности заемщика
– Операции с ценными бумагами
– Оценка рисков
– Юриспруденция
– Выбор стратегии поведения
Мода
– Выбор стиля, элемента одежды
Экспертная система – взгляд снаружи
Чтобы понять, как работает экспертная система, представьте следующую ситуацию. Вы собираетесь, например, на концерт, и перед вами стоит проблема: надевать галстук или нет, а если надевать, то какой: одноцветный, с рисунком или в крапинку. Не являясь специалистом в области моды, вы звоните своему приятелю-стилисту. Приятель задает вам несколько вопросов, относительно вида концерта, элементов одежды, которые есть в вашем распоряжении, и на основе информации, полученной от вас, дает совет, что, по его мнению, вам следует надеть (рис. 1). В описанной ситуации вашего приятеля можно рассматривать как экспертную систему. Он обладает знаниями в предметной области (мода) и, на основе полученной от вас информации о текущей ситуации, может предложить вам разумное решение проблемы.
Рис. 1. Диалог с экспертом
Теперь, если вы каким-либо образом сможете “извлечь знания из эксперта”, понять, как эксперт принимает решения, формализовать знания и процесс принятия решений, то вы сможете создать экспертную систему, которая заменит реального человека-эксперта, и в дальнейшем, чтобы получить совет, вы будете обращаться не к эксперту, а к экспертной системе (рис. 2).
Рис. 2. Диалог с экспертной системой
Архитектура экспертной системы
Архитектура экспертной системы, в которой знания представлены совокупностью правил логического вывода, показана на рис. 3.
Рис. 3. Архитектура экспертной системы на правилах (МВ – механизм или "машина" выводв; ИР – интерфейс разработчика; ОС – объясняющая система; ИП – интерфейс пользователя)
В простейшем случае экспертная система может состоять из базы знаний, механизма вывода и интерфейса разработчика-пользователя (рис. 4).
Рис. 4. Минимальная архитектура экспертной системы
(ИР – интерфейс разработчика; МВ – "машина" вывода)
Основой экспертной системы является база знаний о предметной области. База знаний (БЗ) содержит знания – информацию об объектах предметной области.
В экспертных системах для представления знаний используют:
– семантические сети
– фреймы
– правила логического вывода
Семантические сети и фреймы используют в системах, предназначенных для решения исследовательских задач в области искусственного интеллекта. Рассмотрение этих способов представления знаний выходит за рамки этой книги.
Правила логического вывода в общем случае представляют собой выражения вида
ЕСЛИ
Правила логического вывода отражают ход рассуждений человека-эксперта и позволяют наиболее естественно и понятно описать процесс принятия решений.
Например, на естественном языке правила выбора галстука можно записать так:
If jacket is blazer and shirt is white classic then tie is narrow
If jacket is sport coat and shirt is striped then no tie
В базе знаний экспертной системы эти правила выглядят так:
rule(1)
jacket = blazer
shirt = white_classic
then
tie=narrow;
rule(2)
jacket = sport_coat
shirt = striped
then
tie = no;
Факты базы знаний представляю собой утверждения вида
Факты в базе знаний появляются в процессе консультации как результат ответов пользователя на вопросы экспертной системы, а также как результат согласования фактов с правилами.
Например, если на вопрос экспертной системы Shirt? пользователь введет white_classic, то в базу знаний будет добавлен факт
shirt=white_classic, cf=100