Концепция и возможности объектно-ориентированной моделирующей системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Концепция и возможности объектно-ориентированной моделирующей системы



2.1 ОСНОВНЫЕ ОБЪЕКТЫ МОДЕЛИ

Моделирующая система выполняет следующие основные

функции:

1) предоставляет разработчику средства для формализованного
описания дискретных компонентов, дисциплин выполнения различ­
ных работ, для задания структуры графа и привязки объектов моде­
ли к координатной сетке общего информационного поля;

2) осуществляет координацию событий, определение путей
прохождения транзактов, изменение состояний узлов и передачу
управления моделям непрерывных компонентов.

Такая система позволяет передавать результаты моделирования, используемые для принятия управленческих решений, из модели в базы данных экономической информационной системы (например, через интерфейс ODBC - Open Data Base Connectivity, если модели­рование проводится в среде Windows) либо «подкачивать» актуали­зируемые во времени параметры в модель из баз данных.

В рассмотренной на рис. 1.10,6 временной диаграмме длитель­ность выполнения функции процессом $ не зависит от типов ре­сурсов и характера их использования. Диаграмма обладает универ­сальностью, позволяет работать и с опосредованными ресурсами. Эта диаграмма использована при создании теоретических основ, концепции и алгоритмов специального программного инструмента­рия - объектно-ориентированной системы имитационного модели­рования Pilgrim, имеющей возможность агрегирования экономиче­ских объектов. Аналогичные диаграммы автоматически получаются при управлении модельным временем.


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

1 .Граф модели. Все процессы, независимо от количества уров­ней структурного анализа, объединяются в виде направленного гра­фа. Пример изображения модели в виде многослойного иерархиче­ского графа, полученного при структурном анализе процесса, пока­зан на рис. 2.1.

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


Транзакт является динамической единицей любой модели, рабо­тающей под управлением имитатора.

Транзакт может выполнять следующие действия:

• порождать группы (семейства) других транзактов;

• поглощать другие транзакты конкретного семейства;

• захватывать ресурсы и использовать их некоторое время, а за­
тем - освобождать;

• определять времена обслуживания, накапливать информацию
о пройденном пути и иметь информацию о своем дальнейшем пути и
о путях других транзактов.

Основные параметры транзактов:

• уникальный идентификатор транзакта;

• идентификатор (номер) семейства, к которому принадлежит
транзакт;

• наборы различных ресурсов, которые транзакт может захваты­
вать и использовать какое-то время;

• время жизни транзакта;

• приоритет - неотрицательное число; чем больше приоритет,
тем приоритетнее транзакт (например, в очереди);

• параметры обслуживания в каком-либо обслуживающем уст­
ройстве (включая вероятностные характеристики).

Примеры транзактов:

• требование на перечисление денег;

• заказ на выполнение работ в фирме;

• телеграмма, поступающая на узел коммутации сообщений;

• сигнал о загрязнении какого-либо пункта местности;

• приказ руководства;

• покупатель в магазине;

• пассажир самолета;

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

З.Узлы графа сети представляют собой центры обслуживания транзактов (но необязательно массового обслуживания). В узлах транзакты могут задерживаться, обслуживаться, порождать семейст­ва новых транзактов, уничтожать другие транзакты. С точки зрения вычислительных процессов в каждом узле порождается независи­мый процесс. Вычислительные процессы выполняются параллельно и координируют друг друга. Они реализуются в едином модельном времени, в одном пространстве, учитывают временную, пространст­венную и финансовую динамику.


Нумерация и присвоение имен узлам стохастической сети произ-||юдится разработчиком модели. Следует учесть, что транзакт всегда зинадлежит одному из узлов графа и независимо от этого относит- к определенной точке пространства или местности, координаты эрой могут изменяться. Примеры узлов:

• счет бухгалтерского учета;

• бухгалтерия;

• производственный (ремонтный) участок;

• генератор или размножитель транзактов;

• транспортное средство, которое перемещает ресурсы из одной
эчки пространства в другую;

• передвижная лаборатория;

• компьютерный центр коммутации сообщений (или пакетов со-
эщений);

• склад ресурсов.

4. Событием называется факт выхода из узла одного транзакта. эытия всегда происходят в определенные моменты времени. Они эгут быть связаны и с точкой пространства. Интервалы между вумя соседними событиями в модели - это, как правило, случайные шчины. Предположим, что в момент времени t произошло какое-событие, а в момент времени t+d должно произойти ближайшее тедующее, но не обязательно в этом же узле. Если в модель вклю-эны непрерывные компоненты, то очевидно, что передать управле-ге таким компонентам модели можно только на время в пределах грвала (/, t+d).

