Интеграция прикладных систем на основе баз знаний

ния используются при решении задачи управления запасами и ленточного раскроя.

Список литературы

1. Комарцова Л.Г. Двухэтапный алгоритм обучения нейронной сети на основе генетического поиска // Нейрокомпьютеры. Разработка и применение.-М.: Радиотехника. -2001. -№»1.

2. Комарцова Л.Г., Голубин А.В. Исследование свойств генетических алгоритмов оптимизации //Методы исследования и проектирования сложных технических систем: Сб. статей. -М.: Изд-во МГТУ им. Н.Э. Баумана. - 2001 (Тр. МГТУ №580).

3. Комарцова Л.Г., Голубин А.В. Использование Конструктора для определения параметров генетического алгоритма // Тр. V Междунар. симпоз.: Интеллектуальные системы (INTELS'2002). -М.:МГТУ им. Н.Э. Баумана.-2002.

4. Курейчик В.М. Генетические алгоритмы. Состояние. Проблемы. Перспективы // Изв. РАН. Теория и системы управления. -1999. - №1.

5. Practical Handbook of Genetic Algorithms// Ed. By I. Chambers. -Washington. USA, CRC Press, 1999.

6. Tongchim S., Chongstitvatana P. Parallel genetic algorithm with parameter adaptation // In Proceedings of IEEE International Conference on Evolutionary Computation, 1999.

интеграция прикладных систем на основе баз знаний

Г.Б. Евгенев

Любой программный комплекс можно представить как триаду рс = <г, б, с>, где рс - программный комплекс; г - функциональные компоненты, осуществляющие обработку данных; б -базы данных; с - управляющий программный комплекс. Графически такая декомпозиция представлена на рисунке 1.

Для проведения функционального анализа прикладных областей и разработки функциональных моделей имеется международный стандарт ГОЕР0. На рисунке 1 функциональная схема интегрированного комплекса представлена в нотации этого стандарта. В этом комплексе функциональными компонентами г являются исполняемые модули прикладных систем в совокупности со служебными модулями, необходимыми для обеспечения совместной работы объединяемых систем.

Для построения концептуальных моделей данных в системе международных стандартов имеется стандарт ГОЕР1Х. Нотация этого стандарта (рис. 1) использована для представления схемы данных интегрированного комплекса. Все интегрируемые системы должны выбирать необходимые для своей работы исходные данные из баз данных б и помещать в них результаты.

Одним из наилучших формализмов моделирования управляющих комплексов являются сети Петри. С их помощью могут быть промоделированы многие системы, в особенности системы с независимыми компонентами, как, например, программное обеспечение. В этой связи в качестве средства для моделирования управляющего программного комплекса с целесообразно использовать сети Петри (см. рис.1).

Для создания управляющих программных комплексов интегрированных прикладных систем непрограммирующими пользователями должны

быть использованы средства экспертного программирования [1]. С использованием этих средств необходимо разработать методику описания управляющих комплексов в форме сетей Петри.

Простое представление системы сетью Петри основано на двух основополагающих понятиях: событиях и условиях [2]. События - это действия, имеющие место в системе. Возникновением событий управляет состояние системы, которое может быть описано множеством условий. Условия - это предикат, или логическое описание состояния системы. Условие может принимать либо значение «истина», либо значение «ложь».

Так как события являются действиями, то они могут происходить при выполнении соответствующих условий. Эти условия называют предусловиями события. Возникающие действия могут изменить состояние системы и привести к выполнению других условий - постусловий.

СХЕМА ФУНКЦИОНАЛЬНАЯ

_I_^

\ A1 f \

/ СХЕМА ДАННЫХ

Рис. 1. Компоненты программных комплексов

В таблице описаны события и их пред- и постусловия, соответствующие сети Петри, представленной на рисунке 2.

Таблица

События Предусловия Постусловия

1 нет а

2 а б

3 б нет

Выполнение Конец Пре°бра- К°нец Выполнение

прогнозной выполнения зование пре°браз°- одноуровневой

модели прогнозной данных вания модели

модели данных

I—о—^—о—^

1 а 2 б 3

Рис. 2. Простая сеть Петри

