ОГЛАВЛЕНИЕ Введение………………………………………………………………………….. с. 3-3 1. Основные объекты модели………………………………..………..………… с. 4-14 2. Моделирование работы с материальными ресурсами………….…………. с. 14-16 3. Имитация информационных ресурсов……………………………..………. с. 16-18 4. Денежные ресурсы……………………………………………………………. с. 18-19 5. Моделирование пространственной динамики……………………………… с. 19-20 6. Управление модельным временем…………………………………………… с. 20-22 Заключение……………………………………………………………………………… с. 23-23 ВВЕДЕНИЕ Имитационное моделирование (от англ. simulation) – это распространенная разновидность аналогового моделирования, реализуемого с помощью набора математических инструментальных средств, специальных имитирующих компьютерных программ и технологий программирования, позволяющих посредством процессов-аналогов провести целенаправленное исследование структуры и функций реального сложного процесса в памяти компьютера в режиме «имитации», выполнить оптимизацию некоторых его параметров. Имитационной моделью называется специальный программный комплекс, который позволяет имитировать деятельность какого-либо сложного объекта. Он запускает в компьютере параллельные взаимодействующие вычислительные процессы, которые являются по своим временным параметрам (с точностью до масштабов времени и пространства) аналогами исследуемых процессов. Любое моделирование имеет в своей методологической основе элементы имитации реальности с помощью какой-либо символики (математики) или аналогов имитационное моделирование контролируемого процесса или управляемого объекта – это высокоуровневая информационная технология, которая обеспечивает два вида действий, выполняемых с помощью компьютера: 1) работы по созданию или модификации имитационной модели; 2) эксплуатацию имитационной модели и интерпретацию результатов. Имитационное (компьютерное) моделирование экономических процессов обычно применяется в двух случаях: • для управления сложным бизнес-процессом, когда имитационная модель управляемого экономического объекта используется в качестве инструментального средства в контуре адаптивной системы управления, создаваемой на основе информационных (компьютерных) технологий; • при проведении экспериментов с дискретно-непрерывными моделями сложных экономических объектов для получения и отслеживания их динамики в экстренных ситуациях, связанных с рисками, натурное моделирование которых нежелательно или невозможно. 1. ОСНОВНЫЕ ОБЪЕКТЫ МОДЕЛИ Моделирующая система выполняет следующие основные функции: 1) предоставляет разработчику средства для формализованного описания дискретных компонентов, дисциплин выполнения различных работ, для задания структуры графа и привязки объектов модели к координатной сетке общего информационного поля; 2) осуществляет координацию событий, определение путей прохождения транзактов, изменение состояний узлов и передачу управления моделям непрерывных компонентов. Такая система позволяет передавать результаты моделирования, используемые для принятия управленческих решений, из модели в базы данных экономической информационной системы либо «подкачивать» актуализируемые во времени параметры в модель из баз данных. Существуют шесть основных понятий, на которых базируется концепция моделирующей системы. 1. Граф модели. Все процессы, независимо от количества уровней структурного анализа, объединяются в виде направленного графа. Пример изображения модели в виде многослойного иерархического графа, полученного при структурном анализе процесса, показан на рис. 1. Слой 1 Слой 2 Слой 3 Рис. 1. Многослойный граф 2.Транзакт – это формальный запрос на какое-либо обслуживание. Транзакт в отличие от обычных заявок, которые рассматриваются при анализе моделей массового обслуживания, имеет набор динамически изменяющихся особых свойств и параметров. Пути миграции транзактов по графу стохастической сети определяются логикой функционирования компонентов модели в узлах сети. Транзакт является динамической единицей любой модели, работающей под управлением имитатора. Транзакт может выполнять следующие действия: • порождать группы (семейства) других транзактов; • поглощать другие транзакты конкретного семейства; • захватывать ресурсы и использовать их некоторое время, а затем – освобождать; • определять времена обслуживания, накапливать информацию о пройденном пути и иметь информацию о своем дальнейшем пути и о путях других транзактов. Основные параметры транзактов: • уникальный идентификатор транзакта; • идентификатор (номер) семейства, к которому принадлежит транзакт; • наборы различных ресурсов, которые транзакт может захватывать и использовать какое-то время; • время жизни транзакта; • приоритет – неотрицательное число; чем больше приоритет, тем приоритетнее транзакт (например, в очереди); • параметры обслуживания в каком-либо обслуживающем устройстве (включая вероятностные характеристики). Примеры транзактов: • требование на перечисление денег; • заказ на выполнение работ в фирме; • телеграмма, поступающая на узел коммутации сообщений; • сигнал о загрязнении какого-либо пункта местности; • приказ руководства; • покупатель в магазине; • пассажир самолета; • проба загрязненной почвы, ожидающая соответствующего анализа. 3.Узлы графа сети представляют собой центры обслуживания транзактов (но необязательно массового обслуживания). В узлах транзакты могут задерживаться, обслуживаться, порождать семейства новых транзактов, уничтожать другие транзакты. С точки зрения вычислительных процессов в каждом узле порождается независимый процесс. Вычислительные процессы выполняются параллельно и координируют друг друга. Они реализуются в едином модельном времени, в одном пространстве, учитывают временную, пространственную и финансовую динамику. Нумерация и присвоение имен узлам стохастической сети производится разработчиком модели. Следует учесть, что транзакт всегда принадлежит одному из узлов графа и независимо от этого относится к определенной точке пространства или местности, координаты которой могут изменяться. Примеры узлов: • счет бухгалтерского учета; • бухгалтерия; • производственный (ремонтный) участок; • генератор или размножитель транзактов; • транспортное средство, которое перемещает ресурсы из одной точки пространства в другую; • передвижная лаборатория; • компьютерный центр коммутации сообщений (или пакетов сообщений); • склад ресурсов. 4. Событием называется факт выхода из узла одного транзакта. События всегда происходят в определенные моменты времени. Они могут быть связаны и с точкой пространства. Интервалы между двумя соседними событиями в модели – это, как правило, случайные величины. Предположим, что в момент времени t произошло какое-то событие, а в момент времени t+d должно произойти ближайшее следующее, но не обязательно в этом же узле. Если в модель включены непрерывные компоненты, то очевидно, что передать управление таким компонентам модели можно только на время в пределах интервала (t, t+d). Разработчик модели практически не может управлять событиями вручную (например, из программы). Поэтому функция управления событиями отдана специальной управляющей программе – координатору, автоматически внедряемому в состав модели. 5.Ресурс независимо от его природы в процессе моделирования может характеризоваться тремя общими параметрами: мощностью, остатком и дефицитом. Мощность ресурса – это максимальное число ресурсных единиц, которые можно использовать для различных целей. Остаток ресурса – число незанятых на данный момент единиц, которые можно использовать для удовлетворения транзактов. Дефицит ресурса – количество единиц ресурса в суммарном запросе транзактов, стоящих в очереди к данному ресурсу. При решении задач динамического управления ресурсами можно выделить три основных типа: материальные, информационные и денежные ресурсы. б. Пространство – географическое, декартова плоскость (можно ввести и другие). Узлы, транзакты и ресурсы могут быть привязаны к точкам пространства и мигрировать в нем. Внутренняя реализация модели использует объектно-ориентированный способ представления экономических процессов. Транзакты, узлы, события и ресурсы – основные объекты имитационной модели. Взаимодействие таких объектов показано на рис. 2, где обозначены следующие моделирующие функции: ag, key, queue, dynam, ргос, term, el и e2. В различных моделирующих системах имеются разные способы представления узлов графа. Это связано с отличительными свойствами таких систем. Например, в системе GPSS узлы называются блоками; причем количество различных типов блоков более сотни, что затрудняет восприятие графа модели. В системе Pilgrim имеется всего 17 типов узлов, которые функционально перекрывают все возможности блоков GPSS и предоставляют дополнительные средства, которые в GPSS отсутствуют: • возможность работы с непрерывными процессами; • моделирование пространственной динамики; • работу с ресурсами, представляющими собой деньги и материальные ценности, счета бухгалтерского учета, банковские счета. Имеется система обозначений узлов, помогающая «читать» граф модели. Полный перечень изображений узлов Pilgrim приведен на рис. 3. Каждый узел имеет графическое обозначение, функциональное наименование, произвольный уникальный номер и произвольное название (например: наименование – serv, номер – 123, название – «Мастерская»). Пути транзактов обозначаются дугами – сплошными линиями со сплошной стрелкой на одном конце. Возможны информационные воздействия из одних узлов на другие; направления таких воздействий изображаются пунктирными линиями со сплошной стрелкой на одном конце. Если моделируются бухгалтерские проводки или перечисления денег, то пути денежных сумм со счета на счет показываются пунктирными линиями с штриховой стрелкой. Рис. 3. Графические обозначения на схемах моделей (начало) Изображение Функциональное назначение узла Генератор транзактов (с бесконечной емкостью) Очередь (с приоритетами или без приоритетов) Узел обслуживания с многими параллельными каналами Терминатор, убирающий транзакты из модели Управляемый генератор (размножитель) транзактов Управляемый терминатор транзактов Клапан, перекрывающий путь транзактам Очередь с пространственно-зависимыми приоритетами Изображение Функциональное назначение узла Управляемый процесс (непрерывный или пространственный) Счет бухгалтерского учета (операция типа «проводка») Распорядитель финансов (главный бухгалтер) Склад перемещаемых ресурсов Менеджер (или распорядитель) ресурсов Структурный узел финансово-хозяйственных платежей Структурный узел выделения ресурсов Произвольный структурный узел Виртуальный структурный узел Основные процессы и действия, которые могут выполняться в различных узлах модели. Генератор транзактов (с бесконечной емкостью) имеет наименование ag. Узлы-генераторы создают новые транзакты и передают их в другие узлы модели. Параметры генератора в случае необходимости можно изменить посредством информационного воздействия из другого узла с помощью сигнала. Очередь (с относительными приоритетами или без приоритетов) имеет наименование queue. Если приоритеты не учитываются, то транзакты упорядочиваются в очереди в порядке поступления. Когда приоритеты учитываются, транзакт попадает не в «хвост» очереди, а в конец своей приоритетной группы. Узел обслуживания с многими параллельными каналами имеет наименование serv. Обслуживание может быть в порядке поступления транзакта в освободившийся канал либо по правилу абсолютных приоритетов. Если такое правило задано и возникает ситуация, при которой в «голове» очереди на обслуживание находится транзакт с ненулевых приоритетом, все каналы заняты, причем в одном из каналов на обслуживании находится транзакт с более низким приоритетом, то выполняется следующее: • обслуживание неприоритетного транзакта прерывается; • неприоритетный транзакт удаляется из канала в стек временного хранения; • канал занимает более приоритетный транзакт. После освобождения канала прерванный транзакт возвращается в канал и дообслуживается столько времени, сколько оставалось на момент прерывания. Терминатор, убирающий транзакты из модели, имеет наименование term. Транзакт, поступающий в терминатор, уничтожается. В терминаторе фиксируется время жизни транзакта. Управляемый генератор (размножитель) транзактов имеет наименование creat. Он позволяет создавать новые семейства транзактов. Дело в том, что транзакты, создаваемые обычными генераторами ag, принадлежат семейству с номером 0 (номер семейства – один из параметров транзакта). Если возникает необходимость создать новое семейство с ненулевым номером, то соответствующее требование содержится в порождающем транзакте, поступающем на вход creat. Далее за нулевое модельное время происходит следующее: • порождающий транзакт выходит из узла creat; • из этого же узла выходит группа новых транзактов, принадлежащих семейству с заданным номером. Управляемый терминатор транзактов имеет наименование delet. Иногда в модели возникает необходимость уничтожить (поглотить) заданное число транзактов, принадлежащих конкретному семейству. Требование на такое действие содержится в уничтожающем транзакте, поступающем на вход узла delet. Этот транзакт ждет поступления в узел транзактов указанного семейства и уничтожает их; время жизни при этом регистрируется. После поглощения заданного количества транзактов (или по специальному сигналу freed из другого узла) уничтожающий транзакт покидает узел. Клапан, перекрывающий путь транзактам, имеет наименование key. Если на клапан воздействовать сигналом hold из какого-либо узла, то клапан перекрывается и транзакты не могут через него проходить. Сигнал rels из другого узла открывает клапан. Транзакты проходят через этот узел без задержки – за нулевое модельное время. Часто этот узел используется для целей синхронизации или для моделирования работы с информационными ресурсами. Очередь с пространственно-зависимыми приоритетами имеет наименование dynam. Транзакты, попадающие в такую очередь, привязаны к точкам пространства. Очередь обслуживается специальным узлом ргос, работающим в режиме пространственных перемещений. Смысл обслуживания транзактов заключается в том, чтобы посетить все точки пространства, с которыми связаны (или из которых поступили) транзакты. При поступлении каждого нового транзакта, если он не единственный в очереди, происходит переупорядочение очереди таким образом, чтобы суммарный путь посещения точек был минимальным. Управляемый процесс (непрерывный или пространственный) имеет наименование ргос. Этот узел работает в трех взаимно исключающих режимах: 1) моделирование управляемого непрерывного процесса (например, процесса в химическом реакторе); 2) моделирование доступа к оперативным информационным ресурсам; 3) моделирование пространственных перемещений (например, вертолета или корабля по поверхности Земли). В первом режиме после входа транзакта в узел запускается непрерывная модель, являющаяся функцией на языке С++, имеющая параметр «время». Такой моделью могут быть математическая формула или разностное уравнение, или другое. Эта модель синхронизирована с другими узлами имитационной модели. Выполнением (активностью) непрерывной модели можно управлять из других узлов. По сигналу passiv транзакт вытесняется из узла ргос в стек, после чего очередные элементарные интервалы времени d перестают поступать в непрерывную модель, а расчет по формуле или интегрирование разностного уравнения прекращается. Сигнал activ возвращает транзакт в узел и восстанавливает расчет по непрерывной модели. После выхода транзакта из узла выполнение непрерывной модели прекращается. Чистое время пребывания транзакта без учета вытеснения его в стек – это и время обслуживания транзакта, и время выполнения непрерывной модели. Второй режим отличается от предыдущего только тем, что непрерывные процессы в узле не моделируются, так как они не нужны для моделирования доступа к информационным ресурсам. В третьем режиме обслуживание каждого нового транзакта заключается в имитации перемещения узла ргос в новую точку пространства, координаты которой – это параметры транзакта. Перемещение осуществляется с заданной скоростью. Счет бухгалтерского учета (операция типа «проводка») имеет наименование send. Транзакт, который входит в такой узел, является запросом на перечисление денег со счета на счет или на бухгалтерскую проводку. Правильность работы со счетами регулируется специальным узлом direct, который имитирует работу бухгалтерии. Транзакт, вошедший в узел send, далее может перейти только в узел direct. Если в узле send остаток денег достаточен, чтобы выполнить перечисление на другой счет (в другой узел send), то узел direct выполняет перечисление и выпускает обслуженный транзакт. В противном случае в узле send возникает дефицит средств и соответственно очередь не обслуженных транзактов. Распорядитель финансов («главный бухгалтер») имеет наименование direct. Он управляет работой узлов типа send. Причем для правильной работы модели достаточно одного узла direct; он обслужит все счета без нарушения логики модели. Однако не будет ошибкой, если каждый счет send будет обслуживаться отдельным бухгалтером direct. Поэтому, чтобы разделить статистику по разным участкам моделируемой бухгалтерии, можно использовать несколько узлов direct. Склад перемещаемых ресурсов имеет наименование attach. Это хранилище какого-то количества однотипного ресурса (например, гаражное хозяйство, имеющее 25 грузовиков). Единицы ресурсов в нужном количестве выделяются транзактам, поступающим в узел attach, если остаток (количество единиц, имеющихся в наличии) позволяет выполнить такое обслуживание. В противном случае возникает очередь не обслуженных транзактов и соответственно дефицит ресурса. Транзакты, получившие ресурсы, вместе с ними мигрируют по графу во время выполнения модели и возвращают по мере необходимости разными способами: либо все единицы вместе, либо небольшими партиями, либо поштучно. На один и тот же склад можно обращаться несколько раз, не возвращая ранее полученные с этого склада ресурсы. Корректность работы склада обеспечивает менеджер – специальный узел manage. Менеджер (или распорядитель) ресурсов имеет наименование manage. Он управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все склады без нарушения логики модели. Однако не будет ошибкой, если склад будет обслуживаться отдельным менеджером. Поэтому, чтобы разделить статистику по разным складам перемещаемых ресурсов, можно использовать несколько узлов-менеджеров. Если при обслуживании какого-либо склада возникает дефицит ресурсов, то в этом случае возможны те же дисциплины обслуживания, которые использовались в узле direct. Структурный узел финансово-хозяйственных платежей имеет наименование pay. Он предназначен для упрощения той части имитационной модели, которая связана с работой бухгалтерии. Если позволить обращения к счетам бухгалтерского учета из всех частей модели, где возникают требования на проводки или перечисления, то граф станет запутанным. Описание условий прохождения транзактов по путям будет очень длинным и сложным. Условия – это логические выражения с многочисленными if, else, switch, case и while. Очень сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только после длительного тестирования модели. Поэтому вся работа бухгалтерии собирается на одном структурном слое модели (слой 3, см. рис. 1). Обращения на этот слой в нужные входы-узлы происходят с других слоев из узла pay автоматически, без графического объединения этих слоев с помощью дуг. Структурный узел выделения ресурсов имеет наименование rent. Он применяется для упрощения графа и всей модели при работе со многими складами с различных уровней структурной схемы точно так же, как узел pay. Произвольный структурный узел имеет наименование down. Он бывает необходим для упрощения очень сложного слоя модели, заключающегося в «развязывании» сложной запутанной схемы, находящейся на одном слое, по двум разных уровням (или слоям). Его польза точно такая же, как полезность узлов pay и rent. Виртуальный структурный узел имеет наименование parent. Узел parent – мощное средство структурного анализа при создании модели. Узел виртуален. В тексте модели он отсутствует. Этот узел позволяет объединить некоторое множество любых узлов модели и поместить их на более низкий слой, оставив на исходном слое только графический значок parent. Работа с такими узлами возможна только в режиме CASE-технологии создания имитационных моделей при использовании графического конструктора. 2. МОДЕЛИРОВАНИЕ РАБОТЫ С МАТЕРИАЛЬНЫМИ РЕСУРСАМИ Материальные ресурсы подразделяются на две разновидности: неперемещаемые и перемещаемые. Неперемещаемый ресурс выделяется в определенном месте (как в реальности, так и в модели). Например, мастер в парикмахерской – это один элемент ресурса, выделяемый клиенту для обслуживания (стрижки и бритья). Этот элемент не может перемещаться вместе с клиентом (транзактом). После обслуживания одного клиента он либо приступит к обслуживанию следующего, если есть очередь, либо будет отдыхать. Перемещаемый ресурс выделяется клиенту, после чего клиент использует его в других местах и возвращает только при отсутствии необходимости дальнейшего использования. Например, ресурс – это гараж; клиенту можно выделить три грузовика для использования в работах, проводимых в других местах (естественно, не в гараже). Неперемещаемый ресурс (рис. 4) представляет собой «базу», на которой расположены (или к которой приписаны) какие-то ресурсные единицы; их можно использовать только на базе. Поток транзактов поступает в очередь к ресурсу. Неперемещаемый ресурс имитируется в виде многоканального обслуживающего прибора. Каждой ресурсной единице соответствует один канал обслуживания. Канал принимает в себя транзакт (или захватывается транзактом) на время, которое может зависеть от атрибутов узла, транзакта и других параметров. Очередь в имитационной модели описывается в виде узла queue, а многоканальный обслуживающий прибор – узлом типа serv. top(3): serv («Парикмахеры», N, abs, beta, 0.0,0.0,15.0,7); t serv op(2): queue («Ожидание», prty,4); 3 Рис. 4. Схема получения и освобождения транзактами элементов неперемещаемого ресурса – каналов узла serv: N – число каналов обслуживания (парикмахеров) По истечении времени обслуживания канал (элемент ресурса) безусловно освобождается, а транзакт переходит в следующий узел. Очередь может быть как с приоритетами, так и без приоритетов. Каналы могут работать в режиме прерывания обслуживания менее приоритетных транзактов более приоритетными. В моделях автоматически определяются задержка в очереди и загрузка неперемещаемого ресурса. Число свободных каналов в serv- это остаток ресурса, а количество транзактов в очереди queue – это дефицит ресурса. Мощность базируемого ресурса N -величина постоянная. Перемещаемый ресурс представляет собой «склад» единиц ресурса, количество которых известно. Число таких складов не регламентировано. Транзакт попадает в очередь к складу и требует выделения определенного числа единиц ресурса. Склад ресурсов описывается в имитационной модели в виде узла attach. В узле attach образуется очередь транзактов, которая может быть организована в хронологическом порядке или по приоритетным правилам: • по заранее заданным приоритетам транзактов; • при равенстве приоритетов транзактов происходит их дополнительное ранжирование – чем меньше транзакт запрашивает единиц, тем он более приоритетный. Обслуживанием транзактов занимается узел типа «менеджер» – manage. Таких узлов в модели может быть несколько. Пример взаимодействия узлов attach и manage показан на рис. 5. рис.5. Общая схема распределения мобильных материальных ресурсов Обслуживание транзакта заключается в выделении ему требуемого числа единиц ресурса. Обслуженный транзакт проходит узел manage и «путешествует» с захваченными единицами по графу модели до тех пор, пока в соответствии с определенными условиями он не вернет все (или часть) единицы ресурса с помощью функции detach. Транзакт может несколько раз становиться в очередь к одному и тому же ресурсу, получая дополнительные единицы. Существует интересная особенность при работе с перемещаемыми ресурсами: транзакт может отдать какие-либо единицы ресурса не только на тот склад, на котором он их получил, но и на другой. При таком перераспределении (или «похищении») на этих двух складах произойдет изменение мощностей: на одном она уменьшится, а на другом – увеличится. Данная особенность реализуется с помощью сигнальной функции canyoff. В моделях автоматически определяются задержка в очереди attach, загрузка ресурса, остаток и дефицит. Начальная мощность задается при инициализации модели функцией supply. 3. ИМИТАЦИЯ ИНФОРМАЦИОННЫХ РЕСУРСОВ Информационные ресурсы – это необходимые сведения, оперативная информация (например, биржевая информация из сайтов Интернета), временно предоставляемые права на что-либо, документация и иные нематериальные ценности, без которых невозможно выполнение важной функции. Эти ресурсы подразделяются на две разновидности: • стартовый информационный ресурс, без которого нельзя начинать выполнение функции (например, право или разрешение на ее выполнение, инструкция по сборке принципиально нового устройства); • оперативный информационный ресурс, постоянно необходимый при выполнении функции (например, оперативная диспетчерская информация, отсутствие которой делает невозможной посадку самолета на аэродром). Стартовый информационный ресурс дает возможность отправить заявку на выполнение какой-либо функции, т.е. поместить транзакт в очередь на обслуживание. На рис. 6 показана схема получения такого ресурса. Для выполнения основной функции нужны только два узла: первый (очередь queue) и седьмой – последний (обслуживающий процесс serv). Узлы 2 – 6 предназначены для имитации получения информации из N источников. Эти источники – каналы в узле обслуживания 5 (serv). В данном случае предполагается, что ко всем каналам или источникам информации доступ осуществляется через общую очередь 4 (queue). Если необходимо смоделировать отдельные механизмы доступа к каждому уникальному источнику информации, то данную схему нужно усложнить: это будет N очередей к N одноканальным узлам обслуживания. Рис. 6. Схема получения информационного ресурса для выполнения основной функции Оперативный информационный ресурс может быть получен двумя способами: • предварительно, вместе со стартовыми; • во время выполнения транзактом основной функции. На самом деле неважно, как получен ресурс; важно иметь доступ к этому ресурсу по возможности постоянно, так как прекращение доступа повлечет за собой приостановку выполнения основной функции. Моделирование механизма таких приостановок показано на рис. 7. Рис. 7. Схема выполнения функции основным транзактом при наличии доступа к информации 4. ДЕНЕЖНЫЕ РЕСУРСЫ Денежный ресурс представляет собой «емкость», в которой содержится определенное количество ресурса, измеряемого числом с плавающей точкой. Обычно эту емкость отождествляют со счетом бухгалтерского или банковского учета. Этот счет описывается с помощью узла типа send (пересылка). В узле send образуется очередь транзактов, в которых содержится запрос на перевод денежных средств с данного счета send на какой-либо другой. Эта очередь может быть организована по приоритетному принципу: чем меньше денег требует транзакт перевести с данного счета, тем он приоритетнее. Можно устанавливать приоритеты и по-другому, например по такой приоритетной таблице: сначала налоги, затем – зарплата, а после этого – все остальные платежи. Непосредственно проводками средств с одного счета на другой занимается узел типа direct (рис. 8). Этот узел имитирует работу бухгалтера. Достаточно иметь один узел direct на всю модель. Обслуживание в узле direct заключается в следующем: если запрос транзакта может быть удовлетворен, то транзакт проходит через узел direct, перечисляя требуемую сумму с данного счета-узла send на другой за нулевое модельное время, уменьшая остаток на счете. Начальные значения средств на некоторых счетах задаются при инициализации модели с помощью функции assign. Вид денежной единицы не имеет значения. Например, целая часть суммы – это рубли, а два знака после десятичной точки – это копейки. В модели автоматически определяются задержка в очереди send, остаток (положительное сальдо) и дефицит (отрицательное сальдо). Рис. 8. Схема распределения денежных ресурсов (бухгалтерские проводки) 5. МОДЕЛИРОВАНИЕ ПРОСТРАНСТВЕННОЙ ДИНАМИКИ Поведение исследуемой системы в пространстве моделируется с помощью узлов типа creat, delet, proc и dynam. Логика узла creat такова: он получает координаты порождающего транзакта, в результате происходит имитация перемещения в пространстве. Узел delet получает координаты каждого уничтожаемого транзакта, т.е. он перемещается по координатной сетке в процессе нахождения в нем поглощающего транзакта. Для моделирования пространственных перемещений, связанных с поставкой товаров во многие пункты местности, используется узел ргос. Пример (рис. 9). Часть модели, состоящая из узлов queue и ргос, предназначена для моделирования движения транспортного средства. Имеется специальный массив, предварительно загруженный координатами М пунктов региона из файла или базы данных средствами моделирующей системы. На вход этой части модели в разные моменты времени поступают М транзактов, причем каждый из них «читает» в свои внутренние параметры координаты очередной точки. Узел ргос, моделирующий транспортное средство, в качестве одного из параметров получает скорость перемещения, которая может быть изменяемой. При поступлении каждого следующего транзакта из очереди в узел ргос с помощью функции geoway автоматически определяется расстояние по поверхности Земли от предыдущего пункта до следующего. Время обслуживания транзакта – это расстояние, деленное на скорость. По истечении времени обслуживания узел получает новые координаты того пункта, в который он попал. Порядок посещения пунктов узлом ргос – хронологический (в порядке поступления транзактов в очередь) или в соответствии с приоритетами транзактов. Точки пространства (массив координат space) Рис. 9. Имитация перемещения в пространстве по координатам вызывающих транзактов: queue – очередь транзактов из точек пространства; ргос – имитация перемещения (транспортировки) Узел dynam предназначен для моделирования управляемой очереди обслуживания транзактов с динамическими пространственно-зависимыми приоритетами. Задача оптимального расписания для обслуживания транзактов с пространственно-зависимыми приоритетами может возникнуть, например, при моделировании следующих сложных процессов и объектов: • участка гибкого автоматизированного производства с роботизированными тележками, путешествующими по цеху; • местности, подверженной какому-то бедствию, в процессе ее обследования специальной командой на вертолете и др. 6. УПРАВЛЕНИЕ МОДЕЛЬНЫМ ВРЕМЕНЕМ События модели происходят в некотором модельном времени. Модельное время – это виртуальное время, в котором автоматически упорядочиваются все события, причем не обязательно пропорционально реальному времени, в котором развивается моделируемый процесс. Например: • реальное время развития процесса – 3 года; • модель процесса, охватывающая эти 3 года, выполняется на компьютере за 1 с; • все события при выполнении модели выстроены в нужном порядке, и все статистические данные в результате ее выполнения замерены. Масштаб времени – это число, которое задает длительность моделирования одной единицы модельного времени, пересчитанной в секунды, в секундах астрономического реального времени при выполнении модели. Относительный масштаб времени – это дробь, показывающая, сколько единиц модельного времени помещается в одной единице процессорного времени при выполнении модели в компьютере. Можно выделить четыре разновидности масштаба времени: 1.Реальный масштаб времени – вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 3600, то модель будет выполняться со скоростью реального процесса, а интервалы времени между событиями в модели будут равны интервалам времени между реальными событиями в моделируемом объекте (с точностью до поправок на погрешности при задании исходных данных). Относительный масштаб в этом случае равен 1:1. 2.Максимально ускоренный масштаб времени – задается число 0. В этом случае время моделирования определяется чисто процессорным временем выполнения модели. Например, если в модели произошли три события, причем длительность модельного времени между первым и вторым событиями составляет 1 мин, а между вторым и третьим интервал модельного времени равен 24 ч, то в компьютере соответствующие интервалы астрономического времени – это длительность выполнения управляющих программ имитатора, т.е. оба интервала приблизительно равны. Они зависят от используемого процессора ЭВМ и могут измеряться малыми долями секунды. Это обстоятельство позволяет достигнуть максимального быстродействия модели и автоматически исключать из процесса моделирования непроизводительные отрезки модельного времени (например, в ночное время фирма не работает). Относительный масштаб в этом случае практически трудно определить. 3.Пропорционально ускоренный масштаб времени – вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Причем это значение меньше выбранной единицы. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 0,1, то модель будет выполняться быстрее реального процесса. Причем 1 ч реального процесса будет моделироваться в ЭВМ в течение 0,1 с (с учетом погрешностей), т.е. примерно в 36 000 раз быстрее. Относительный масштаб равен 1:36 000. 4.Замедленный масштаб времени – вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Причем это значение меньше выбранной единицы. Например, если в качестве единицы модельного времени выбран 1 ч, а в качестве масштаба задать число 7 200, то модель будет выполняться медленнее реального процесса. Причем 1 ч реального процесса будет моделироваться в ЭВМ в течение 2 ч, т.е. примерно в 2 раза медленнее. Относительный масштаб равен 2:1. Замедленный масштаб не представляет интереса для проведения исследований с моделями. Однако замедленная работа необходима при исследовании самого имитатора и характеристик его координатора (например, при калибровке общего модельного таймера). Механизм планирования событий и модельный таймер. В процессе моделирования образуются управляющие структуры данных. На фазе инициализации для каждого узла в памяти ЭВМ выделяется блок управления узлом kcb. Эти блоки уничтожаются при завершении моделирования. Если в процессе прогона модели появляется новый транзакт, то на все время его существования образуется блок управления транзактом tcb. При входе транзакта в узел возникает блок управления событием ecb, который уничтожается после выхода транзакта из этого узла. Если транзакт захватывает какое-то количество единиц ресурса определенного типа, то к нему присоединяется блок управления ресурсом rcb с идентификатором этого ресурса; в этом блоке отмечается используемое количество единиц. Если ресурс полностью освобожден, то rcb уничтожается. Способы реализации непрерывных моделей. Непрерывные компоненты модели представляют процессы перемещения товаров транспортными средствами с учетом дорожной сети, химическое производство или окружающую среду вокруг объекта экономики. Непрерывные компоненты, если они необходимы, могут быть представлены: • разностными уравнениями; • расчетными формулами, реализующими конкретный математический метод. При реализации непрерывных компонентов очередной интервал (или шаг интегрирования) – это отрезок времени между двумя ближайшими событиями в стохастической сети. В данной системе моделирования обеспечиваются два способа реализации моделей непрерывных компонентов: пассивный и транзактно-управляемый. Пассивные непрерывные модели (например, модель процесса в природной среде, который можно только наблюдать, не имея возможности управления) запускаются сразу координатором network в нулевой момент модельного времени. Транзактно-управляемые непрерывные модели запускаются по прибытии транзактов в узлы типа ргос. Эти модели запускаются на определенное время активности – время обслуживания транзакта в таком узле. Активностью процесса выполнения непрерывной модели можно управлять из других узлов: с помощью сигнальной функции passiv выполнение непрерывной модели в узле ргос приостанавливается, а с помощью другой функции activ – возобновляется. Такие свойства удобны при моделировании систем управления непрерывным производством. Для моделирования многоуровневых прерываний в вычислительной системе удобнее использовать узел serv. ЗАКЛЮЧЕНИЕ Рассмотренная концепция имитационного моделирования экономических процессов, основанная на специальном аппарате формального манипулирования узлами, транзактами, событиями и ресурсами, является довольно универсальной для применения в риск-менеджменте. На ее основе создана система моделирования Pilgrim. Данная концепция использует следующие математические методы: • аппарат стохастических сетей для построения структурной схемы моделируемого процесса (не обязательно экономического); • метод Монте-Карло для статистических испытаний и проверки гипотез; • специально созданный набор датчиков псевдослучайных величин для решения экономических и иных задач; • методы планирования экстремальных экспериментов. В процессе создания модели в виде многоуровневой стохастической сети экономисту-исследователю не всегда понятно, каким образом выделять и детализировать процессы, включаемые в качестве узлов в состав модели. Поэтому Pilgrim имеет специальный инструментарий для структурного системного анализа моделируемых экономических объектов и систем, который выполняет две основные функции: • создает графическую схему модели методами структурной послойной декомпозиции объекта экономики; • генерирует программный код имитационной модели на языке Pilgrim в процессе диалога и последовательной декомпозиции, что позволяет применять используемую методологию экономистами-непрофессионалами в области программирования. Список использованной литературы А.А. Емельянов, Е.А. Власова, Р.В. Дума «Имитационное моделирование экономических процессов», Москва, «Финансы и статистика», 2002. М.М. Лычкина «Имитационное моделирование экономических процессов», Москва, Академия АйТи, Государственный университет управления, 2005.
Похожие работы
Методы формирования нейросетей Сущность электронного документооборота
Основные понятия экономической информатики Под экономической информатикой понимается наука, предназначенная для формирования теоретических основ моделирования деятельности хозяйствующих субъектов, также государственных, региональных и муниципальных образований. Ее…
Игра в Морской бой с компьютером
СОДЕРЖАНИЕ Введение 1 Постановка задачи 2 Математические и алгоритмические основы решения задачи 3 Функциональные модели и блок-схемы решения задачи 4 Программная реализация решения задачи 5…
Обработка данных в автоматизированных системах
Министерство образования и науки Украины Севастопольский национальный технический университет Кафедра технической кибернетики КУРСОВОЙ ПРОЕКТ на тему: «Обработка данных в автоматизированных системах» (альбом документов) Севастополь 2006…
Винчестеры
Содержание 1. Винчестеры Практическое задание 1 Программа на языке программирования BASIC Практическое задание 2 Практическое задание 3 Список литературы Винчестеры Накопи́тель на жёстких магни́тных ди́сках,…
Математична модель вимірювальної системи в середовищі Delphi
Курсова робота Математична модель вимірювальної системи в середовищі Delphi АНОТАЦІЯ Опис програми містить загальний опис алгоритмів головної програми та допоміжних на рівні блок-схем, а також…