Содержание к диссертации
Введение
1 Состояние вопроса. обзор и анализ литературных источников. сущность проблемы 13
1.1 Общие сведения 13
1.2 Модификация рабочей памяти 16
1.2.1 Изменение значений данных 16
1.2.2 Смена используемых баз данных 18
1.2.3 Изменение способа представления данных 19
1.3 Модификация базы знаний 20
1.3.1 Изменение содержимого баз знаний 20
1.3.2 Смена используемых баз знаний 22
1.3.3 Изменение способа представления знаний 25
1.4 Модификация работы механизма логического вывода 27
1.4.1 Стратегии разрешения конфликтных ситуаций 28
1.4.2 Мультиагентные интеллектуальные системы 32
1.5 Модификация остальных компонентов экспертной системы 36
1.5.1 Компонент приобретения знаний 36
1.5.2 Объяснительный компонент 37
1.5.3 Интерфейсный модуль 38
1.5.4 Модуль управления доступом 39
1.6 Сравнительный анализ современных инструментов для создания экспертных систем 40
1.7 Выводы 42
2 Теоретические основы построения регенеративных экспертных систем 43
2.1 Понятие РЭС. Архитектура 43
2.2 Математическая модель РЭС 46
2.2.1 Операции над моделью РЭС 47
2.2.2 Множество ограничений модели РЭС ...50
2.2.3 Допустимые операции над моделью РЭС ...57
2.2.4 Свойства операций над моделью РЭС 60
2.2.5 Нарушения ограничений 63
2.2.6 Применение механизма транзакций 75
2.3 Математическая модель РЭС с учетом типов модулей 80
2.3.1 Особенности модели РЭС с учетом типов модулей 81
2.3.2 Использование модели РЭС с учетом типов модулей 82
2.4 Выводы 84
3 Алгоритмическая и программная реализация регенеративной экспертной системы 85
3.1 Общие сведения 85
3.2 Выбор и обоснование средств разработки 87
3.3 Алгоритмическая реализация РЭС 90
3.3.1 Структура разработанной РЭС 91
3.3.2 Функциональный состав РЭС 92
3.3.3 Вспомогательные модули РЭС 95
3.4 Особенности программной реализация РЭС 98
3.4.1 Загрузка системы. Диспетчер состояний 98
3.4.2 Язык сценариев и правила регенерации 99
3.4.3 База данных модулей РЭС 103
3.4.4 Диспетчеризация команд экспертной системы 109
3.4.5 Унифицированный метод подключения и использования модулей 114
3.4.6 Применение механизма транзакций 115
3.4.7 Разработка конфигураций РЭС 117
3.5 Выводы 120
4 Тестирование и оценка эффективности разработанной регенеративной экспертной системы 121
4.1 Выбор и обоснование предметной области 121
4.2 Анализ предметной области и концептуальная модель знаний 125
4.2.1 Первый этап работы диагностической РЭС 125
4.2.2 Второй этап работы диагностической РЭС 137
4.2.3 Общий алгоритм работы диагностической РЭС 150
4.3 Надежность разработанной регенеративной экспертной системы 156
4.4 Тестирование и анализ эффективности системы 157
4.5 Общая методика и технология построения РЭС 163
4.6 Выводы 167
Заключение 168
Список использованных источников 171
- Изменение способа представления знаний
- Понятие РЭС. Архитектура
- Выбор и обоснование средств разработки
- Первый этап работы диагностической РЭС
Введение к работе
Актуальность проблемы
Преимущества и эффективность применения экспертных систем уже не вызывает сомнений. Экспертные системы помогают экономить время при решении достаточно сложных интеллектуальных задач. Кроме того, экспертные системы помогают заменить весьма дорогостоящий труд человека-эксперта. Однако несмотря на очевидные преимущества экспертные системы до сих пор не получили достаточно широкого распространения, чему препятствуют несколько объективных факторов, в числе которых: высокая сложность разработки, недостаточная гибкость таких систем, а также полное или частичное отсутствие возможностей их постепенного развития и совместимости с уже существующими приложениями.
Предметные области, для которых разрабатываются экспертные системы, как правило чрезвычайно сложны и обладают фактором изменчивости. На этапе проектирования и разработки системы бывает довольно сложно предусмотреть все возможные ситуации, в которых придется работать системе. Кроме того, нельзя забывать о том, что при эксплуатации системы в предметной области могут происходить изменения, прямо или косвенно влияющие на процесс решения задач экспертной системой. Типичной является ситуация когда экспертная система на определенной ограниченной тестовой выборке данных превосходно справляется с решением задач, а при эксплуатации в реальных условиях при возникновении незначительных незапланированных изменений в предметной области заходит в тупик.
Таким образом, можно утверждать, что для более эффективного использования экспертных систем и их широкого распространения необходимо решить следующие три задачи: разработать методику и инструменты, облегчающие проектирование и создание экспертных систем, разработать технологию, позволяющую гибкое и постепенное изменение и совершенствование экспертных систем уже на этапе эксплуатации, наделить экспертные системы способностью адекватно реагировать на изменения, происходящие в предметной области.
Первая из перечисленных проблем с переменным успехом решается уже достаточно давно с помощью так называемых экспертных оболочек,
являющихся инструментом, облегчающим создание экспертных систем. Экспертные оболочки фактически представляют собой экспертные системы с пустой базой знаний. Инженеры по знаниям, разрабатывающие экспертную систему в конкретной предметной области, производят наполнение базы знаний данными, использующимися при решении поставленных задач. Экспертные оболочки являются достаточно эффективным инструментом, однако ставят разработчика в строгие рамки реализованных концепций и моделей представления знаний, что зачастую приводит к обратному эффекту и лишь усложняет процесс разработки экспертной системы.
Проблема разработки, сопровождения и постепенного развития сложных программных комплексов частично решена благодаря использованию компонентной архитектуры и цикличному методу проектирования и разработки. Однако адаптации данной теории к проблемам разработки экспертных систем до сих пор не существует.
Диссертационная работа посвящена разработке принципов функционирования и методики и технологии создания регенеративных экспертных систем (РЭС), способных переконфигурироваться и модифицировать свое поведение в зависимости от изменения параметров окружающей среды, а также разработки полнофункциональной диагностической регенеративной экспертной системы, демонстрирующей широкие возможности и эффективность РЭС.
Цель работы
Разработка основных положений регенеративного подхода к построению экспертных систем, теоретическое обоснование методики и технологии разработки РЭС и создание инструментальной среды для создания регенеративных экспертных систем.
Задачи исследования:
проведение анализа существующих методов модификации поведения экспертных систем в зависимости от изменений среды функционирования;
определение общих принципов построения регенеративных экспертных систем;
разработка математических моделей, описывающих поведение и особенности регенеративных экспертных систем;
исследование ограничений, налагаемых на модель регенеративной экспертной системы;
разработка языков описания конфигурации и сценариев регенеративной экспертной системы, обеспечивающих изменение поведения системы в процессе ее функционирования;
разработка и исследование архитектуры регенеративной экспертной системы;
исследование ' основных модулей предложенной модели регенеративной экспертной системы;
разработка алгоритмов и сценариев функционирования диагностической регенеративной экспертной системы;
проведение алгоритмического и программного конструирования экспертной оболочки, позволяющей создание регенеративной экспертной системы;
разработка общей методики и технологии создания регенеративных экспертных систем для решения задач в произвольных предметных областях;
исследование эффективности разработанного регенеративного подхода и диагностической РЭС, проведение сравнительного анализа возможностей аналогичных систем.
Методы исследования
Одним из методов модификации системы в процессе функционирования является использование компонентной архитектуры, позволяющей также поэтапную разработку и усовершенствование системы. Функциональность системы распределена между конечным множеством модулей системы. Изменение функциональности достигается изменением структурного состава модулей, представляющих текущую конфигурацию регенеративной экспертной системы. Теоретическое обоснование и разработка принципов работы подобных систем и являлось целью данной работы. Управление модификацией работающей системы осуществляется с помощью сценариев, написанных на разработанном языке сценариев регенеративной экспертной системы. Контроль текущего состояния системы и окружающей среды выполняет принципиально новый модуль - диспетчер состояний, который в случае возникновения необходимости и выполняет переконфигурацию системы
Поставленные задачи решены с применением теории графов, конечных детерминированных автоматов, теории множеств дискретных элементов, математического моделирования и продукционных баз знаний.
Научная новизна
разработана математическая модель регенеративной экспертной системы и исследованы ее свойства и ограничения, налагаемые на эту модель;
разработан язык описания конфигураций и сценариев регенеративной экспертной системы;
спроектирована и разработана экспертная оболочка, позволяющая создание регенеративных экспертных систем;
создана принципиально новая технология динамической диспетчеризации команд регенеративной экспертной системы, обеспечивающая подключение новых возможностей;
разработан метод унифицированного подключения и использования модулей;
адаптирован механизм применения транзакций поддерживающий регенеративную экспертную систему в согласованном состоянии;
создана продукционная база знаний, позволяющая производить диагностику финансового состояния предприятия;
предложена общая методика, позволяющая создавать регенеративные экспертные системы для решения в произвольных предметных областях;
Практическая ценность
Разработка регенеративной экспертной системы проводилась в рамках работы по гранту РФФИ № 00-01-96009 «р2000юг» "Исследование и разработка принципов и методологии построения регенеративных экспертных систем" (руководитель - профессор Частиков А.П.).
Разработанная методика и технология создания РЭС позволяет конструировать более гибкие экспертные системы, способные модифицировать свое поведение в зависимости от изменений, происходящих в предметной области. Кроме того, разработанная технология позволяет сокращать сроки разработки и внедрения в эксплуатацию экспертных систем, и их поэтапное усовершенствование. Практическим приложением разработанной методики создания РЭС стала регенеративная экспертная система диагностики финансового состояния предприятия. Основным достоинством разработанной системы является ее способность адекватно реагировать на изменения происходящие в процессе решении задачи. На
первом этапе проведения диагностики финансового состояния предприятия экспертная система формирует вывод о достоверности предоставленной финансовой отчетности, используя отдельный механизм логического вывода и базу знаний. Этот этап необходим для принятия решения о дальнейших методах оценки текущего финансового состояния. На втором этапе РЭС делает вывод о способах, а иногда и целесообразности проведения дальнейших оценок, основываясь на результатах, полученных на предыдущем этапе. В этот момент в качестве базы фактов используются данные в формате Excel и два механизма логического вывода, один из которых производит необходимые вычисления, а другой осуществляет необходимые выводы.
Дополнительным достоинством разработанной системы является ее возможность постепенной модернизации и улучшения уже после ввода системы в эксплуатацию. В случае выявления некоторых новых неучтенных в процессе проектирования и разработки ситуаций, при которых система не может функционировать или функционирует неэффективно, разрабатываются новые модули, и производится изменение сценариев функционирования без остановки работы всей системы.
В настоящее время в рамках проектов комплексной автоматизации управленческого учета, проводимых Научно-производственной фирмой "Новус", разработанная регенеративная экспертная система, проводящая диагностику финансового состояния предприятия, внедрена на 5 предприятиях Краснодарского края (акт внедрения прилагается).
Апробация работы
Основные этапы работы докладывались и обсуждались на I Всероссийской научно-практической конференции "Перспективы развития современных информационных технологий" (Краснодар, 2000), VII Всероссийской научно-практической конференции "Инновационные процессы в высшей школе" (Краснодар, 2001), Всероссийской научной конференции грантодержателей РФФИ, РГНФ и администрации Краснодарского края (Туапсе, 2001), III Международной научно-технической конференции "Искусственный интеллект" (Крым, 2002), I Международной научно-методической конференции "Новые информационные технологии в университетском образовании" (Кемерово, 2002), XIII Международной конференции "Применение новых технологий в образовании" (Троицк, 2002), I Международной конференции "Информационные технологии в образовании" (Москва,* 2002), IV Всероссийской научно-технической, конференции "Компьютерное и математическое моделирование в естественных и технических науках" (Тамбов, 2002), V Всероссийской научно-технической конференции "Информационные технологии в науке,
проектировании и производстве (Н.Новгород, 2002), VIII Всероссийской научно-практической конференции "Инновационные процессы в высшей школе" (Краснодар, 2002)
На научно-практической конференции "Перспективы развития современных информационных технологий" доклад, посвященный результатам данной работы, был удостоен второй премии.
Публикации. По теме диссертации опубликовано 20 печатных работ. Из
них: 1 учебное пособие, 8 статей и 11 тезисов докладов на
вышеперечисленных конференциях.
Основные положения, выносимые на защиту:
принципы построения и архитектура регенеративных экспертных систем;
язык описания конфигураций и сценариев, необходимый для управления поведением регенеративной экспертной системы адекватно изменениям, происходящим во внешней среде;
алгоритм работы принципиально нового компонента регенеративной экспертной системы - диспетчера состояний, который анализирует текущее состояние внешней среды и выполняет переконфигурацию, основываясь на заданных сценариях работы;
технология динамической диспетчеризации команд и унифицированный метод подключения и использования модулей регенеративной экспертной системы;
механизм транзакций, адаптированный для проведения отказоустойчивой модификации регенеративной экспертной системы;
методика и технология, позволяющие создавать регенеративные экспертные системы для решения в произвольных предметных областях.
Структура и объем работы
Работа содержит 49 рисунков, 14 таблиц, библиографию из 122 наименований на 9 страницах и приложения на 53 страницах.
В первой главе, определены основные отличия регенеративных экспертных систем от классических. Рассмотрены преимущества РЭС и возможные области их применения. Проведен анализ существующих инструментов предназначенных для создания экспертных систем и предоставляемых ими возможностей по модификации работы таких важнейших компонентов, как механизм логического вывода, база фактов, база знаний, компонент приобретения знаний, объяснительный и диалоговый компонент. Определены важнейшие классы модификаций работы
экспертных систем. Рассмотрены такие известные методы модификации работы механизма логического вывода как метаправила, применение различных стратегий разрешение конфликтных ситуаций и мультиагентные системы. Перечислены недостатки этих методов. Осуществлена постановка задачи и определены методы ее решения.
Во второй главе диссертации приведена предлагаемая модель архитектуры регенеративной экспертной системы. Построена математическая модель, позволяющая исследовать возможности изменения поведения системы во времени. Введено понятие ограничений налагаемых на модель. Введены допустимые операции над математической моделью РЭС и исследованы их свойства. Адаптирован механизм транзакции, примененный для выполнения отказоустойчивых модификаций регенеративной экспертной системы. Построенная математическая модель РЭС с учетом различия типов модулей. Исследованы свойства усовершенствованной модели и введены дополнительные операции. Введен набор ограничений необходимый для работы с моделью учитывающей типы модулей. Исследованы и определены методы использования построенных математических моделей регенеративных экспертных систем.
В третьей главе диссертации приведено описание реализации ключевых компонентов инструмента для создания регенеративных экспертных систем. В ней проанализированы современные средства разработки экспертных систем и сделан выбор оптимального набора средств, позволяющий осуществить эффективную разработку экспертных систем в рамках предложенного регенеративного подхода. Предложены новая технология динамической диспетчеризации команд и унифицированный метод соединения и использования модулей, необходимые для практической реализации РЭС. Рассмотрены языки описания конфигураций и сценариев работы регенеративной экспертной системы. Предложен инструмент для визуального создания и тестирования конфигураций регенеративных экспертных систем.
Четвертая глава посвящена исследованию надежности и эффективности разработанного регенеративного подхода. В данной главе выбрана конкретная предметная область - диагностика финансового состояния предприятия и обоснована необходимость использования регенеративных экспертных систем. Данная предметная область всесторонне исследована и разработана основные модули сценарии функционирования системы, необходимые для решения поставленной задачи. Построена концептуальная
модель представления знаний. Исследована надежность построенной регенеративной экспертной системы. Проведен сравнительный анализ разработанной системы с аналогичными существующими системами, который показал ощутимую эффективность примененного подхода. Предложена общая методика позволяющая создавать регенеративные экспертные системы для решения в произвольных предметных областях.
В приложениях приведен полный синтаксис правил регенерации, список графов, используемых для проведения вычислений экономических коэффициентов, спецификации наиболее важных СОМ-интерфейсов основных модулей регенеративной экспертной системы и фрагменты программ, реализующие ключевые возможности системы.
Изменение способа представления знаний
Применение метода факторизации пространств ограничено тем, что для ряда областей не удается по частичному решению сделать заключение о его непригодности. Примерами таких областей являются задачи планирования и конструирования. В этих случаях могут быть применены методы поиска, использующие идею абстрактного пространства. Абстракция должна подчеркнуть важные особенности рассматриваемой задачи, позволить разбить задачу на более простые подзадачи и определить последовательность подзадач, приводящую к решению основной задачи [117]. Подобный метод поиска использован, например, в экспертной системе R1. На основании заказа покупателя на требующиюся ему конфигурацию системы VAX система R1 определяет, не содержит ли заказ несовместимых компонентов, выявляет недостающие компоненты и строит диаграммы, изображающие пространственные взаимосвязи компонентов VAX. Система R1 разбивает общую задачу на шесть подзадач. Порядок, в котором решаются эти задачи, зависит от заказанной конфигурации. Действия, выполняемые каждой подзадачей, зависят от комбинации заказанных компонентов и способа их взаимосвязи.
В ряде приложений не удается все решаемые задачи свести к фиксированному набору подзадач. Примерами таких приложений являются задачи планирования перемещений в пространстве. План решения задачи в данном случае должен иметь переменную структуру и не может быть сведен к фиксированному набору подзадач [119]. Для решения подобных задач может быть использован метод нисходящего уточнения. Для того чтобы упростить процесс решения некоторой задачи в сложном пространстве, целесообразно получить обобщенное пространство или пространство меньшей размерности и попробовать найти решение в этом пространстве. Существенной характеристикой такого процесса является поиск решения задачи в абстрактном пространстве, преобразование этого решения в решение более низкого уровня и т.д. Причем на каждом уровне вырабатывается окончательное решение и только затем осуществляется переход на следующий, более конкретный уровень. Формирование более абстрактного пространства осуществляется путем игнорирования части описаний менее абстрактного пространства (на первом шаге - конкретного пространства). Игнорирование описаний осуществляется на основе ранжирования описаний по степени важности. Одним из первых примеров использования метода нисходящего уточнения является система ABSTRIPS, которая составляет план перемещения роботом объектов между комнатами. Робот действует в мире, содержащем описание комнат, расположения дверей в комнатах, состояния дверей (открыты, закрыты), местонахождения объектов, местонахождения робота. Возможным действиям робота соответствуют определенные операторы. Пространство поиска (конкретное пространство), в котором ищется решение, состоит из возможных состояний мира, получаемых преобразованием исходного состояния путем применения к нему всех возможных операторов. Для того, чтобы упростить процесс решения задачи, ABSTRIPS формирует из конкретного пространства иерархию абстрактных пространств. Абстрактные пространства образуются путем упрощения условий применимости операторов. Уровень детализации указывается с помощью веса, связанного с каждой литерой в условии применимости оператора. После построения приблизительного плана его детали уточняются в более конкретных пространствах.
Из приведенных примеров ясно, что возможность использования в процессе решения разных баз знаний одновременно или поочередно присутствует в некоторых современных экспертных системах и оболочках. Однако такая возможность должна быть предусмотрена на этапе разработки экспертной системы или экспертной оболочки и не может быть добавлена в систему, если этого не было сделано.
В большинстве современных экспертных оболочек предполагается несколько вариантов представления знаний. В процессе разработки конкретной экспертной системы пользователь может выбирать требуемый способ представления знаний. В качестве примера разберем возможности представления знанийъ экспертной оболочке CLIPS.
Одним из основных методов представления знаний в CLIPS являются правила. Правила используются для представления эвристик или эмпирических правил, определяющих действия, которые необходимо выполнить в случае возникновения некоторой ситуации. Разработчик экспертной системы создает набор правил, которые, работая вместе, решают поставленную задачу. Правила состоят из предпосылок и следствия. Предпосылки правила представляют собой набор условий (или условных элементов), которые должны удовлетворится для того, чтобы правило выполнилось. Предпосылки правил удовлетворяются в зависимости от наличия или отсутствия некоторых заданных фактов в списке фактов или некоторых созданных объектов, являющихся экземплярами классов, определенных пользователем. Один из наиболее распространенных типов условных выражений в CLIPS - образцы (patterns). Образцы состоят из набора ограничений, которые используются для определения того, удовлетворяет ли некоторый факт или объект условному элементу. Процесс сопоставления образцов фактам или объектам называется сопоставлением образцов (pattern-matching). Механизмом логического вывода CLIPS автоматически сопоставляет образцы с текущим списком фактов и определенными объектами и ищет правила, применимые в данный момент.
Следствие правила представляется набором некоторых действий, которые нужно выполнить в случае, если правило применимо к текущей ситуации. Таким образом, действия, заданные в следствии правила, выполняются по команде механизма логического вывода, если все предпосылки правила удовлетворены. Этот процесс продолжается до тех пор, пока список применимых правил не опустеет.
Помимо эвристической CLIPS поддерживает и процедурную парадигму представления знаний, используемую в большинстве языков программирования. Специальные конструкторы позволяют пользователю определять новые выполняемые функции непосредственно в среде CLIPS. Кроме того, среда CLIPS поддерживает концепции объектно-ориентированного программирования и позволяет представление знаний в виде иерархии классов и объектов - экземпляров этих классов.
Понятие РЭС. Архитектура
Выбор и обоснование средств разработки
Как было уже отмечено, принципиальным отличием регенеративных экспертных систем является их способность изменять свое поведение в процессе функционирования. Другими словами, во время решения задач РЭС оптимально подстраивается под постоянно происходящие изменения параметров внешней среды. Согласно приведенным выше соображениям модификацию поведения регенеративной экспертной системы было решено реализовать путем изменения функционального состава системы [83]. В процессе работы системы в ее текущей конфигурации некоторые компоненты могут быть заменены другими, решающими аналогичные задачи, но, возможно, совершенно иным образом. Кроме того, к конфигурации системы могут быть добавлены совершенно новые компоненты или удалены некоторые из уже присутствующих. Естественно, подобные изменения системы должны происходить совершенно прозрачно и незаметно для пользователя и не сказываться отрицательно на процессе функционирования системы и получения решения. Компоненты, отвечающие приведенным выше условиям, были названы модулями регенеративной экспертной системы [86]. Реализация системы в виде набора отдельных самостоятельных модулей, поддерживающих концепцию "черного ящика", представляет собой наиболее оптимальный вариант архитектуры системы, модифицирующей свое поведение в процессе работы. Данное утверждение обусловливается следующими факторами: на практике нет возможности предусмотреть все варианты изменений параметров реальной предметной области из-за большого числа ее свойств (эффект комбинаторного взрыва) и, как следствие, все необходимые варианты конфигураций регенеративной экспертной системы на этапе проектирования и разработки; независимые модули позволяют реализовать поэтапную процедуру разработки и внедрения регенеративной экспертной системы, а также ее постепенное развитие [20]; изменение концепций работы отдельного компонента может привести к необходимости изменений в работе некоторой группы связанных компонентов. Далее в этой главе будут рассмотрены методы и особенности реализации регенеративной экспертной системы. 3.2 Выбор и обоснование средств разработки Регенеративные экспертные системы представляют собой принципиально новый тип экспертных систем, поэтому для реализации РЭС, предназначенной для решения задач в некоторой конкретной предметной области, не подходит ни одна из существующих экспертных оболочек [17]. Попытки моделирования даже некоторой части функциональности регенеративных экспертных систем в рамках классических экспертных оболочек неизбежно терпят неудачу по следующим причинам [92],[94]: в существующих экспертных оболочках если и поддерживается возможность изменения поведения механизма логического вывода, такая возможность ограничивается конечным числом вариантов, поэтому неизбежно наступает момент, когда предоставленный набор вариантов перестает быть достаточным; существующие экспертные оболочки не способны выполнять сколько-нибудь значительную перестройку системы незаметно для пользователя, например, в случае изменения способа представления знаний и смены текущей базы знаний требуется полная остановка с потерей всех уже полученных результатов. Таким образом, вышеизложенные факты приводят к необходимости реализации новой экспертной оболочки, позволяющей разработку и создание регенеративных экспертных систем. Архитектура проектируемой системы должна обеспечивать поддержку разнообразных задач во множестве предметных областей (точно также же как и способность человека мыслить не связана с какой-либо отдельной задачей или областью знаний). При реализации подобной системы критически важным является выбор средств разработки, поддерживающих модульный подход [106],[108]. Необходимыми свойствами являются: возможность создания отдельных модулей в виде самостоятельных исполнимых блоков, а не, например, в виде библиотек исходных текстов; возможность быстрого и легкого подключения и отключения модулей друг к другу в процессе функционирования программы без необходимости ее остановки; способность модулей осуществлять администрирование и самоконтроль всей системы, включая контроль за всеми модулями, имеющимися в наличии, и модулями, работающими в данный момент. Наиболее современной и совершенной технологией, позволяющей создание модульных программных комплексов, является технология Microsoft COM (Component Object Model). Эта технология представляет собой протокол создания исполнимых программных компонентов и библиотеку, реализующую необходимый и достаточный набор функций для работы с этими компонентами [66].
Компоненты СОМ состоят из исполняемого кода в виде динамически компонуемых библиотек (DLL) или ЕХЕ-файлов. Компоненты, написанные в соответствии со спецификацией СОМ, удовлетворяют всем требованиям компонентной архитектуры. Компоненты СОМ подключаются друг к другу динамически, что не требует остановки работы программы. Библиотека функций, предоставляемая технологией СОМ, позволяет единообразно получать информацию о свойствах и текущем состоянии всех необходимых компонентов. Технология СОМ предоставляет возможность работы со сходными компонентами одинаковым образом, что реализуется с помощью постоянства интерфейсов компонентов одного типа. Кроме того, возможна прозрачная поддержка нескольких версий одного компонента.
Первый этап работы диагностической РЭС
Оценим временные затраты реализации предложенной схемы диспетчеризации команд. При использовании схемы, предложенной на рис. 3.4, количество операций, необходимых для вызова команды, в худшем случае равняется N+1, где N - число доступных пользователю команд. При реализации схемы, предложенной на рис. 3.5, количество операций в худшем случае равняется (N M) + Р, где N - общее число команд системы (включая и неиспользуемые в данной конфигурации), М - количество операций, необходимых для определения конкретной реализации команды и создания соответствующего объекта, Р - количество операций, необходимых для настройки и запуска команды. N заведомо больше N. М находится в диапазоне от 1 до N + К, где К - количество команд системы, необходимых для запуска компонента. Обычно К не превышает 5. Константа Р напрямую зависит от количества параметров команды. Разумное количество операций по настройке и запуску команды не должно превышать 10-20. Таким образом, сложность алгоритмов, приведенных на схемах 3.4 и 3.5, можно оценить как N и (N )2. Из приведенных оценок видно, что алгоритм диспетчеризации команд представленный на схеме 3.5, в худшем случае проигрывает по скорости. Однако это компенсируется более высокой гибкостью и легкостью настроек, которые получает система. Реализация в РЭС обычной схемы диспетчеризации команд сделала бы невозможным подключение к системе качественно новых модулей без изменения модуля диспетчера состояний. Кроме того, приведенные выше характеристики можно значительно улучшить, введя индексацию динамически подключаемых команд, например, с помощью хэш-таблиц. Такая индексация значительно сократит время, требуемое для поиска конкретной команды и сделает его сравнимым с временем поиска команды с помощью стандартных методов диспетчеризации.
Для успешного функционирования любой компонентной системы необходимо средство общения составляющих ее модулей. В разработанной в данной работе регенеративной экспертной системе таким средством является унифицированный метод подключения и использования модулей. Данный метод представляет собой спецификацию СОМ-интерфейса, необходимого для установления соединения, и протокол его использования.
Каждый модуль регенеративной экспертной системы должен реализовывать СОМ-интерфейс IREXConnection. Данный интерфейс предназначен для установления соединения между модулями, передачи сообщений о происходящих событиях и других данных. Интерфейс IREXConnection содержит следующие методы:
Метод InitConnection инициализирует соединение между модулями и передает идентификатор модуля, запрашивающего соединение. После успешного завершения инициализации ссылки на соответствующие интерфейсы помещаются в коллекции соединений обоих модулей. Метод Disconnection предназначен для разрыва установленного соединения. В случае успешного выполнения этого метода ссылки на разорванное соединение удаляются в обоих модулях регенеративной экспертной системы. TestConnection предназначен для проверки установленного соединения. Данный метод осуществляет пробную передачу сообщений между модулями в оба конца. Метод Event предназначен для приема сообщения о некотором событии. В качестве параметров этот метод принимает идентификатор модуля, инициировавшего событие, а также идентификатор и описание события. NeedData служит для извещения модуля о необходимости получения определенных данных, описанных с помощью параметров метода, некоторого связанного модуля. Метод DataTransfer предназначен для получения данных произвольного вида от некоторого связанного модуля.
Данные передаются с помощью указателя на не типизированную область памяти, который является одним из параметров метода. Другими параметрами являются идентификатор модуля, инициировавшего передачу, описание данных и их размер.
Таким образом, для установления соединения необходимо запросить ссылку на интерфейс IREXConnection соединяемого модуля, вызвать метод InitConnection и сохранить полученную ссылку в коллекции установленных соединений. После это возможна передача данных и сообщений в обоих направлениях с помощью методов Event и DataTransfer. Для разрыва установленного соединения необходимо вызвать метод Disconnection и удалить ссылку на соответствующий интерфейс. Протокол передачи данных реализуется самим модулем. В данном проекте использовался простейший протокол рассылки сообщений по принципу "от всех всем" и пересылка данных только при непосредственном запросе. Однако в дальнейшем предполагается реализовать более интеллектуальные методы маршрутизации данных.
В разделе 2.2.6 были рассмотрены основы теории транзакций, а также проведена адаптация механизма транзакций к математической модели регенеративной экспертной системы. Данный раздел посвящен рассмотрению механизмов восстановления системы после некорректной переконфигурации системы и проблемам, возникающим в связи с параллельным выполнением нескольких транзакций.
Следует отметить, что система может находиться в несогласованном состоянии в силу следующих основных причин: выполненное преобразование нарушает ограничения, перечисленные в разделе 2.3; корректная транзакция была прервана в процессе работы в результате общего сбоя системы.
Для решения проблемы, связанной с нарушением ограничений, был использован адаптированный механизм диспетчеризации транзакций, приведенный в разделе 2.2.6.
Для решения проблемы восстановления после общего сбоя системы был применен алгоритм протоколирования транзакций и фиксации произошедших изменений с помощью контрольных точек. Данный метод заключается в ведении дополнительного журнала, отмечающего время начала и завершения транзакций, а так же подробного описания проводимой модификации РЭС. Кроме того, в данный журнал заносятся так называемые снимки конфигурации системы (snapshots) в контрольные точки времени. Данные снимки представляют собой списки используемых в данный момент модулей и связей установленных между ними. В системе также предусмотрена возможность сохранения текущего внутреннего состояния модулей. Для этого каждому модулю необходимо реализовать интерфейс IREXRecover с двумя методами RecoverSave и RecoverLoad. В этом случае при сохранении конфигурации системы диспетчер транзакции потребует сохранить внутренние состояния каждого модуля с помощью метода RecoverSave. При возникновении системного сбоя диспетчер состояний попытается восстановить последнюю зафиксированную конфигурацию системы и запустить на выполнение начатые, но еще не завершенные транзакции. Кроме того, в случае поддержки интерфейса IREXRecover модули смогут восстановить свое внутреннее состояние с помощью метода RecoverLoad.
Проблемы параллельного выполнения транзакций, перечисленные в разд. 2.2.6, кратко можно охарактеризовать как приведение регенеративной экспертной системы в некорректное состояние в результате одновременного выполнения двух или более корректных транзакций. В качестве примера можно привести следующую ситуацию. Некоторая транзакция пытается заменить определенный модуль системы, при этом старый модуль уже удален, а новый еще не добавлен. Другая транзакция в этот же момент времени пытается установить соединение с только что удаленным модулем. Теоретические проблемы параллелизма более подробно рассмотрены в [27].
Для решения данных проблем в разработанной системе применяется механизм блокировок. Используются два типа блокировок отдельных элементов конфигурации РЭС (модулей и связей):