Типичная статическая ЭС состоит из
следующих основных компонентов (рис. 1.):
- решателя
(интерпретатора);
- рабочей
памяти (РП), называемой также базой данных (БД);
- базы знаний
(БЗ);
- компонентов
приобретения знаний;
- объяснительного
компонента;
- диалогового
компонента.
База
данных (рабочая память) предназначена для хранения исходных и промежуточных
данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но
не по смыслу с термином, используемым в информационно-поисковых системах (ИПС)
и системах управления базами данных (СУБД) для обозначения всех данных (в
первую очередь долгосрочных), хранимых в системе.
База
знаний
(БЗ) в ЭС предназначена для хранения долгосрочных данных, описывающих
рассматриваемую область (а не текущих данных), и правил, описывающих
целесообразные преобразования данных этой области.
Решатель, используя
исходные данные из рабочей памяти и знания из БЗ, формирует такую
последовательность правил, которые, будучи примененными к исходным данным,
приводят к решению задачи.
Компонент приобретения
знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый
пользователем-экспертом.
Объяснительный
компонент
объясняет, как система получила решение задачи (или почему она не получила
решение) и какие знания она при этом использовала, что облегчает эксперту
тестирование системы и повышает доверие пользователя к полученному результату.
Диалоговый
компонент
ориентирован на организацию дружественного общения с пользователем как в ходе
решения задач, так и в процессе приобретения знаний и объяснения результатов
работы.
В
разработке ЭС участвуют представители следующих специальностей:
эксперт
в проблемной области, задачи которой будет решать ЭС;
инженер
по знаниям - специалист по разработке ЭС (используемые им технологию, методы
называют технологией (методами) инженерии знаний);
программист
по разработке инструментальных средств (ИС), предназначенных для ускорения
разработки ЭС.
Необходимо
отметить, что отсутствие среди участников разработки инженеров по знаниям (т.
е. их замена программистами) либо приводит к неудаче процесс создания ЭС, либо
значительно удлиняет его.
Эксперт определяет
знания (данные и правила), характеризующие проблемную область, обеспечивает
полноту и правильность введенных в ЭС знаний.
Инженер
по знаниям
помогает эксперту выявить и структурировать знания, необходимые для работы ЭС;
осуществляет выбор того ИС, которое наиболее подходит для данной проблемной
области, и определяет способ представления знаний в этом ИС; выделяет и
программирует (традиционными средствами) стандартные функции (типичные для
данной проблемной области), которые будут использоваться в правилах, вводимых
экспертом.
Программист разрабатывает
ИС (если ИС разрабатывается заново), содержащее в пределе все основные компоненты
ЭС, и осуществляет его сопряжение с той средой, в которой оно будет
использовано.
Экспертная
система работает в двух режимах: режиме приобретения знаний и в режиме решения
задачи (называемом также режимом консультации или режимом использования ЭС).
В
режиме приобретения знаний общение с ЭС осуществляет (через
посредничество инженера по знаниям) эксперт. В этом режиме эксперт, используя
компонент приобретения знаний, наполняет систему знаниями, которые позволяют ЭС
в режиме решения самостоятельно (без эксперта) решать задачи из проблемной
области. Эксперт описывает проблемную область в виде совокупности данных и
правил. Данные определяют объекты, их характеристики и значения, существующие в
области экспертизы. Правила определяют способы манипулирования с данными,
характерные для рассматриваемой области.
Отметим,
что режиму приобретения знаний в традиционном подходе к разработке программ
соответствуют этапы алгоритмизации, программирования и отладки, выполняемые
программистом. Таким образом, в отличие от традиционного подхода в случае ЭС
разработку программ осуществляет не программист, а эксперт (с помощью ЭС), не
владеющий программированием.
В
режиме консультации общение с ЭС осуществляет конечный пользователь,
которого интересует результат и (или) способ его получения. Необходимо
отметить, что в зависимости от назначения ЭС пользователь может не быть
специалистом в данной проблемной области (в этом случае он обращается к ЭС за
результатом, не умея получить его сам), или быть специалистом (в этом случае пользователь
может сам получить результат, но он обращается к ЭС с целью либо ускорить
процесс получения результата, либо возложить на ЭС рутинную работу). В режиме
консультации данные о задаче пользователя после обработки их диалоговым
компонентом поступают в рабочую память. Решатель на основе входных данных из
рабочей памяти, общих данных о проблемной области и правил из БЗ формирует
решение задачи. ЭС при решении задачи не только исполняет предписанную
последовательность операции, но и предварительно формирует ее. Если реакция
системы не понятна пользователю, то он может потребовать объяснения:
"Почему
система задает тот или иной вопрос?", "как ответ, собираемый
системой, получен?".
Структуру,
приведенную на рис. 1.1, называют структурой статической ЭС.
ЭС данного типа используются в тех приложениях, где можно не учитывать
изменения окружающего мира, происходящие за время решения задачи. Первые ЭС,
получившие практическое использование, были статическими.
На
рис. 1.2 показано, что в архитектуру динамической ЭС по сравнению со
статической ЭС вводятся два компонента: подсистема моделирования внешнего мира
и подсистема связи с внешним окружением. Последняя осуществляет связи с внешним
миром через систему датчиков и контроллеров. Кроме того, традиционные компоненты
статической ЭС (база знаний и машина вывода) претерпевают существенные
изменения, чтобы отразить временную логику происходящих в реальном мире
событий.
Подчеркнем,
что структура ЭС, представленная на рис. 1.1 и 1.2, отражает только компоненты
(функции), и многое остается "за кадром". На рис. 1.3 приведена
обобщенная структура современного ИС для создания динамических ЭС, содержащая
кроме основных компонентов те возможности, которые позволяют создавать
интегрированные приложение в соответствии с современной технологией
программирования.
Этапы разработки экспертных систем
Разработка
ЭС имеет существенные отличия от разработки обычного программного продукта.
Опыт создания ЭС показал, что использование при их разработке методологии,
принятой в традиционном программировании, либо чрезмерно затягивает процесс
создания ЭС, либо вообще приводит к отрицательному результату.
Использовать
ЭС следует только тогда, когда разработка ЭС возможна, оправдана и
методы инженерии знаний соответствуют решаемой задаче. Чтобы разработка
ЭС была возможной для данного приложения, необходимо одновременное
выполнение по крайней мере следующих требований:
- существуют
эксперты в данной области, которые решают задачу значительно лучше, чем
начинающие специалисты;
- эксперты
сходятся в оценке предлагаемого решения, иначе нельзя будет оценить
качество разработанной ЭС;
- эксперты
способны вербализовать (выразить на естественном языке) и объяснить
используемые ими методы, в противном случае трудно рассчитывать на то, что
знания экспертов будут "извлечены" и вложены в ЭС;
- решение
задачи требует только рассуждений, а не действий;
- задача не
должна быть слишком трудной (т.е. ее решение должно занимать у эксперта
несколько часов или дней, а не недель);
- задача хотя
и не должна быть выражена в формальном виде, но все же должна относиться к
достаточно "понятной" и структурированной области, т.е. должны
быть выделены основные понятия, отношения и известные (хотя бы эксперту)
способы получения решения задачи;
- решение
задачи не должно в значительной степени использовать "здравый
смысл" (т.е. широкий спектр общих сведений о мире и о способе его
функционирования, которые знает и умеет использовать любой нормальный
человек), так как подобные знания пока не удается (в достаточном
количестве) вложить в системы искусственного интеллекта.
Использование
ЭС в данном приложении может быть возможно, но не оправдано. Применение ЭС
может быть оправдано одним из следующих факторов:
- решение
задачи принесет значительный эффект, например экономический;
- использование
человека-эксперта невозможно либо из-за недостаточного количества
экспертов, либо из-за необходимости выполнять экспертизу одновременно в
различных местах;
- использование
ЭС целесообразно в тех случаях, когда при передаче информации эксперту
происходит недопустимая потеря времени или информации;
- использование
ЭС целесообразно при необходимости решать задачу в окружении, враждебном
для человека.
Приложение
соответствует методам ЭС, если решаемая задача обладает совокупностью
следующих характеристик:
- задача может
быть естественным образом решена посредством манипуляции с символами (т.е.
с помощью символических рассуждений), а не манипуляций с числами, как
принято в математических методах и в традиционном программировании;
- задача
должна иметь эвристическую, а не алгоритмическую природу, т.е. ее решение
должно требовать применения эвристических правил. Задачи, которые могут
быть гарантированно решены (с соблюдением заданных ограничений) с помощью
некоторых формальных процедур, не подходят для применения ЭС;
- задача
должна быть достаточно сложна, чтобы оправдать затраты на разработку ЭС.
Однако она не должна быть чрезмерно сложной (решение занимает у эксперта
часы, а не недели), чтобы ЭС могла ее решать;
- задача
должна быть достаточно узкой, чтобы решаться методами ЭС, и практически
значимой.