Разработчик модели практически не может управлять событиями шую (например, из программы). Поэтому функция управления Зытиями отдана специальной управляющей программе - коорди-эру, автоматически внедряемому в состав модели. 5.Ресурс независимо от его природы в процессе моделирования южет характеризоваться тремя общими параметрами: мощностью, ■сом и дефицитом. Мощность ресурса - это максимальное число эсных единиц, которые можно использовать для различных це-iefi. Остаток ресурса - число незанятых на данный момент единиц, зрые можно использовать для удовлетворения транзактов. Дефи-родит ресурса - количество единиц ресурса в суммарном запросе тран-эв, стоящих в очереди к данному ресурсу.



При решении задач динамического управления ресурсами можно выделить три основных типа: материальные, информационные и денежные ресурсы.

6.Пространство - географическое, декартова плоскость (можно ввести и другие). Узлы, транзакты и ресурсы могут быть привязаны к точкам пространства и мигрировать в нем.

Внутренняя реализация модели использует объектно-ориентированный способ представления экономических процессов. Транзакты, узлы, события и ресурсы - основные объекты имитаци­онной модели. Взаимодействие таких объектов показано на рис. 2.2, где обозначены следующие моделирующие функции: ag, key, queue, dynam, proc, term, el и е2. Функциональное назначение этих и дру­гих средств моделирующей системы рассматривается в соответст­вующих разделах.

В различных моделирующих системах имеются разные способы представления узлов графа. Это связано с отличительными свойст­вами таких систем. Например, в системе GPSS узлы называются блоками; причем количество различных типов блоков более сотни, что затрудняет восприятие графа модели. В системе Pilgrim имеется всего 17 типов узлов, которые функционально перекрывают все воз­можности блоков GPSS и предоставляют дополнительные средства, которые в GPSS отсутствуют:

• возможность работы с непрерывными процессами;

• моделирование пространственной динамики;

• работу с ресурсами, представляющими собой деньги и мате­
риальные ценности, счета бухгалтерского учета, банковские счета.

Имеется система обозначений узлов, помогающая «читать» граф модели. Полный перечень изображений узлов Pilgrim приведен на рис. 2.3. Каждый узел имеет графическое обозначение, функцио­нальное наименование, произвольный уникальный номер и произ­вольное название (например: наименование - serv, номер - 123, на­звание - «Мастерская»). Пути транзактов обозначаются дугами -сплошными линиями со сплошной стрелкой на одном конце. Воз­можны информационные воздействия из одних узлов на другие; на­правления таких воздействий изображаются пунктирными линиями со сплошной стрелкой на одном конце. Если моделируются бухгал­терские проводки или перечисления денег, то пути денежных сумм со счета на счет показываются пунктирными линиями с штриховой стрелкой.


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

Генератор транзактов (с бесконечной емкостью) имеет наиме­нование ag. Узлы-генераторы создают новые транзакты и передают их в другие узлы модели. Параметры генератора в случае необходи­мости можно изменить посредством информационного воздействия из другого узла с помощью сигнала cheg (здесь и далее сигнал - это специальная функция, выполненная транзактом, находящимся в од­ном узле, в отношении другого узла).

Очередь (с относительными приоритетами или без. приоритетов) имеет наименование queue. Если приоритеты не учитываются, то транзакты упорядочиваются в очереди в порядке поступления. Когда приоритеты учитываются, транзакт попадает не в «хвост» очереди, а в конец своей приоритетной группы. Приоритетные группы упоря­дочиваются от «головы» очереди к «хвосту» в порядке уменьшения приоритета. Если транзакт попадает в очередь и не имеет своей при-


аритетной группы, то группа с таким приоритетом сразу возникнет: \ ней будет один вновь поступивший транзакт.

Узел обслуживания с многими параллельными каналами имеет

менование serv. Обслуживание может быть в порядке поступле-j транзакта в освободившийся канал либо по правилу абсолютных иоритетов. Если такое правило задано и возникает ситуация, при

эрой в «голове» очереди на обслуживание находится транзакт с..улевым приоритетом, все каналы заняты, причем в одном из ка­пов на обслуживании находится транзакт с более низким приори-

эм, то выполняется следующее:

• обслуживание неприоритетного транзакта прерывается;

• неприоритетный транзакт удаляется из канала в стек времен-
pro хранения;

