С. И. Маторин, докт. техн. наук, профессор кафедры информационных систем и технологий Белгородского университета кооперации, экономики и права, [email protected] А. Г. Жихарев, канд. техн. наук, старший преподаватель кафедры информационных систем управления Белгородского государственного национального исследовательского университета, [email protected] Н. О. Зайцева, ассистент кафедры прикладной математики и информатики Белгородского государственного национального исследовательского университета, [email protected].
Имитационное моделирование с использованием системно-объектного подхода1
В статье обсуждается актуальность развития методов и средств имитационного моделирования, в первую очередь путем преобразования визуальных (графоаналитических) моделей организационно-деловых и производственно-технологических процессов. Описываются основные понятия и формализмы системно-объектного подхода «Узел-Функция-Объект» (УФО-подход) и системно-объектного метода представления знаний (СОМПЗ) с использованием алгебраических аппаратов теории паттернов Гренандера, исчисления процессов Милнера и исчисления объектов Абади-Кардели. Обосновывается перспективность использования этих средств для создания новых методов имитационного моделирования. Представлено два способа имитационного моделирования с использованием системно-объектного подхода «Узел-Функция-Объект». Во-первых, путем формализации системно-объектных графоаналитических моделей знаний о бизнес-процессах алгебраическими средствами исчисления объектов и, во-вторых, путем преобразования визуальных системно-объектных моделей в их описания на языке моделирования производственных процессов «CHI» (c). Полученные результаты свидетельствуют о возможности и целесообразности создания средств имитационного моделирования, использующих в своей основе УФО-подход, что и реализовано в новой версии программного инструментария UFO-tooLkit, автоматизирующего описанные в статье процедуры моделирования.
Ключевые слова: моделирование, системно-объектный подход «Узел-Функция-Объект», технологический процесс, исчисление объектов, язык «CHI» (%).
Введение
Специалисты считают, что сложную систему проще создать, чем проанализировать и понять, как она работает. Именно поэтому одним из основных направлений исследования и проектирования сложных систем в различных прикладных областях является использование имитационного
1 Работа выполнена при поддержке грантов РФФИ 13-07-00096а, 13-07-12000офи_м, 14-47-08003.
моделирования. Это обусловлено, во-первых, постоянным расширением области приложений имитационного моделирования, прежде всего за счет таких направлений, как бизнес-процессы, маркетинг, логистика, управление финансами, социально-экономические процессы и т. п. Во-вторых, расширением методологических возможностей имитационных систем на основе интеграции неформального аппарата, принятого в соответствующих языках моделирования, с классическими моделями системного анализа и вычислительной
математики. В-третьих, повышением уровня технологичности имитационных систем за счет средств визуализации, анимации, а также CASE-технологии. Причем уже общепринятой является точка зрения, что имитационное моделирование должно сопровождать процессы управления динамическими системами с самой начальной стадии их становления, развития и внедрения [1].
В настоящее время языки и инструменты имитационного моделирования получили дальнейшее развитие в виде визуальных средств моделирования, где исследователь оперирует не командами и операторами языка, а объектами, представляемыми в графическом виде. Визуальные средства моделирования частично снимают проблемы языков имитационного моделирования, но в то же время основные из них остаются, например, освоение исследователем абстрактных терминов, используемых в этих средствах.
Визуализация процесса построения имитационных моделей, а также визуальное представление результатов моделирования — задачи очень важные, так как наличие удобных интерактивных инструментов для построения моделей делает средство имитационного моделирования удобным для пользователя, а следовательно, и конкурентоспособным. Большинство существующих систем имитационного моделирования обладают интерактивными средствами построения моделей, в результате чего пользователь на выходе получает визуальную модель некоторого процесса, отражающую ход его выполнения или существования. Подтверждением указанной тенденции могут служить многочисленные примеры известных программных систем имитационного моделирования, такие как Actor Pilgrim, РДО, СИМПАС, Process Charter-l. 0.2, Powersim-2.01, Ithink-3.0.61, Extend+BPR-3.1, Re Think, GPSS World, AnyLogic, ARIS, Micro Saint, Arena, AutoMod, WITNESS, ProModel и т. д.
Существование множества программных систем имитационного моделирования, осно-
ванных на самых разных теориях и подходах, в свою очередь, свидетельствует, кроме того, о существовании нерешенных до сих пор проблем в области имитационного моделирования, что выражается, в частности, в сложности оценки адекватности описания моделируемой системы и интерпретации результатов.
Последнее позволяет говорить об актуальности исследований в данной области, причем в первую очередь с точки зрения решения задачи преобразования компьютерных визуальных (графоаналитических) моделей в модели имитационные.
Основные понятия и формализмы подхода «Узел-Функция-Объект»
В основе проводимых авторами исследований лежит оригинальный системный (системно-объектный) подход «Узел-Функция-Объект» (УФО-подход: http://ru.wikipedia.org/ wiki/Узел-Функция-Объект) [2; 3]. Развитием и формализацией УФО-подхода является метод и алгоритм системного анализа, именуемый для краткости УФО-анализом. В целях автоматизации применения УФО-анализа спроектирован и реализован CASE-инструментарий иЕО-(оо!кК (свидетельство Роспатента № 2006612046, http://www.ufo-toolkit.ru/). Данный инструментарий является знаниеори-ентированным CASE-инструментарием поддержки процессов системно-объектного визуального графоаналитического моделирования и анализа. Он обеспечивает представление любой системы в виде трехэлементной конструкции «Узел-Функция-Объект» , т. е. в виде УФО-элемента.
При этом «Узел» — это точка пересечения входных и выходных связей (потоков) в структуре разрабатываемой системы, «Функция» — процесс преобразования входа в выход, т. е. процесс, обеспечивающий баланс «втекающих» и «вытекающих» потоков по связям данного узла, «Объект» — субстанция, реализующая данную функцию в данном узле.
УФО-элементы, собранные в различные конфигурации, образуют диаграммы взаимодействия элементов, позволяющие визуализировать функциональность элементов системы более высоких уровней. Таким образом, разрабатываемая система представляется в виде иерархии УФО-элементов. Данное представление позволяет учесть различные аспекты рассмотрения этой системы (структурные, функциональные, субстанциальные) в одной системно-объектной модели — УФО-модели.
Иерархия УФО-элементов и их конфигураций, которую поддерживает ОТОЧоо1кй, основана на классификации связей (потоков), пересечения которых и образуют узлы. Моделирование любой системы начинается со специализации базовой классификации связей под конкретную предметную область. Абстрактный класс «Связь (Ь)» в базовой классификации связей делится на подклассы «Материальная связь (М)» и «Информационная связь (I)»; класс материальных связей делится на подклассы «Вещественная связь (5)» и «Энергетическая связь (Е)», класс информационных связей — на подклассы «Связь по данным (П)» и «Управляющая связь (С)».
УФО-элементы могут храниться в специальных УФО-библиотеках для обеспечения компонентного подхода к моделированию систем. Библиотеки представляют собой концептуальные модели соответствующих областей или отраслей бизнеса, в которых хранятся их структурные, функциональные и субстанциальные характеристики. При этом библиотеки могут содержать не только одиночные УФО-элементы, но и их иерархии, что позволяет повторно использовать готовые подсистемы и системы. Таким образом, УФО-библиотеки представляют собой базу знаний специальной конфигурации, в которой хранятся УФО-элементы, соответствующие определенным классам систем. Системы при этом классифицируются в зависимости от типов входных и выходных связей. Рассматриваются следующие типы входных
связей: производственные, обеспечивающие (вещественные, энергетические и информационные), управляющие, — и следующие типы выходных связей: продуктовые, информационные, отходы. Это позволяет выделять следующие классы организационных систем: производственные, транспортные и распределительные, — для каждой из которых рассматриваются три подкласса: «вещества», «энергии» и «информации».
Основные понятия УФО-подхода формализованы с помощью алгебраического аппарата, полученного путем интеграции теории паттернов Гренандера [4] и исчисления процессов Милнера (в варианте CCS — Calculus of communication systems [5], а также в варианте пи-исчисления [6]). В результате с учетом CCS получено алгебраическое представление системы st как УФО-элемента [7]:
si = <(L?,, L!,), (Pi, P0, Lt), (n,, a,, b?i, b!i)>,
где (L?,, L! ) — «Узел: U» УФО-элемента, L?,. с L — множество входных связей, L!,. с L — множество выходных связей;
(P, P°p Lt) — «Функция: F» УФО-элемента, где P , — множество подпроцессов процесса, соответствующего «Функции», которые реализуются УФО-элементами нижнего яруса иерархии; P°i с Pi — множество интерфейсных подпроцессов (входных P?i и выходных P!, причем P°i = P? i и P!,.; в число входных связей P?i входит L?, в число выходных связей P?i входит L!,); Lxi — множество внутренних связей/переходов в P, осуществляемых путем передачи, ввода и вывода элементов глубинного яруса связанных подпроцессов;
(n, a,, b?,, b!,) — «Объект: О» УФО-элемента, где nt — имя «Объекта» (ni е N); ai — множество признаков «Объекта» n; b?. — множество показателей L?; b!. — множество показателей L!,..
Кроме того, для функции УФО-элемента с учетом пи-исчисления получено следующее выражение [8]:
Е = <с (х).Р, тр, X (у).Р>,
где с (х) — входной префикс, получение данных х из канала с процессом Р; тр — внутренние действия процесса Р, соответствующего функции Е; X (у) — выходной префикс, передача данных у по каналу X процессом Р.
Модифицируя алгебраическое представление системы si как УФО-элемента с учетом последнего выражения для функции этого элемента средствами пи-исчисления, получаем следующее выражение:
= <(Ь?,, Щ ((Ь?,. (Р?,).Р1), Тр, (Ь\,. (Р?,).Р,)),
(п,, а,, Р?,, Р!,)>,
или по правилам пи-исчисления
= < (Ь?,, Ь\) (Ь?,. (Р? ).тр.Ы, (Р\,)),
(п,, а,, Р? ,, Р\,) >,
где Ь?,. (Р?,) — входной префикс, а Ь\,. (Р\,) — выходной префикс процесса Р.
Имитационное моделирование путем формализации УФО-моделей средствами исчисления объектов
На основе УФО-подхода авторами разработан системно-объектный метод представления знаний» (СОМПЗ) как инструмент создания универсальных моделей знаний о системах произвольной природы. Основные принципы данного метода описаны в работе [9], а также представлены ниже.
Во-первых, в концепцию УФО-подхода введено понятие «потоковый объект», которое дополняет существующее понятие об объекте, реализующем функциональный узел в рамках УФО-элемента. То есть в СОМПЗ рассматривается два вида объектов: узловой объект в рамках УФО-элемента (далее обозначается заглавными латинскими буквами) и потоковый объект в рамках потока/связи (далее обозначается строчными латинскими буквами).
Во-вторых, для формального описания УФО-элементов использован алгебраиче-
ский аппарат исчисления объектов Абади-Кардели [10], разработанный для формализации объектно-ориентированного программирования. В исчислении объектов абстрактный объект представляет собой набор полей и методов. Использование метода объекта — это вызов метода, изменение метода — это переопределение. Поле — частный случай метода (константный метод). Изменение значения поля является частным случаем переопределения метода. Методы выполняются в контексте некоторого объекта (имеют ссылку на объект). Таким образом, любой абстрактный объект «о» формально в исчислении объектов представляется в следующем виде:
o = [l=b
i, i el,.. и? j
I = 5 (x) b
j j, j el,..ml'
где ^ — поля объекта, в которых записаны характеристики объекта о; ¡, — методы объекта, в которых в скобках указаны их аргументы, а за скобками результаты их работы;
о е О, Ь1 е О, Ь, е О (где О — множество термов исчисления объектов).
Вычисление в исчислении объектов — это последовательность вызовов и переопределения методов, для чего определены правила редукции. Для нас наибольший интерес представляет правило вызова следующего вида (вызов метода ¡,объекта о): о.1,^ Ь, {х, о}.
Используя приведенные выше определения, можно поставить в соответствие УФО-элементу специальный класс объектов исчисления Абади-Кардели, который содержит специально выделенные поля и методы (узловой объект), как показано на рис. 1 и в приведенном ниже выражении.
О = [¡?, = а?,, ¡\, = а\,; ¡п = Е (/?,) ¡1.; 1т = Ьт],
где О — узловой объект; ¡?,. — поле узлового объекта (может представлять собой набор или множество), которое содержит значение входных потоковых объектов а?,. и, соответственно, имеет такой же тип данных;
/ /
l?i = a?i
Hi = a\j
ln = F (t?i)Hj
lm = bm /
Рис. 1. УФО-элемент в обозначениях исчисления объектов
Fig. 1. UFO-element in the notation of the calculus of objects
l!.. — поле узлового объекта (может представлять собой набор или множество), которое содержит значения выходных потоковых объектов a! j и имеет такой же тип данных; ln — метод узлового объекта (может представлять собой набор или множество), преобразующий входные потоковые объекты узла в выходные;
lm — поле узлового объекта (может представлять собой набор или множество), содержащее основные характеристики данного объекта (bm).
Очевидно, что представленное формальное описание УФО-элемента учитывает и структурную, и процессную, и субстанциальную его характеристики. Таким образом, оно может рассматриваться как еще один способ формального описания систем как УФО-элементов. Действительно, во-первых, имена полей l?i и l!j могут рассматриваться как имена потоков, связывающих УФО-элемент с другими элементами, т. е. как его структурная характеристика. Во-вторых, метод ln = F(l?^)l!j представляет собой процессную (функциональную) характеристику данного УФО-элемента. В-третьих, поле lm = bm, а также значения входных и выходных потоков (потоковых объектов) а? и a!;. представ-
ляют собой объектную характеристику данного УФО-элемента.
Средствами исчисления объектов можно формально описать не только узловые объекты (УФО-элементы в целом), но и потоковые. Потоковый объект в рамках потока/связи можно представить как объект, обладающий только набором полей, содержащих основные характеристики объекта, т. е. методы объекта в данном случае не учитываются. Такой объект (также представляющий собой еще один специальный класс абстрактных объектов) формально представляется с помощью следующего выражения:
где ai — потоковый объект; ¡у = Ъу — поля потокового объекта с некоторыми значениями Ъу.
Если для хранения и обработки знаний о каких-либо процессах представлять их в виде УФО-элементов, то с учетом формального их описания средствами исчисления объектов манипулирование этими знаниями, в частности имитацию динамики процессов, можно обеспечить путем организации цепочки вызовов методов узловых объектов со стороны соответствующих потоковых объектов. Цепочка организуется на уровне декомпозиции УФО-элемента. В данном случае вызов узлового объекта можно записать следующим образом:
ол„п} {¡?, и о).
Подобный вызов метода (например, метода ¡п) узлового объекта (например, объекта О) будет иметь место в том случае, если на вход узлового объекта поступает поток, наименование объектов которого (потоковых) совпадает со значением поля узлового объекта, которое содержит значение входных потоковых объектов (например, поля ¡?). Старт процедуры имитационного моделирования осуществляется путем инициализации некоторого контекстного потокового объекта, после чего значение контекстного потокового объекта попадает в соответствующее поле интерфейс- [ 95 ]
ного узлового объекта, после чего вызывается метод этого узлового объекта, который, выполнив некоторые действия, вызывает метод следующего узлового объекта, и так, пока не достигается конец модели. Формально с учетом описания УФО-элементов средствами исчисления объектов упомянутая процедура вывода может быть представлена следующим образом:
a = [l„ = bj: a= a?i = ?h Gklnh l!} {l Gk} И a,+1 = [lm+1 = bm+1]: a,+1 =
a?,+1 = l?,+1 Gk+1-ln+1 H l!j+1 {l?,+l\^ Gk+1}
H ai+2 = [lm+2 = bm+J' a+2 = a?,+2 = l?,+2 Gk+2'ln+2 H l!j+2 {l?i+2 H Gk+2}
H a,+3 = [lm+3 = bm+3l -
Для системно-объектного имитационного моделирования транспортных потоков города предлагается рассматривать полосу для движения на дороге как потоковый объект, а любые разветвления (расширения или сужения) полос для движения и перекрестки — как узловые объекты. При этом потоковый объект будет иметь следующий вид:
flow [distance, number, forward, right, left, back],
где flow — идентификатор транспортной полосы;
distance — протяженность транспортной полосы в метрах;
number — количество автомобилей в полосе на текущий момент времени; forward — возможность движения прямо в конце полосы;
right — возможность движения направо в конце полосы;
left — возможность движения налево в конце полосы;
back — возможность движения в обратном направлении в конце полосы.
Поля транспортной полосы: forward, right, left и back представляют собой логические переменные и могут принимать значение true
или false. Поле хранит истинное значение, если разрешено движение в данном направлении, иначе поле — ложное. Остальные поля транспортной полосы принимают любые числовые значения больше нуля.
Узловой объект, характеризующий, например, расширение или сужение полосы, будет иметь следующий вид:
extension [flows?,flows!, F (flows?)flows!],
где extension — идентификатор узлового объекта;
flows? — поля узлового объекта, соответствующие входным потокам;
flows! — поля узлового объекта, соответствующие выходным потокам;
F (flows?) flows! — метод узлового объекта, описывающий процедуру преобразования входных потоков в выходные.
Например, в случае расширения дороги на две полосы обозначим входную полосу inband, а две выходных соответственно outbandl, outband2. Для них можно установить некоторые начальные значения полей потоковых объектов:
inband [distance = 322,4, number = 17, forward = true, right = false, left = false,
back = false];
outbandl [distance = 24, number = 2, forward =false, right = true, left = false,
back = false];
outbandl [distance = 24, number = l, forward = true, right = false, left = false,
back = true].
Узловой объект, характеризующий данное расширение дороги, будет иметь следующий вид:
extension [inband?; outbandl!; outband2!; F(inband?) outbandl!, outband2!].
Метод данного узлового объекта можно описать следующим образом:
F (inband?) outband1!,outband2! { if (inband?.number>=l) { inband?.number = inband?.number-l; outbandl ¡.number = outbandl ¡.number + 0,5;
outband2!.number = outband2!.number + 0,5; }
}
Вызов метода узлового объекта будет осуществляться в каждую единицу времени, которая, в свою очередь, определяется параметрами «движка» модели. В описании метода в первую очередь проверяется наличие автомобилей во входящей полосе. Если оно больше или равно единице, тогда поле входящей полосы, где хранится количество автомобилей, уменьшается на единицу, а те же поля выходящих полос увеличиваются на 0,5. Таким образом, моделируется распределение транспорта по двум полосам в отношении 50x50.
Для системно-объектного имитационного моделирования технологических процессов предлагается рассматривать эти процессы как последовательную цепочку состояний или действий, которые соединены между собой связями. Причем любая связь (поток) технологического процесса представляет собой набор качественных и количественных показателей некоторого объекта, который создается или перерабатывается в рамках текущего процесса.
Например, производственно-технологический цикл переработки и хранения зерна на ОАО «Прохоровский элеватор» начинается с процесса отбора проб поступившего сырья. Этим занимается лаборатория организации, здесь определяются количественно-качественные показатели зерна, такие как влажность, сорная примесь, зерновая примесь, заражения, фактуры и т. п. После определения показателей поступившего сырья заведующий лабораторией принимает решение о дальнейшей переработке зерна. Перед непосредственной переработкой зерно проходит взвешивание на автомобильных весах (АИ-60). После взвешивания зерно направляется на приемку.
Для имитации технологического процесса переработки и хранения зерна на элеваторе, визуальная модель которого представлена на рис. 2, потоковый объект «зерно» может быть описан следующим образом:
Зерно = [вид, вес, влажность, сорная примесь, зерновая примесь, трудноотделимая примесь].
Узловой объект, например «Зерносушиль-ные комплексы» (Целинная-30):
ЦЕЛИННАЯ-30 = [Зерно_на_сушку?; Зерно_на_гречзавод!, Зерно_на_подработ-ку!; Сушка = F (Зерно_на_сушку?) Зерно_ на_гречзавод!, Зерно_на_подработку!; Пропускная_способность = 30 т/ч, Время_ работы = 0 ч, Мощность = 5,2%].
При этом метод узлового объекта «ЦЕЛИННАЯ-30» может быть описан следующим образом:
Сушка = F (Зернонасушку?) Зерно_на_ гречзавод!, Зернонаподработку! { This. Время работы = 0; Зерно_на_хранение!.Влажность=Зерно_ на_сушку?.Влажность;
while Зернонахранение!. Влажность>14 do {
This. Время работы=This. Время работы+Зернона сушку?.Вес / This. Пропускная способность; Зерно_на_хранение!.Влажность=Зерно_
на_хранение!.Влажность — 4; }
if Зернонасушку. сорная примесь<3 and Зерно на сушку. зерновая примесь<1 and Зерно_на_сушку. трудноотделимая примесь< 1 then ГРЕЧЗАВОД. Переработка ();
else {
if Зерно на сушку. сорная примесь>3 then БЛС16. Очистка ();
if Зерно_на_сушку. зерновая примесь>1 then А1БИС-100. Очистка ();
if Зерно_на_сушку. трудноотделимая
примесь>1 then А1БДЗ-6. Очистка (); }
}
Рис. 2. Технологический процесс по переработке и хранению зерна Fig. 2. The technological process of processing and storage of grain
Зададим полям потокового объекта конкретные характеристик, например:
• вид зерна = «ячмень»;
• вес зерна = 27540 кг;
• влажность = 18,7%
• сорная примесь = 0,2%;
• зерновая примесь = 0,4%;
• трудноотделимая примесь = 0,1%; Тогда для данного случая цепочка вызова
методов узловых объектов будет:
ЛАБОРАНТ. Анализ() ^ АВТОВЕСЫ. Взвесить() ^ ПОДЪЕМНИК№ 5. Разгрузить() ^
ДСП-32. Сушка() ^ СИЛОСНЫЙ_КОРПУС. Хранение().
Причем у каждого узлового объекта пользователь может просмотреть показатели его работы и получить визуальное представление цепочки вызовов методов, как показано на рис. 3.
Рис. 3. Визуализация результата вывода (имитации) в СОМПЗ Fig. 3. Visualize the result output (simulate) in SOMKR
Имитационное моделирование путем преобразования УФО-моделей в конструкции языка х
Рассмотрим еще один из возможных путей преобразования графоаналитических моделей, построенных в терминах системно-объектного подхода «Узел-Функция-Объект» , в имитационные модели за счет их трансформации в описание на языке моделирования производственных процессов «CHI» (х).
Несмотря на то что базовая версия этого языка появилась более двадцати лет назад (в 1982 г.), т. е. раньше исчисления процессов, пи-исчисление впоследствии было использовано для определения формальной семантики языка х [11; 12]. Это обусловливает
возможность создания методики преобразования алгебраического представления УФО-элементов (с учетом описания функции элемента средствами пи-исчисления) в описание на данном языке моделирования производственных процессов. Рассмотрим один из вариантов такой методики (табл. 1).
Язык c расширяет пи-исчисление процессов понятиями времени, данных и типов данных, а также генератором случайных чисел. Время в языке c задается следующим образом [11; 13]:
1. skip = 0: true >> t (если процесс происходит мгновенно, т. е. время равно нулю).
Например: skip = 0: true >> 'результат'.
2. time = Т: true >> t (если процесс ограничен по времени).
Например: time = 5: true >> 'ответ'.
Таблица 1. Методика преобразования УФО-модели в конструкции языка %. Table 1. Methods of converting UFO-model design language x
Наименование элементов Алгебраическое описание Описание УФО- элементов
УФО-модели УФО- элементов на языке х
Узел
(перекресток входящих и выходящих связей)
(L?, А)
Функция
(процесс преобразования входа в выход)
(L? (Р?,К.А (ß!))
Объект
(структура, реализующая функцию и занимающая данный узел)
n а, ß?„ ß!i)
(chan {L?i, L! i} >
где
chan {L?i, L!i} — множество входных и выходных
<disc\cont\alg b?i, b!i, chan {L?i, Д}, J\
I Т >
где
disc — если показатели b?i, b!i дискретные, cont — если показатели b?i, b!i непрерывные, alg — если показатели b?i, b!i алгебраические, J — ограничение допустимых значений переменных
тр — процесс преобразования входных данных в выходные
(object ni = [disc\cont\alg ß?i, ß! chan {L?i, L!i}, j, «i I Tp
>
Рис. 4. Пример визуальной УФО-модели бизнес-процесса обработки заказа Fig. 4. Example of visual UFO-model business-process order processing
Следовательно, при описании графоаналитической УФО-модели на языке с появляется возможность «внедрить» в нее временную характеристику и преобразовать таким образом визуальную модель процесса в модель имитационную. Естественно, подобная трансформация модели из одного формального (алгебраического) описания в другое (на формальном языке программирования) должна иметь четкую алгоритмическую базу, над созданием которой авторы в настоящее время работают. Однако факт работоспособности предлагаемой методики не вызывает сомнений и может быть показан на реальных примерах. Пусть, например, имеется модель обработки заказа, представленная на рис. 4.
В общем виде в терминах пи-исчисления данной модели соответствует следующее выражение: N = (уе1, ..., в7) (П1=1 N7), где (уе1, ..., в7) — объявление каналов в 1, ..., в7 с последующим выполнением N7 (7 = 1, ..., 7) подпроцессов обработки заказа.
Алгебраическое описание представленных на рисунке УФО-элементов и соответствующее ему формальное описание этих элементов на языке с представлено в табл. 2.
Для проведения имитации на языке с был создан специальный «движок», представляющий программную среду, реализующую одновременное выполнение нескольких процессов [14]. Суть его работы состоит в следующем: в фазе генерации кода компилятор переводит модель на язык программирования высокого уровня. Этот код срав-
нивается с оригинальной моделью. Каждая конструкция языка % отображается на соответствующую конструкцию языка программирования. Общая функциональность процесса определяется с помощью абстрактного класса. В сгенерированном коде для каждого процесса %-модели ставится в соответствие специфический процесс абстрактного класса. Каждому типу данных %-модели ставится в соответствие тип данных языка программирования. Каналы реализованы в виде экземпляров класса. Классы, которые представляют собой каналы передачи данных, генерируются из шаблона. Этот шаблон в качестве параметра имеет тип данных канала, и следовательно, может быть сформирован класс канала с различными типами данных. Экземпляры классов формируются таким же образом.
В результате создается исполняемый файл с расширением *.ехе, при запуске которого на экран выводится модель. В файле с расширением хранятся результаты моделирования. Этот файл содержит время работы каждого элемента модели и имена переменных, задействованных в том или ином процессе; он может быть использован для построения диаграммы.
Также генерируется файл трассировки, с помощью которого можно восстановить процесс моделирования при сбое. Он хранит в себе информацию о состоянии работы системы, событиях на определенный момент времени. Данный файл не является обязательным.
Таблица 2. Пример преобразования УФО-модели в описание на языке %. Table 2. Example of converting UV-model description language x
Процесс
Описание УФО-элементов в терминах пи-исчисления
Описание УФО-элементов на языке x
N1 TN1.e1!(ß!J
('Предъявитель заказа'=
[disc ß!e1,
chan {el!},
skip = 0: true >> тм,
I TN1 ]
>
N2 e1?(ß?ei).T^.e2!(ß!e2)
(diSC ß?ei, ßU
chan {ei?, e2!}, time = 30: true >> 'e2!'
1 TN2 >
N3 e2?(ß?e2).TN,.(e3!(ß! J + e4!(ß!J)
(disc ß?e2, ß!e3, ßU
chan {e2?, e3!, e4!}, skip = 0: true >> tN3,
1 TN3
N4 e3?(ß?e3).TN4.e5! (ß!.s)
(disc ß?e3, ßU
chan {e3?, e5!}, time = 60: true >> 'e5!'
1 TN4 >
N5 e4?( ß?e4).TN5. e6!( ß ! вб)
(disc ß?e4, ß! g6,
chan {e4?, e6!}, time = 10: true >> 'e6!'
1 TN5 >
N6 e5?(ß?e5).TN6.e7! (ß!.7) + e6?(ß? J.x^.
e7!(ß!J
(disc ß?e5, ß?e6, ßU
chan {e5?, e6?, e7!}, skip = 0: true >> tn6,
1 TN6 >
N7 e7?(ß?e7).TN7.0
('Получатель заказа'=
[disc ß?e7,
chan {e7?},
skp = 0: true >> tn7,
1 TN7 ]
>
Выводы
Представленные в данной работе результаты позволяют говорить о возможности и целесообразности создания средств ими-
тационного моделирования, использующих в своей основе УФО-подход.
Описанный способ системно-объектного моделирования знаний о транспортных и производственно-технологических процес-
сах позволяет в удобном визуальном виде автоматически получать цепочки процессов для различных конкретных ситуаций. Используя такую модель, пользователь сможет не только обеспечить автоматизированную поддержку принятия решений по управлению процессами, но также накапливать и хранить опыт в виде удачных решений и использовать его в дальнейшем. Процесс имитационного моделирования на основе системно-объектной модели знаний и ее формализации средствами исчисления объектов состоит из следующих этапов:
1) создание иерархии связей, т. е. потоковых объектов системно-объектной модели, у которых определяются важные для данной предметной области параметры;
2) создание визуальной УФО-модели обработки потоковых объектов, на которой отображаются все узлы, ветвления и т. п.;
3) описание узловых объектов с их параметрами и методами алгебраическими средствами исчисления объектов. При необходимости метод узлового объекта декомпозируется на подпроцессы нижнего уровня;
4) использование полученной модели путем инициализации начальных значений модели и запуске механизма логического вывода, в результате которого формируется модель поведения системы для текущего конкретного случая.
Представленный способ описания средствами языка с формализованных графоаналитических УФО-моделей обеспечивает возможность формального решения задачи имитации функционирования производственных, технологических и транспортных процессов на их системно-объектных визуальных моделях. Процесс имитационного моделирования на основе формализованных графоаналитических УФО-моделей с использованием языка с состоит из следующих этапов:
1) построение графоаналитической УФО-модели динамической системы;
2) формальное описание УФО-модели в терминах пи-исчисления;
3) преобразование алгебраического описания визуальной модели в конструкции языка с;
4) проведение имитации моделируемого процесса с помощью «движка» языка с.
В настоящее время разрабатывается новая версия программного инструментария UFOtoolkit, в которой будут автоматизированы все описанные возможности системно-объектного моделирования.
Данная версия реализует возможность описания методов узловых объектов с помощью языка описания функциональных узлов УФО-скрипт, синтаксически подобного языку программирования Pascal.
УФО-скрипт содержит ряд стандартных конструкций. Например, оператор условия и оператор цикла (со счетчиком и с условием). Кроме стандартных конструкций, УФО-скрипт имеет ряд предопределенных процедур и функций, предназначенных для имитации работы функциональных узлов.
В соответствии с алгоритмом работы программы перед разработкой модели системы определяется иерархия потоковых объектов, которые в дальнейшем будут использоваться при построении модели. После создания иерархии потоковых объектов имеется возможность создания узлов и соединяющих их потоков с помощью редактора УФО-диаграмм, а также задания функции каждому узлу. После задания функции УФО-элемента ее можно описать с помощью УФО-диаграммы более низкого уровня, если имеет место сложная процедура преобразования входных потоковых объектов в выходные, иначе имеется возможность описать работу функции с помощью языка УФО-скрипт. Функция УФО-элемента описывается скриптом в том случае, если достигнут необходимый уровень декомпозиции или функция УФО-элемента представляет собой набор достаточно простых процедур. Таким образом создается модель системы, представляющая собой набор УФО-элементов, которые соединяются потоковыми
объектами, т. е. создается спецификация моделируемого процесса.
Для обеспечения имитации на созданной модели системы необходимо задать ее начальные параметры. Эти параметры определяются входными потоковыми объектами ее контекстной модели. После задания начальных параметров модель запускается на исполнение. При запуске имитации построенная модель транслируется в программу, которая выполняется по следующей схеме: исполняется функция того узла, потоковые объекты которого имеют конкретные значения своих параметров. Это обеспечивает специальный модуль, который позволяет запустить модель, настроить параметры модели, приостановить работу модели, визуализировать результаты имитационного моделирования.
Список литературы
1. Емельянов А. А., Власова Е. А. Имитационное моделирование экономических процессов // Имитационное моделирование. Теория и практика: Сборник докладов четвертой всероссийской научно-практической конференции ИММОД-2009. Том 1. СПб.: ОАО «ЦТСС». 2009.
2. S. Matorin, A. Popov, V. Matorin Organization simulation technology in the light of a new unit-function-object approach // Automatic Document and Math-emat-ical Linguistics. 2005. Vol. 39. № 1.
3. S. Matorin, O. Zimovets, A. Zhikharev On the Technology Development of Graphic-Analytical Business Modeling with the Use of the System Approach of «Knot-Function-Object» // Automatic Document and Mathematical Linguistics. 2007. Vol. 41. № 6.
4. U. Grenander. Pattern Synthesis. Lectures in Pattern Theory. Volume 1. Springer-Verlag, 1976.
5. MilnerR., Parrow J., WalkerD. A. Calculus of Mobile Processes. Part I. LFCS Report 89-85. University of Edinburgh, 1989.
6. Milner R. The poliadic п-calculus: a Tutorial. University of Edinburgh, 1991.
7. O. Zimovets., S. Matorin. Integration of Formalization Tools for Graphical — Analytical Unit — Function — Object Models // Scientific and Technical Information Processing. 2013. Vol. 40. No. 6.
8. Михелев М. В., Маторин С. И. Формализация УФО элементов с помощью алгебраического аппарата ПИ-исчисления. // Научные ведомости БелГУ. Сер. Информатика. 2010. № 19 (90). Выпуск 16/1.
9. Жихарев А. Г., Маторин С. И., Маматов Е. М., Смородина Н. Н. О системно-объектном методе представления организационных знаний // Научные ведомости БелГУ 2013. № 8 (151). Выпуск № 26/1.
10. AbadiMartin and Luca Cardelli A Theory of Objects. Springer-Verlag, 1996.
11. Сынтульский С. С. Язык программирования сверхбыстрых гибридных вычислительных устройств. URL: http:// www.math.spbu.ru/user/ gran/ sb2/ssyntulsky.pdf
12. Rooda J. E. VervoortJ. Learningc 0.8. Eindhoven. 2003.
13. Van Beek D. A., Man K. L., Reniers M. A., Rooda J. E., Schiffelers R. R. H. Syntax and consistent equation semantics of hybrid Chi. URL: http://ac.els-cdn.com/S1567832605000895/1-s2.0-S1567832605 000895-main.pdf?_tid=26231c90-c739-11e4-aa5c-00000aacb35f&acdnat= 1426001079_b450fab-5616606d5bfad09e7ecac25c6
14. Fabian Georgina. A language and simulator for hybrid systems / by Georgina Fabian. Eindhoven: Technische Universteit Eindhoven, 1999.
References
1. Emel'yanov A. A., Vlasova E. A. Imitatsionnoe mod-elirovanie ekonomicheskikh protsessov [Simulation modeling of economic processes]. Imitatsionnoe mod-elirovanie. Teoriya i praktika: Sbornik dokladov chet-vertoi vserossiiskoi nauchno-prakticheskoi konferentsii IMM0D-2009 [Proc. 4th All-Russ. Scient.-Pract. Conf. «Simulation. The Theory and Practice»]. Tom 1. SPb.: OAO «TsTSS», 2009.
2. Matorin S., Popov A., Matorin V. Organization simulation technology in the light of a new unit-function-object approach. Automatic Document and Mathematical Linguistics, 2005, vol. 39, no. 1.
3. Matorin S., Zimovets O., Zhikharev A. On the Technology Development of Graphic-Analytical Business Modeling with the Use of the System Approach of «Knot-Function-Object». Automatic Document and Mathematical Linguistics, 2007, vol. 41, no. 6.
4. Grenander U. Pattern Synthesis. Lectures in Pattern Theory. Vol. 1. Springer-Verlag, 1976.
5. Milner R., Parrow J., Walker D. A. Calculus of Mobile Processes. Part I. LFCS Report 89-85. University of Edinburgh, 1989.
6. Milner R. The poliadic п-calculus: a Tutorial. University of Edinburgh, 1991.
7. Zimovets O., Matorin S. Integration of Formalization Tools for Graphical — Analytical Unit — Function — Object Models. Scientific and Technical Information Processing. 2013. Vol. 40. No. 6.
8. Mikhelev M. V., Matorin S. I. Formalization UFO-models on the basis of pi- calculus. Nauchnye vedomosti
BelGU. Ser. Informatika — Belgorod State University. Scientific Bulletin. Information technologies. 2010. No. 19 (90). Vol. 16/1 (in Russian).
9. Zhikharev A. G., Matorin S. I., Mamatov E. M., Smoro-dina N. N. About system-object method presentation of organizational knowledge. Nauchnye vedomosti BelGU — Belgorod State University. Scientific Bulletin. Information technologies. 2013. No. 8 (151). Vol. № 26/1 (in Russian).
10. Abadi Martin and Luca Cardelli A Theory of Objects. Springer-Verlag, 1996.
11. Syntul'skij S. S. JAzykprogrammirovanija sverhbys-tryh gibridnyh vychislitel'nyh ustrojstv [The programming language ultrafast hybrid computing devices.].
Available at: http://www.math.spbu.ru/user/gran/sb2/ ssyntulsky. pdf. (accessed 22.10.2015).
12. Rooda J. E. Vervoort J. Learning c 0.8. Eindhoven, 2003.
13. van Beek D. A., Man K. L., Reniers M. A., Rooda J. E., Schiffelers R. R. H. Syntax and consistent equation semantics of hybrid Chi. Available at: http:// ac.els-cdn.com/S1567832605000895/1-s2.0-S1567832 605000895-main.pdf?_tid=26231c90-c739-11e4-aa5c-00000aacb35f&acdnat= 1426001079_b450fab-5616606d5bfad09e7ecac25c6. (accessed 22.10.2015).
14. Fabian Georgina. A language and simulatorfor hybrid systems, by Georgina Fabian. Eindhoven: Technische Universteit Eindhoven, 1999.
S. Matorin, Belgorod University of Cooperation, Economics and Law, Beigorod, Russia, [email protected] A. Zhiharev, Belgorod State University, Belgorod, Russia, [email protected] N. Zaitseva, Belgorod State University, Belgorod, Russia, [email protected].
Simulation modeling of using system-object approach
The article discusses the importance of the development of methods and simulation tools, primarily by converting visual (graphic-analytical) organizational and business models and production processes. It describes the basic concepts and formalisms for system-object approach «Unit-Function-Object» (UFO-approach) and the system-object methods of knowledge representation (SOMKR) using the apparatus of algebraic of the patterns theory Grenander, calculus processes Milner and calculus objects Abadi-Kardelj. Substantiates the prospects of the use of these funds for the creation of new methods of simulation. We present two methods of simulation using the system-object approach «Unit-Function-Object». Firstly, by formalizing the system-object graphical-analytical models of knowledge of business processes by means of algebraic calculation objects and, secondly, by converting the visual system-object models to describe them in the language of the simulation of production processes «CHI» (c). The results suggest the possibility and feasibility of simulation tools using in the based UFO-approach, which is implemented in the new version of software tools UFO-toolkit, automates the procedure described in the article modeling.
Keywords: simulation, system-object approach «Unit-Function-Object», production processes, calculus of objects, the language «CHI» (%).
About authors:
S. Matorin, Dr of Technique, Professor; A. Zhiharev, PhD in Technique, Senior Lecturer; N. Zaitseva, Assistant
For citation: Matorin S., Zhiharev A., Zaitseva N. Simulation modeling of using system-object approach. Phkladnaya Informatika — Journal of Applied Informatics, vol. 10, no. 6 (60), pp. 91-104 (in Russian).