Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
230700_Имитационное_моделирование_Прохоров.doc / Теория / Имитационное моделирование.docx
Скачиваний:
45
Добавлен:
06.02.2016
Размер:
131.95 Кб
Скачать

Интегрированная система моделирования Pilgrim

Рассмотрим объектно-ориентированную систему имитационного моделирования Pilgrim, имеющую возможности агрегирования экономических объектов [14]. Система охватывает возможности всех перечисленных выше классов — системной динамики, стохастического дискретного моделирования, пространственного моделирования.

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

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

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

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

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

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

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

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

Рис. 7.7. Многослойная модель предметной области

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

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

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

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

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

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

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

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

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

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

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

Транзакты, узлы, события и ресурсы — основные объекты имитационной модели. Взаимодействие таких объектов показано на рис. 7.8, где обозначены моделирующие функции: ag, key, queue, dynam, proc, term и пр.

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

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

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

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

Рис. 7.8. Пример взаимодействия объектов имитационной модели

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

Рассмотрим основные процессы и действия, которые могут выполняться в различных узлах модели:

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

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

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

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

- creat — управляемый генератор (размножитель) транзактов. Он позволяет создавать новые семейства транзактов. Если возникает необходимость создать новое семейство, то соответствующее требование содержится в порождающем транзакте, поступающем на вход creat. Далее происходит следующее: порождающий транзакт выходит из узла creat; из этого же узла выходит группа новых транзактов;

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

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

- dynam — очередь с пространственно-зависимыми приоритетами. Транзакты, попадающие в такую очередь, привязаны к точкам пространства. Очередь обслуживается специальным узлом рrос, работающим в режиме пространственных перемещений. Смысл обслуживания транзактов заключается в том, чтобы посетить все точки пространства, с которыми связаны (или из которых поступили) транзакты. Такое правило работы узла dynam называется алгоритм скорой помощи;

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

— моделирование управляемого непрерывного процесса (например, процесса в химическом реакторе). Выполнением непрерывной модели можно управлять из других узлов. По сигналу passiv транзакт вытесняется из узла рrос в стек, после чего непрерывная модель останавливается, и расчет по формуле или интегрирование уравнения прекращается. Сигнал activ возвращает транзакт в узел и восстанавливает расчет по непрерывной модели;

— моделирование доступа к оперативным информационным ресурсам — отличается от предыдущего тем, что непрерывные процессы в узле не моделируются, так как они не нужны для моделирования доступа к информационным ресурсам;

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

— обслуживание каждого нового транзакта заключается в имитации перемещения узла рrос в новую точку пространства, координаты которой — параметры транзакта;

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

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

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

- manage — менеджер (или распорядитель) ресурсов, управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все фонды без нарушения логики модели;

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

Условия — это логические выражения с многочисленными if, else, switch, case и while. Сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только после длительного тестирования модели. Поэтому вся работа бухгалтерии собирается на одном структурном слое модели (слой 3, см. рис. 7.7).

Обращения к этому слою в нужные входы-узлы происходят от других слоев из узла pay автоматически, без графического объединения этих слоев с помощью дуг;

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

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

- parent — виртуальный структурный узел. Этот узел позволяет объединить некоторое множество любых узлов модели и поместить их на более низкий слой, оставив на исходном слое только графический значок parent. Работа с такими узлами возможна только в режиме CASE-технологии создания имитационных моделей при использовании графического конструктора.

13