Описанное представление системы легко моделируется сетью Петри. В сети Петри условия моделируются позициями, а события - переходами. При этом входы перехода являются предусловиями соответствующего события, а выходы -постусловиями. Возникновение события равносильно запуску перехода. Выполнение условия представляется фишкой в позиции, соответствующей этому условию. Запуск перехода удаляет разрешающие фишки, представляющие выполнение предусловий и образует новые фишки, которые представляют выполнение постусловий.

В теории сетей Петри вводятся понятия примитивных и непримитивных событий [2]. Примитивные события изображаются планками, а непримитивные - прямоугольниками. Определение этих двух классов событий имеет двоякое содержание: временное и структурное. Согласно первому подходу примитивным является мгновенное событие, а непримитивным - событие, длительность которого отлична от нуля.

Второй подход используется при моделировании сложных систем на нескольких иерархических уровнях. При этом непримитивное событие представляет в качестве отдельного элемента целую подсеть. В дальнейшем будет использоваться именно такая трактовка непримитивных событий.

Выполнение сети Петри, моделирующее поведение системы, рассматривается как последовательность дискретных событий. Порядок появления событий является одним из возможных, допускаемых основной структурой сети. Это может привести к недетерминированности в выполнении сети Петри. Если в какой-то момент времени разрешено более одного перехода, любой из нескольких возможных может стать «следующим» запускаемым. Это необходимо учитывать при разработке модели.

Имеется два варианта отображения недетерминированности запусков переходов в моделировании параллельной системы. Один из них представлен на рисунке 3. В этой ситуации два разре-

шенных перехода не влияют друг на друга, и любой из них может быть запущен первым. Это называется одновременностью [2].

Другая ситуация изображена на рисунке 4. Здесь два разрешенных перехода находятся в конфликте [2]. В итоге может быть запущен только один из них, так как при запуске будет удалена разрешающая фишка из общего входа. Конфликты в правильно построенной сети интегрированной системы недопустимы. Вырожденным случаем параллельной системы обработки данных является система с одним процессом. Отдельный процесс описывается программой. Программа представляет два различных аспекта процесса: вычисление и управление. Вычисление связано с арифметическими и логическими операциями, вводом и выводом данных и т.п. Управление же связано не с вычислениями, а только с порядком их выполнения.

Сети Петри удачно представляют структуру управления программ. Они предназначены для моделирования упорядочения событий и потока информации, а не для выполнения вычислений.

Стандартный способ представления структуры управления программ - это блок-схемы, которые представляют поток управления в программе. Блок-схемы предназначаются не для указания конкретных вычислений, а для определения структуры программ.

Основными компонентами блок-схем являются узлы двух типов: прямоугольники, представляющие вычислительные блоки, и ромбы, изображающие управляющие блоки (рис. 5). Эти блоки связываются между собой дугами.

При переводе блок-схемы в сеть Петри узлы блок-схемы заменяют переходами, а дуги блок-схемы - позициями. Каждая дуга блок-схемы соответствует точно одной позиции сети Петри. Узлы блок-схемы представляются по-разному, в зависимости от типа узла: вычисления или принятия решения (рис. 5).

Вычисление г

а)

си

© ©

б)

Рис. 5. Преобразование узлов блок-схемы в компоненты сети Петри:

а) преобразование вычислительного узла,

б) преобразование узла принятия решения

При описании сетей Петри с помощью средств экспертного программирования переходы представляются с помощью модулей знаний, а позиции с помощью целочисленных переменных, указывающих наличие и количество фишек в переходе. Предусловия переходов преобразуются в предусловия модулей знаний. Изменение состояний предусловий и постусловий осуществляется с помощью механизмов модулей знаний.

На рисунке 6 представлен модуль знаний, соответствующий вычислительному переходу сети Петри (рис. 5а). Предусловием запуска вычислительного блока является наличие фишки во входной позиции, что представлено как равенство ai=1. Вычислительный блок запускается системной командой (>г.ехе) с указанием имени исполняемого файла и пути к нему (при необходимости). После окончания его работы производится изменение состояния позиций: из входной позиции фишка удаляется (а1=0), а в выходную помещается (ak=1).