• канал занимает более приоритетный транзакт.

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

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

Терминатор, убирающий транзакты из модели, имеет наимено-лие term. Транзакт, поступающий в терминатор, уничтожается. В эминаторе фиксируется время жизни транзакта.

Управляемый генератор {размножитель) транзактов имеет на-ленование creat. Он позволяет создавать новые семейства транзак-эв. Дело в том, что транзакты, создаваемые обычными генератора-[ ag, принадлежат семейству с номером 0 (номер семейства - один ^ параметров транзакта). Если возникает необходимость создать ровое семейство с ненулевым номером, то соответствующее требо-ание содержится в порождающем транзакте, поступающем на вход reat. Далее за нулевое модельное время происходит следующее:

• порождающий транзакт выходит из узла creat;

• из этого же узла выходит группа новых транзактов, принадле-
щк семейству с заданным номером.

Управляемый терминатор транзактов имеет наименование elet. Иногда в модели возникает необходимость уничтожить (по-К-лотить) заданное число транзактов, принадлежащих конкретному |ремейству. Требование на такое действие содержится в уничтожаю-'' дем транзакте, поступающем на вход узла delet. Этот транзакт ждет


поступления в узел транзактов указанного семейства и уничтожает их; время жизни при этом регистрируется. После поглощения задан­ного количества транзактов (или по специальному сигналу freed из другого узла) уничтожающий транзакт покидает узел.

Клапан, перекрывающий путь транзактам, имеет наименование key. Если на клапан воздействовать сигналом hold из какого-либо узла, то клапан перекрывается и транзакты не могут через него про­ходить. Сигнал rels из другого узла открывает клапан. Транзакты проходят через этот узел без задержки - за нулевое модельное вре­мя. Часто этот узел используется для целей синхронизации или для моделирования работы с информационными ресурсами.

Очередь с пространственно-зависимыми приоритетами имеет наименование dynam. Транзакты, попадающие в такую очередь, привязаны к точкам пространства. Очередь обслуживается специ­альным узлом ргос, работающим в режиме пространственных пере­мещений. Смысл обслуживания транзактов заключается в тоц, что­бы посетить все точки пространства, с которыми связаны (или из которых поступили) транзакты. При поступлении каждого нового транзакта, если он не единственный в очереди, происходит переупо­рядочение очереди таким образом, чтобы суммарный путь посеще­ния точек был минимальным. Не следует считать, что при этом ре­шается задача коммивояжера: для решения такой задачи в нулевой момент времени имеется вся информация о точках пространства. В данном же случае информация о новых точках поступает во время движения, когда некоторые точки уже посещены. Рассмотренное правило работы узла dynam в литературе называется «алгоритмом скорой помощи».

Управляемый процесс (непрерывный или пространственный) имеет наименование ргос. Этот узел работает в трех взаимно исклю­чающих режимах:

1) моделирование управляемого непрерывного процесса (напри­
мер, процесса в химическом реакторе);

2) моделирование доступа к оперативным информационным ре­
сурсам;

3) моделирование пространственных перемещений (например,
вертолета или корабля по поверхности Земли).

В первом режиме после входа транзакта в узел запускается не­прерывная модель, являющаяся функцией на языке C++, имеющая параметр «время». Такой моделью могут быть математическая фор­мула или разностное уравнение, или другое. Эта модель синхрони-


