ЭКСПЕРТНЫЕ СИСТЕМЫ: СТРУКТУРА И КЛАССИФИКАЦИЯ
В нашей стране современное состояние разработок в области экспертных систем
можно охарактеризовать как стадию всевозрастающего интереса среди широких слоев
экономистов, финансистов, преподавателей, инженеров, медиков, психологов, программистов,
лингвистов. К сожалению, этот интерес имеет пока достаточно слабое материальное
подкрепление - явная нехватка учебников и специальной
литературы, отсутствие символьных процессоров и рабочих станций искусственного
интеллекта, ограниченное финансирование исследований в этой области, слабый
отечественный рынок программных продуктов для разработки экспертных систем.
Поэтому распространяются "подделки" под экспертные системы в виде многочисленных
диалоговых систем и интерактивных пакетов прикладных программ, которые дискредитируют
в глазах пользователей это чрезвычайно перспективное направление. Процесс создания
экспертной системы требует участия высококвалифицированных специалистов в области
искусственного интеллекта, которых пока выпускает небольшое количество высших
учебных заведений страны.
Современные экспертные системы широко используются для тиражирования опытам
знаний ведущих специалистов практически во всех сферах экономики. Традиционно
знания существуют в двух видах - коллективный опыт
и личный опыт.
Если большая часть знаний в предметной области представлена в виде коллективного
опыта (например, высшая математика), эта предметная область не нуждается в экспертных
системах (рис. 16.3).
Если в предметной области большая часть знаний является личным опытом специалистов
высокого уровня (экспертов), если эти знания по каким-либо причинам слабо структурированы,
такая предметная область скорее всего нуждается в экспертной системе (рис. 16.4).
Рис. 16.3. Предметная область, не пригодная для создания экспертной
системы
Рис. 16.4. Предметная область, пригоднаядля создания экспертной системы
ОБОБЩЕННАЯ СТРУКТУРА ЭКСПЕРТНОЙ СИСТЕМЫ.
ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Экспертные системы (ЭС)
- это сложные программные комплексы, аккумулирующие знания специалистов
в конкретных предметных областях н тиражирующие этот эмпирический опыт
для консультаций менее квалифицированных пользователей.
Обобщенная структура экспертной системы представлена на рис. 16.5. Следует
учесть, что реальные экспертные системы могут иметь более сложную структуру,
однако блоки, изображенные на рисунке, непременно присутствуют в любой действительно
экспертной системе, поскольку являют собой негласный канон на структуру современной
экспертной системы.
Определим основные термины в рамках данного учебника.
Рис. 16.5 Структура экспертной системы
Пользователь - специалист предметной области, для которого предназначена
система, Обычно его квалификация недостаточно высока, и поэтому он нуждается
в помощи и поддержке своей деятельности со стороны ЭС.
Инженер по знаниям
- специалист по искусственному интеллекту, выступающий в роли промежуточного
буфера между экспертом и базой знаний. Синонимы: когнитолог, инженер-интерпретатор,
аналитик.
Интерфейс пользователя
- комплекс программ, реализующих диалог пользователя с ЭС как на стадии
ввода информации, так и получения результатов.
База знаний
(БЗ) - ядро ЭС, совокупность знаний предметной области, записанная
на машинный носитель в форме, понятной эксперту и пользователю (обычно
на некотором языке, приближенном к естественному). Параллельно такому
"человеческому" представлению существует БЗ во внутреннем "машинном" представлении-
Решатель - программа,
моделирующая ход рассуждении эксперта на основании знаний, имеющихся в
БЗ. Синонимы: дедуктивная машина, блок логического вывода.
Подсистема объяснений
- программа, позволяющая пользователю получить ответы на вопросы; "Как
была получена та или иная рекомендация?" и "Почему система приняла такое
решение?" Ответ на вопрос "как" - это трассировка всего процесса получения
решения с указанием использованных фрагментов БЗ, т.е. всех шагов цепи
умозаключений. Ответ на вопрос "почему"- ссылка на умозаключение, непосредственно
предшествовавшее полученному решению, т.е. отход на один шаг назад.
Интеллектуальный редактор
БЗ - программа, представляющая инженеру по знаниям возможность
создавать БЗ в диалоговом режиме- Включает в себя систему вложенных меню,
шаблонов языка представления знаний, подсказок ("help" - режим) и других
сервисных средств, облегчающих работу с базой.
В коллектив разработчиков ЭС входят как минимум четыре человека:
Возглавляет коллектив инженер по знаниям, это ключевая фигура при разработке
систем, основанных на знаниях.
Схема классификации
Класс "экспертные системы" сегодня объединяет несколько тысяч различных программных
комплексов, которые можно классифицировать по различным критериям. Полезными
могут оказаться следующие классификации
Рис. 16.6. Классификация экспертных систем.
Классификация по решаемой задаче
Интерпретация данных. Это одна из традиционных
задач для экспертных систем. Под интерпретацией понимается определение
смысла данных, результаты которого должны быть согласованными и корректными.
Обычно предусматривается многовариантный анализ данных.
Пример 16.5 (все примеры далее из [7, 8, 10]):
- обнаружение и идентификация различных типов океанских судов - SIAP;
- определение основных свойств личности по результатам психодиагностического
тестирования в системах АВТАНТЕСТ и МИКРОЛЮШЕР и др.
Диагностика. Под диагностикой понимается обнаружение
неисправности в некоторой системе. Неисправность - это отклонение от нормы.
Такая трактовка позволяет с единых теоретических позиций рассматривать
и неисправность оборудования в технических системах, и заболевания живых
организмов, и всевозможные природные аномалии. Важной спецификой является
необходимость понимания функциональной структуры ("анатомии") диагностирующей
системы.
Пример 16.6:
- диагностика и терапия сужения коронарных сосудов - ANGY;
- диагностика ошибок в аппаратуре и математическом обеспечении ЭВМ - система
CRIB и др.
Мониторинг. Основная задача мониторинга
- непрерывная интерпретация данных в реальном масштабе времени и сигнализация
о выходе тех или иных параметров за допустимые пределы. Главные проблемы
- "пропуск" тревожной ситуации и инверсная задача "ложного" срабатывания.
Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость
учета временного контекста.
Пример 16.7:
- контроль за работой электростанций СПРИНТ, помощь диспетчерам атомного реактора
- REACTOR:
- контроль аварийных датчиков на химическом заводе - FALCON и др.
Проектирование. Проектирование состоит
в подготовке спецификаций на создание "объектов" с заранее определенными
свойствами. Под спецификацией понимается весь набор необходимых документов
чертеж, пояснительная записка и т.д. Основные проблемы здесь - получение
четкого структурного описания знаний об объекте и проблема "следа". Для
организации эффективного проектирования и, в еще большей степени, перепроектирования
необходимо формировать не только сами проектные решения, но и мотивы их
принятия. Таким образом, в задачах проектирования тесно связываются два
основных процесса, выполняемых в рамках соответствующей ЭС: процесс
вывода решения и процесс объяснения.
Пример 16.8:
- проектирование конфигураций ЭВМ VAX ― 1/780 в системе XCON (или
R1), проектирование БИС - CADHELP;
- синтез электрических цепей - SYN и др.
Прогнозирование. Прогнозирующие системы
логически выводят вероятные следствия из заданных ситуаций. В прогнозирующей
системе обычно используется параметрическая динамическая модель, в которой
значения параметров "подгоняются" под заданную ситуацию. Выводимые из
этой модели следствия составляют основу для прогнозов с вероятностными
оценками.
Пример 16.9:
- предсказание погоды - система WILLARD:
- оценки будущего урожая - PI.ANT;
- прогнозы в экономике - ЕСОN и др.
Планирование. Под планированием понимается
нахождение планов действий, относящихся к объектам, способным выполнять
некоторые функции. В таких ЭС используются модели поведения реальных объектов
с тем, чтобы логически вывести последствия планируемой деятельности.
Пример 16.10:
- планирование поведения робота - STRIPS,
- планирование промышленных заказов - 1SIS,
- планирование эксперимента - MOLGEN и др.
Обучение. Системы обучения диагностируют ошибки
при изучении какой-либо дисциплины с помощью ЭВМ и подсказывают правильные
решения. Они аккумулируют знания о гипотетическом "ученике" и его характерных
ошибках, затем в работе способны диагностировать слабости в знаниях обучаемых
и находить соответствующие средства для их ликвидации. Кроме того, они
планируют акт общения с учеником в зависимости от успехов ученика с целью
передачи знаний.
Пример 16.11:
- обучение языку программирования Лисп в системе "Учитель Лиспа";
- система PROUST - обучение языку Паскаль и др.
Классификация по связи с реальным временем
Статические ЭС разрабатываются
в предметных областях, в которых база знаний и интерпретируемые данные
не меняются во времени. Они стабильны.
Пример 16.12. Диагностика неисправностей в автомобиле.
Квазидинамические ЭС
интерпретируют ситуацию, которая меняется с некоторым фиксированным
интервалом времени.
Пример 16.13. Микробиологические ЭС, в которых снимаются лабораторные
измерения с технологического процесса один раз в 4 - 5 (производство лизина,
например) и анализируется динамика полученных показателей по отношению
к предыдущему измерению.
Динамические ЭС
работают в сопряжении с датчиками объектов в режиме реального времени
с непрерывной интерпретацией поступаемых данных.
Пример 16.14. Управление гибкими производственными комплексами,
мониторинга реанимационных палатах и т.д. Пример инструментария для разработки
динамических систем - G2[5].
Классификация по типу ЭВМ
На сегодняшний день существуют:
- ЭС для уникальных стратегически важных задач на суперЭВМ (Эльбрус, CRA'. CONVEX
и др.);
- ЭС на ЭВМ средней производительности (типа ЕС ЭВМ, mainframe);
- ЭС на символьных процессорах и рабочих станциях (SUN, APOLLO);
- ЭС на мини- и супермини-ЭВМ (VAX, micro-VAX и др.);
- ЭС на персональных компьютерах (IBM PC, MAC II и подобные).
Классификация по степени интеграции с другими программами
Автономные ЭС работают непосредственно
в режиме консультаций с пользователем для специфически "экспертных"
задач, для решения которых не требуется привлекать традиционные методы
обработки данных (расчеты, моделирование и т. д.).
Гибридные ЭС представляют
программный комплекс, агрегирующий стандартные пакеты прикладных программ
(например, математическую статистику, линейное программирование или системы
управления базами данных) и средства манипулирования знаниями. Это может
быть интеллектуальная надстройка над ППП или интегрированная среда для
решения сложной задачи с элементами экспертных знаний.
Несмотря на внешнюю привлекательность гибридного подхода, следует отметить,
что разработка таких систем являет собой задачу, на порядок более сложную, чем
разработка автономной ЭС. Стыковка не просто разных пакетов, а разных методологий
(что происходит в гибридных системах) порождает целый комплекс теоретических
и практических трудностей.
Традиционные языки программирования
Языки искусственного интеллекта
Это прежде всего Лисп (LISP) и Пролог (Prolog) [8] - наиболее распространенные
языки, предназначенные для решения задач искусственного интеллекта. Есть
и менее распространенные языки искусственного интеллекта, например РЕФАЛ,
разработанный в России. Универсальность этих языков меньшая, нежели традиционных
языков, но ее потерю языки искусственного интеллекта компенсируют богатыми
возможностями по работе с символьными и логическими данными, что крайне
важно для задач искусственного интеллекта. На основе языков искусственного
интеллекта создаются специализированные компьютеры (например, Лисп-машины),
предназначенные для решения задач искусственного интеллекта. Недостаток
этих языков - неприменимость для создания гибридных экспертных систем.
Специальный программный инструментарий
В эту группу программных средств искусственного интеллекта входят специальные
инструментарии общего назначения. Как правило, это библиотеки и надстройки над
языком искусственного интеллекта Лисп: KEE (Knowledge Engineering Environment),
FRL (Frame Representation Language), KRL (Knowledge Represantation Language),
ARTS и др. [1,4,7,8,10], позволяющие пользователям работать с заготовками экспертных
систем на более высоком уровне, нежели это возможно в обычных языках искусственного
интеллекта.
"Оболочки"
Под "оболочками : (shells) понимают "пустые" версии существующих экспертных
систем, т.е. готовые экспертные системы без базы знаний. Примером такой
оболочки может служить EMYCIN (Empty MYCIN - пустой MYC1N) [8], которая
представляет собой незаполненную экспертную систему MYCIN. Достоинство
оболочек в том, что они вообще не требуют работы программистов для создания
готовой экспертной системы. Требуется только специалисты) в предметной
области для заполнения базы знаний. Однако если некоторая предметная область
плохо укладывается в модель, используемую в некоторой оболочке, заполнить
базу знаний в этом случае весьма не просто.
ВВЕРХ
|