На рисунке 7 приведены модули знаний, соответствующие блоку принятия решения (рис. 5б).

В соответствии с числом переходов сети Петри на рисунке 5б используются два модуля знаний: один для значения «истина» (Г), а другой для значения «ложь» (Т). Для определенности в этих

Модуль: М1

Разработчик: Евгенев Г.Б. Наименование: Выполнение вычисления г

Наименование Имя Ограничение

Позиция ai а1 1

Вычисление г г > r.exe

Позиция ai а1 0

Позиция aj а] 1

Рис. 6. Модуль знаний, соответствующий вычислительному переходу сети Петри

Модуль: М2

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при положительной величине с

Наименование

Позиция ai Величина с

Позиция ai Позиция а]

Имя

ai

с

Модуль: М3

Разработчик: Евгенев Г. Б. Наименование: Принятие тельной величине с

а1

Огр;

аничение

1

[0,)

решения при отрица-

Наименование

Позиция ai Величина c

Позиция ai Позиция aj

Имя

ai

с

а1 ак

Ограничение

1

Рис. 7. Модули знаний, соответствующие узлу принятия решения

модулях знаний истинным является положительное значение величины с.

При использовании экспертного программирования особый случай представляют сети Петри с обратными связями. Такие сети необходимо разбивать на подсети, в каждой из которых имеется не более одной обратной связи.

На рисунке 8 представлена блок-схема и эквивалентная ей сеть Петри, построенная с помощью описанных выше правил. В них имеется обратная связь от узла е к узлу принятия решения Ь. Из сети Петри пунктирной рамкой выделена подсеть, охваченная обратной связью. В результате сеть пре-

1

р

т

р

образована в линейную с одним непримитивным переходом, изображенным на рисунке 9а в виде прямоугольника. Этот прямоугольник представляет подсеть, представленную на рисунке 9б с обратной связью.

Приведенные ниже модули знаний содержат описание линейной сети и ее подсети (рис. 9).

Посредством модуля знаний M0 производится установка исходного состояния позиций. Фишка помещается в начальную позицию, а остальные пусты. Такая маркировка позволяет запустить процесс.

Модуль M1 производит выполнение перехода a, удаляет фишку из позиции p1 и помещает ее в позицию p2.

Модуль: МО

Разработчик: Евгенев Г.Б.

Наименование: Установка начальных значений позиций

Модуль: M1

Разработчик: Евгенев Г.Б. Наименование: Выполнение вычисления a

Такая маркировка сети позволяет запустить непримитивный переход Ы1. В отличие от переходов a и £ представляющих собой исполняемые модули интегрируемых систем, непримитивный переход, представляющий подсеть, генерируется с помощью средств экспертного программирования в виде метода. Этот метод компонуется из приве-

денных ниже модулей знаний с идентификаторами Bl.

Модуль M3 завершает описание линейной сети Петри, изображенной на рисунке 9а.

Модуль: М2

Разработчик: Евгенев Г.Б. Наименование: Выполнение вычисления Ь11

Наименование Имя Ограничение

Позиция p2 p2 1

Вычисление bl1 bl1 Метод bl1

Позиция p2 p2 0

Позиция p3 p3 1

Модуль: M3

Разработчик: Евгенев Г.Б.

Наименование: Выполнение вычисления f

Наименование Имя Ограничение

Позиция p3 p3 1

Вычисление f f > f.exe

Позиция p3 p3 0

Позиция p4 p4 1

Описание подсети (рис. 9б) также начинается

с модуля Bl0, обеспечивающего исходную маркировку.

Модуль: BIO

Разработчик: Евгенев Г.Б.

Наименование: Установка начальных значений по-

зиций

Наименование Имя Ограничение

Позиция p5 p5 1

Позиция p6 p6 0

Позиция p7 p7 0

Позиция p8 p8 0

Позиция p9 p9 0

Далее следуют два модуля Bl1 и Bl2, описывающих узел принятия решения Ь. Для определенности в этом и остальных случаях в качестве истинного значения предиката приняты положительные величины соответствующих переменных.