эвана с другими узлами имитационной модели. Выполнением „ивностью) непрерывной модели можно управлять из других уз-з. По сигналу passiv транзакт вытесняется из узла ргос в стек, по-чего очередные элементарные интервалы времени d перестают тать в непрерывную модель, а расчет по формуле или интегри-.яе разностного уравнения прекращается. Сигнал activ возвра-. транзакт в узел и восстанавливает расчет по непрерывной мо-,-л. После выхода транзакта из узла выполнение непрерывной мо-пи прекращается. Чистое время пребывания транзакта без учета снения его в стек - это и время обслуживания транзакта, и вре-[ выполнения непрерывной модели.

Второй режим отличается от предыдущего только тем, что не-:рывные процессы в узле не моделируются, так как они не нужны i моделирования доступа к информационным ресурсам. В третьем режиме обслуживание каждого нового транзакта за-эчается в имитации перемещения узла ргос в новую точку про-анства, координаты которой - это параметры транзакта. Переме­щение осуществляется с заданной скоростью.

Счет бухгалтерского учета (операция типа «проводка») имеет именование send. Транзакт, который входит в такой узел, является эосом на перечисление денег со счета на счет или на бухгалтер-проводку. Правильность работы со счетами регулируется спе-.ьным узлом direct, который имитирует работу бухгалтерии, лзакт, вошедший в узел send, далее может перейти только в узел

_ ct. Если в узле send остаток денег достаточен, чтобы выполнить

еречисление на другой счет (щ^другой узел send), то узел direct вы-лняет перечисление и выпускает обслуженный транзакт. В про-вном случае в узле send возникает дефицит средств и соответст-|$енно очередь необслуженных транзактов.

Распорядитель финансов («главный бухгалтер») имеет наимено-ие direct. Он управляет работой узлов типа send. Причем для пра-[ьной работы модели достаточно одного узла direct; он обслужит rate счета без нарушения логики модели. Однако не будет ошибкой, |<бсли каждый счет send будет обслуживаться отдельным бухгалтером f direct. Поэтому, чтобы разделить статистику по разным участкам ^моделируемой бухгалтерии, можно использовать несколько узлов «direct.

- Если при обслуживании какого-либо счета возникает дефицит | ресурсов, то в этом случае возможны различные дисциплины обслу­живания: в хронологическом порядке поступления транзактов, по


жестко задаваемым приоритетам, по днамическим приоритетам (чем меньшую сумму нужно перечислить, тем приоритетнее транзакт).

Склад перемещаемых ресурсов имеет наименование attach. Это хранилище какого-то количества однотипного ресурса (например, гаражное хозяйство, имеющее 25 грузовиков). Единицы ресурсов в нужном количестве выделяются транзактам, поступающим в узел attach, если остаток (количество единиц, имеющихся в наличии) по­зволяет выполнить такое обслуживание. В противном случае возни­кает очередь необслуженных транзактов и соответственно дефицит ресурса. Транзакты, получившие ресурсы, вместе с ними мигрируют по графу во время выполнения модели и возвращают по мере необ­ходимости разными способами: либо все единицы вместе, либо не­большими партиями, либо поштучно. На один и тот же склад можно обращаться несколько раз, не возвращая ранее полученные с этого склада ресурсы. Корректность работы склада обеспечивает менед­жер - специальный узел manage.

Менеджер (или распорядитель) ресурсов имеет наименование manage. Он управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все склады без нарушения логики модели. Однако не будет ошиб­кой, если склад будет обслуживаться отдельным менеджером. По­этому, чтобы разделить статистику по разным складам перемещае­мых ресурсов, можно использовать несколько узлов-менеджеров.

Если при обслуживании какого-либо склада возникает дефицит ресурсов, то в этом случае возможны те же дисциплины обслужива­ния, которые использовались в узле direct.

Структурный узел финансово-хозяйственных платежей имеет наименование pay. Он предназначен для упрощения той части ими­тационной модели, которая связана с работой бухгалтерии. Если по­зволить обращения к счетам бухгалтерского учета из всех частей модели, где возникают требования на проводки или перечисления, то граф станет запутанным. Описание условий прохождения тран­зактов по путям будет очень длинным и сложным. Условия - это логические выражения с многочисленными if, else, switch, case и while. Очень сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только по­сле длительного тестирования модели. Поэтому вся работа бухгал­терии собирается на одном структурном слое модели (слой 3, см. рис. 2.1). Обращения на этот слой в нужные входы-узлы происходят


^других слоев из узла pay автоматически, без графического объеди-„_i этих слоев с помощью дуг.

Структурный узел выделения ресурсов имеет наименование rent. „ применяется для упрощения графа и всей модели при работе со ногами, складами с различных уровней структурной схемы точно: же, как узел pay.

Произвольный структурный узел имеет наименование down. Он ■ необходим для упрощения очень сложного слоя модели, за-эчающегося в «развязывании» сложной запутанной схемы, нахо-дейся на одном слое, по двум разным уровням (или слоям). Его иьза точно такая же, как полезность узлов pay и rent. Виртуальный структурный узел имеет наименование parent, /зел parent - мощное средство структурного анализа при создании модели. Узел виртуален. В тексте модели он отсутствует. Этот узел эзволяет объединить некоторое множество любых узлов модели и вместить их на более низкий слой, оставив на исходном слое толь-графический значок parent. Работа с такими узлами возможна.лько в режиме CASE-технологии создания имитационных моделей ри использовании графического конструктора. Такая технология удет рассмотрена в последующих разделах.

2.2



Поделиться:


Последнее изменение этой страницы: 2016-06-06; просмотров: 308; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.6.194 (0.026 с.)