Модуль: В11

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при положительной величинеb

Наименование Имя Ограничение

Позиция p5 p5 1

Величина b b [0,)

Позиция p5 p5 0

Позиция p6 p6 1

Модуль: Bl2

Разработчик: Евгенев Г.Б.

Наименование: Принятие решения при отрица

тельной величине Ь

Наименование Имя Ограничение

Позиция p5 p5 1

Величина Ь b

Позиция p5 p5 0

Позиция p9 p9 1

Модули Bl3 и Bl4, аналогичным образом опи-

сывают узел принятия решения c.

Модуль: Bl3

Разработчик: Евгенев Г.Б.

Наименование Имя Ограничение

Позиция p1 p1 1

Позиция p2 p2 0

Позиция p3 p3 0

Позиция p4 p4 0

Наименование Имя Ограничение

Позиция p1 p1 1

Вычисление a a > a.exe

Позиция p1 p1 0

Позиция p2 p2 1

Наименование: Принятие решения при положи-

Наименование: Принятие решения при отрица-

Выполнение вычислений в переходах d и e задается модулями B15 и B16.

Модуль: Bl5

Разработчик: Евгенев Г.Б. Наименование: Выполнение вычисления d

Модуль: Bl6

Разработчик: Евгенев Г.Б. Наименование: Выполнение вычисления e

Наименование Имя Ограничение

Позиция p8 p8 1

Вычисление e e > e.exe

Позиция p8 p8 0

Позиция p5 p5 1

Последний модуль B17 предназначен для организации циклической работы подсети, обусловленной обратной связью. Цикл организуется при появлении выделенной переменной FinCalc, которая прекращает выполнение программы, когда принимает значение 1. В данном случае цикл прекращается, когда фишка попадает в позицию p9.

Модуль: Bl7

Разработчик: Евгенев Г.Б. Наименование: Окончание цикла

Наименование Имя Ограничение

Позиция p9 p9 1

Признак конца цикла FinCalc 1

Таким образом, разработана методика, позволяющая непрограммирующим пользователям создавать интегрированные прикладные системы, включающие в себя сложные подсистемы.

Список литературы

1. Евгенев Г.Б. Системология инженерных знаний: Учеб. пособие для вузов - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. - 520с.

2. Питерсон Дж. Теория сетей Петри и моделирование систем. / Пер. с англ. - М.: Мир, 1984. - 264с.

тельной величине c

Наименование Имя Ограничение

Позиция p6 p6 1

Величина c c [0,)

Позиция p6 p6 0

Позиция p7 p7 1

Модуль: Bl4

Разработчик: Евгенев Г.Б.

тельной величине c

Наименование Имя Ограничение

Позиция p6 p6 1

Величина c c

Позиция p6 p6 0

Позиция p8 p8 1

Наименование Имя Ограничение

Позиция p7 p7 1

Вычисление d d > d.exe

Позиция p7 p7 0

Позиция p8 p8 1

программный модуль для расчета аппроксимирующих полиномов по методу наименьших квадратов

Ю.А. Джагаров

Эмпирическую функцию

Y=f

удобно аппроксимировать полиномами вида

K

PK = a о + a i X +••• + акХк = ЕajXj

i = о

или

Р_к = ао + а1Х-1 + ••• + акХ-к = Е а^-1,

1=о

к^0 - степень полинома. Заменой переменной z=x-1 полином вида (3) приводится к виду (2). Расчет коэффициентов а1 по методу наименьших квадратов производится исходя из условия минимальности функционала

S = Е (Рк - Yj)2 , i=0

которое приводит к системе нормальных уравнений вида [1]:

д S д а.

= 0J

J i=0,1,...,k

Система (5) сводится к системе линейных уравнений, для чего в средах типа Excel, MathCad и т.п. необходимо выполнить вручную значительный объем операций. Однако методом индукции можно показать, что система (5) приводится к системе линейных относительно ai уравнений вида:

k n

Е ai Е

X

j+i

n

: Е Y

r=1

r Xr

j=0,1,-,k ,

1=0 г=1

из которой для матрицы системы М и вектора В свободных членов получаем следующие формализации:

r

n