Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Имитационное моделирование экономических процессов

.pdf
Скачиваний:
241
Добавлен:
01.05.2014
Размер:
6.69 Mб
Скачать

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

Логика функционирования этого узла такова: в узел входит тран­ закт семейства р4 и находится там до тех пор, пока в него не посту­ пят р5 транзактов семейства рг й Number ^ рз, которые он должен мгновенно уничтожить (поглотить). Время существования этих транзактов фиксируется в узле delet. Узел получает координаты ка­ ждого уничтожаемого транзакта, т.е. он перемещается по коорди­ натной сетке. В общем случае номера семейств pi и рг могут совпа­ дать с номером рз (но с методической точки зрения такие совпаде­ ния нежелательны).

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

Отметим, что если в такой узел так и не поступят pj транзактов, то уничтожающий транзакт будет все время находиться в нем, бло­ кируя поступление в него других уничтожающих транзактов. По­ этому имеется средство для изгнания уничтожающего транзакта из узла delet - функция freed(i). Эта функция является сигнальной. Она рассмотрена в разд. 5.5.

В данном случае имеется возможность автоматического под­ счета:

1) среднего времени жизни уничтожаемьк транзактов (или части транзактов, если из состояния ожидания узел delet выводится прину­ дительно - вьшолнением функции freed);

2) числа уничтоженных транзактов.

Клапан на пути транза1стов. Функция key(pi,p2) описьшает прохождение транзакта через некий клапан. Когда клапан закрыт, транзакт не может в него войти из другого узла. Если же клапан от­ крыт, то транзакт проходит через него в узел п без задержки. Сред­ нее время пребывания такого узла в закрытом состоянии подсчитывается автоматически. Для управления этим клапаном или ключом существуют вспомогательные функции hold и rels.

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

Параметр pi - символическое имя узла: строка длиной до 14 символов, включая пробелы (char).

111

Параметр р2 - номер узла (int), в который передается сгенериро­ ванный транзакт (узел-приемник).

Транзактно-управляемый процесс Специальная суперфункция моделирования транзактно-управляемого непрерьгоного процесса

рГОС(рьр2,Рз,Р4,Р5,Рб.Р7.р8) объединяет в себе возможности имитации:

1)обслуживание в узле подобно serv с одним каналом;

2)перемещение узла по общему полю данных на координатной

сетке;

3)запуск на время активности функции типа

float p2(d) ,

где d - элементарный интервал активности (float), который определяется сис-

.темой Pilgrim в процессе моделирования и зависит от параметров рз, р4,

Р5. Рб-

Интервал требуемого обслуживания транзакта может бьггь меньше времени пребьшания транзакта в этом узле, так как процесс может быть переведен в состояние «пассивен» или «активен» какимлибо транзактом из другого узла с помощью функций activ и passiv.

Если процесс пассивен, то обслуживание транзакта приостанав­ ливается, а выполнение функции рг прерьшается до тех пор, пока процесс не будет переведен в активное состояние.

Аргументы имеют следующий смысл.

Параметр pi -

символическое имя узла: строка длиной до

14 символов, включая пробелы (char).

Параметр pj -

имя (адрес) программы, написанной пользовате­

лем, или слово dmnmy, если такой профаммы нет. Эта профамма может моделировать процесс с помощью формуЛ, дифференциаль­ ного уравнения и т.д.

Параметр рз - номер исходной точки, в которую устанавливает­ ся узел ргос перед началом моделирования (int).

Параметр р4 - тип функции распределения интервала активности процесса либо возможность работы с координатным пространством (int). Функции распределения обозначаются так: norm -'нормальное распределение, unif - равномерное, expo - экспоненциальное, erln - обобщенное распределение Эрланга, beta - треугольное распределе­ ние, попе - интервал, являющийся детерминированной величиной. Возможность работы с пространством задается одним из трех спосо­ бов: earth - поверхность Земли (геофафические координаты широта

112

и долгота), plane - декартова плоскость (прямоугольная система ко­ ординат), cosmos - произвольное пространство, попе - если нет рас­ пределений или режим пространственной имитации в данном узле не нужен.

Параметр ps - математическое ожидание интервала времени (float) активности (рд = norm, imif, expo), либо математическое ожи­ дание одного слагаемого этого интервала (р4=ег1п), либо минималь­ ное значение интервала обслуживания (p4=beta), либо постоянная величина этого интервала (р4=попе), либо интервал «непрерьгеного» нахождения этого узла в точке на координатной сетке (если Р4 = earth, plane или cosmos).

Параметр ре - параметр интервала активности обслуживания (float), который зависит от значения параметра р4. Это либо средне­ квадратичное отклонение (р4=погт), либо максимальное отклонение от среднего (р4= imif), либо значение zero (р4=ехро, попе), либо чис­ ло слагаемых интервала обслуживания (если р4=ег1п, то рб > 0), либо наиболее вероятное значение интервала времени обслуживания транзактов (p4=beta), либо скорость перемещения узла от одной точ­ ки пространства к другой (если р4=earth, plane или cosmos).

Параметр р7 - величина, также зависящая от типа функции рас­ пределения (float) интервала активности: либо 'значение zero (p4=norm, xmif, expo, erln, none), либо максимальное значение интер­ вала времени обслуживания (p4=beta);

Параметр pg - номер узла (int), в который передается сгенериро­ ванный транзакт (узел-приемник).

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

запуск процесса (реакции) в реакторе и управление активно­ стью этого процесса;

облет на вертолете местности, подвергшейся какому-либо бед­ ствию;

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

оперативное управление вертолетами «скорой помощи» с уче­ том динамически меняющейся ситуации.

Значения параметра р4 обеспечивают дополнительные возмож­ ности имитации поведения узла ргос в пространстве.

113

Перед входом в узел очередного транзакта координаты узла - это координаты какой-л^о точки А пространства, номер которой нахо­ дится в параметре этого узла к->кх

Транзакт, который входит в узел, имеет другие координаты - ко­ ординаты точки В (номер которой помещен в пгфаметр транзакта t->tx). После выхода транзакта из узла автоматически вычисляется длина / отрезка АВ, которая автоматически прибавляется к суммар­ ному значению пути, пройденного этим узлом. Время обслуживания транзакта определяется в этом случае по формуле

/

'обсл = ~"'"Р5 • Рб

Значения и смысл параметров р5 и рб можно пояснить на сле­ дующем примере.

Пример 3.2. Допустим, что имеется вертолет «скорой помощи», который вылетает по заявкам-радиограммам в различные населен­ ные пункты. Во-время полета на борт вертолета могут поступать но­ вые радиограммы. Здесь радиограммы из заселенных пунктов - это транзакты, а вертолет - узел ргос. Время полета из одного пункта в другой равно

/

'полета' Р,6

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

Другими словами, полет, длительность которого равна ^полета» подвержен возможному прерьшанию, а обследование больного (вре­ мя ps) - это непрерываемое нахождение в конкретной точке на коор­ динатной сетке. Значения ps и рв в даинси* случае - конкретные чис­ ла. Поэтому, если необходимо все-таки подставить случайные знзг чения, можно использовать датчики псевдослучайных величин, ра­ бота с которыми рассматривается в разд. 4.1.

Отметим, что в вырожденном случае узел ргос эквивалентен уз­ лу serv. Например, следующие две функции эквивалентны:

1)5егу("Обслуживание", l^ione,expo,10.0,zero,zero,n);

2)ргосСОбслуживание", dummy,none,expo,10.0,zero,zero,n).

114

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

Практическое применение этот узел нашел в моделях, предна­ значенных для оперативного управления работами при ликвидации последствий аварии на Чернобыльской АЭС на территории Брян­ ской области.

Очередь с пространственно-зависимыми приоритетами.

Функция dynam(pi,p2) предназначена для моделирования обслужи­ вания транзактов в очереди с динамическими пространственнозависимыми приоритетами. Эта функция моделирует оптимальноуправляемую очередь (очередь типа «скорая помощь»), которая на­ ходится на входе узла типа ргос. Узел имеет два параметра.

Параметр pi - символическое имя узла: строка длиной до 14 символов, включая пробелы (char).

Параметр рг - номер узла (int) типа ргос, в который передается сгенерированный транзакт (узел-приемник); ргос обязательно дол­ жен использовать свой параметр р4= earth, plane или cosmos.

Задача оптимального расписания для обслуживания транзактов с пространственно-зависимыми приоритетами может возникнуть, например, при моделировании следующих сложных процессов и объектов:

участка гибкого автоматизированного производства (ГАП) с роботизированньши тележками, «путешествующими» по цеху;

местности, подверженной какому-либо бедствию, в процессе

ееобследования специальной командой на вертолете и др.

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

В такой интерпретации функция ргос - это вертолет, радиограм­ мы - транзакты, имеющие координаты населенных пунктов, а функ­ ция dynam - оптимизатор курса. В модели же оператор dynam - это

115

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

Функция dynam всегда «заглядывает» в узел ргос и анализирует, не следует ли прервать обслуживание находящегося в нем транзакта. Если такое решение будет принято, то вычисляется местонахожде­ ние текущей точки пространства, в которой находится узел ргос; функция dynam извлекает из этого узла транзакт обратно в свою очередь и посылает в него более выгодный относительно оптимиза­ ции транзакт.

Оригинальный алг01ипм оптимизации динамического расписа­ ния - правила построения динамической очереди dynam - описан в главе 2. Он обладает высоким быстродействием и имеет практиче­ ское применение.

3.4 УПРАВЛЕНИЕ МАТЕРИАЛЬНЫМИ И ДЕНЕЖНЫМИ РЕСУРСАМИ

Моделирование материальных и денежных ресурсов учитьшает подобие их основных х^)актеристик: остаток ресурса похож на по­ ложительное сальдо, дефицит подобен отрицательному сальдо. Есть и другие аналогии (кроме перечисления денег и бухгалтерских про­ водок).

Функция запроса ресурсов со склада. Каждый склад ресурсов описывается в имитационной модели в виде узла типа attach. В узле attach образуется очередь транзактов, которая может быть организо­ вана по приоритетному принципу: чем меньше транзакт запрашива­ ет единиц, тем более он приоритетен. Соответствующая функция имеет вид:

attach(pi,P2,P3,p4) •

Эта функция включает 4 параметра.

Параметр pi - символическое имя узла-ресурса: строка длиной до 14 символов, включая пробелы (char).

Параметр рг - требуемое число элементов ресурса (long). Параметр рз - работа с приоритетами: prty или попе. Если указа­

но prty, то требования на ресурс в случае отсутствия необходимого

116

числа элементов образуют очередь в узле attach, причем соответст­ вующие транзакты располагаются в порядке убывания значения приоритета (ближе к голове очереди находится самая приоритетная группа транзактов). Внутри приоритетной группы транзакты распо­ ложены в следующем порядке: чем меньше элементов необходимо транзакту, тем ближе транзакт находится к голове своей приоритет­ ной группы. Если же требования на число элементов одинаковы, то транзакты расположены в хронологическом порядке (правило fifo): чем раньше транзакт пришел в очередь, тем раньше он обслужен. Когда указано значение попе, работает только правило fifo.

Параметр р4 - номер узла-приемника (int). Таким узлом может быть только узел-менеджер (manage).

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

manage(pi,p2) ,

включая два параметра.

Параметр pi - символическое имя узла-менеджера: строка дли­ ной до 14 символов, включая пробелы (char).

Параметр рг - номер узла-приемника (int). Таким узлом может быть любой узел модели, кроме manage.

Функция имитации бухгалтерской проводки. Основные объ­ екты системы Pilgrim (узел, транзакт, событие) очень хорошо подхо­ дят для описания финансовой динамики на счетах бухгалтерского учета предприятия (фирмы). Узлом считается счет (субсчет) бухгал­ терского учета; предположим, что номер этого узла i. Транзакт, во­ шедший э узел i, - это запрос на проводку со счета i определенной суммы на какой-то другой счет. Для осуществления проводки не­ обходимо, чтобы на счете i (т.е. в узле i) была сумма не менее тре­ буемой. При отсутствии такой суммы транзакт становится в ожида­ ние момента поступления на счет i достаточных средств. Другими словами, узел с номером i, который формирует запрос на бухгалтер­ скую проводку, - это специальная очередь транзактов. Описание узла-счета i:

send(pi,p2,p3,P4,Ps) . Этот узел имеет пять параметров.

117

Параметр pi - символическое имя узла-ресурса: строка длиной до 14 символов, включая пробелы (char).

Параметр рг - узел-счет, на который необходимо перевести за­ данную cyMMy(int);

Параметр рз - размер заданной суммы (double). Единицы изме­ рения финансовых средств - любые (рубли, доллары и т.д.). После точки обязательно необходимо указывать одно или два числа - доли используемых единиц измерений. Например: 1000000.00 (Один мил­ лион руб. 00 коп.).

Параметр щ - возможность работы с приоритетами: prty или попе. Если указано prty, то требования на перечисление денег со сче­ та i в случае отсутствия необходимой суммы образуют очередь в узле send, причем соответствующие транзакты располагаются в по­ рядке убывания значения приоритета (ближе к голове очереди нахо­ дится самая приоритетная группа транзактов). Внутри приоритетной группы транзакты расположены в следующем порядке: чем меньше требуемая сумма, тем ближе транзакт находится к голове своей при­ оритетной группы. Если же суммы одинаковы, то транзакты распо­ ложены в хронологическом порядке (правило fifo): чем раньше тран­ закт пришел в очередь, тем раньше он обслужен. Когда указано зна­ чение попе, работает только правило fifo.

Параметр рз - номер узла типа «финансовый директор» (узла direct), который осуществляет финансовый менеджмент и выполняет проводки по мере необходимости.

Событием в узле типа send является факт выполнения проводки со счета i на счет рг. Момент времени такого собьггия - это момент времени проводки, определяемый вьшодом транзакта из узла send.

В каждом узле типа send имеется внутренний атрибут saldo, ко­ торый отражает остаток средств на счете i. Дефицит средств на сче­ тах бухгалтерского учета содержится в другом атрибуте - defic. Если атрибут saldo в узле i имеет нулевое значение и в этом узле имеются транзакты (один или несколько), эадросившие проводки, то суммар­ ный дефицит затребованных этищ|а$щ(актами сумм автоматически отражается в атрибуте defic.

Имитация работы бухгалтера. Обслуживание очередей типа send возможно с помощью одного или нескольких узлов типа «фи­ нансовый директор». Описание такого узла:

direct(pi,p2). Эта функция имеет два параметра.

118

Параметр pi - символическое имя узла-ресурса: строка длиной до 14 символов, включая пробелы (char).

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

Пример работы с материальными и денежн1лми ресзфсами изло­ жен в главе 8.

3.5 СТРУКТУРНЫЙ АНАЛИЗ:

УПРАВЛЕНИЕ ПЕРЕХОДАМИ МЕЖДУ СЛОЯМИ МОДЕЛИ ПРИ МНОГОУРОВНЕВОЙ ДЕКОМПОЗИЦИИ

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

Существуют четыре разновидности декомпозиции процессов:

1) общий случай декомпозиции сложного процесса с помощью узлов типа down;

2)декомпозиция процессов перечисления денег (платежей, бух­ галтерских проводок и др.) с П0М0ИЦ.Ю узлов типа pay;

3)декомпозиция процессов выделения ресурсов с помощью уз­ лов типа rent;

4)абстрактное объединение группы процессов в один псевдо­ процесс с помощью виртуальн<н^!(мнимого, не существующего в реальности) узла parent без о^)Ш($6№ия нового узла.

Общая схема взаимодействия между слоями модели показана на рис. 2.1. Здесь рассматривается декомпозиция реальных узлов pay, rent и down. Управление переходами между слоями модели при мно­ гоуровневой декомпозиции основано на применении виртуального узла parent, который будет рассмотрен в главе 5, так как этот узел - атрибут диалогового CASE-конструктора, позволяющего проводить структурный анализ и создавать модели в графическом виде.

119

функция имитации перечисления денежной суммы. Имита­ ция перечисления денежной суммы с помощью узла pay вьп-лядит гораздо понятнее, чем это делается с помощью запутанных цепочек send=>direct, рассмотренных выше. Однако узел pay подлежит дета­ лизации на более низком уровне с помощью все тех же узлов send и direct. Функция pay имеет следующий вид:

pay(Pi,P2,p3,P4.P5,p6.P7) •

Для этой функции задаются семь аргументов.

Параметр pi - символическое имя узла pay: строка длиной до 14 символов, включая пробелы (char).

Параметр р2 - номер узла-счета типа send, на который перево­ дится денежная сумма (int).

Параметр рз - значение денежной суммы (или стоимость). Это переменная типа double.

Параметр р4 - номер узла-счета типа send, с которого переводит­ ся денежная сумма (int).

Параметр ps - признак работы с приоритетами (prty или попе). Параметр рб - номер узла-приемника на нижнем слое (int). Параметр p^ - номер узла возврата на данном слое модели, где

расположен узел pay (int).

Фунющя имитации получения ресурса со склада. Имитация получения ресурсов со склада внешне похожа на работу с узлом pay. Это делается с помощью узла rent. Но сам узел rent подлежит деком­ позиции на более низком уровне с помощью attach и manage. Функ­ ция rent имеет следующий вид:

гет(рьр2,рз,Р4,Р5,Рб) •

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

Параметр pi - символическое имя узла rent: строка длиной до 14 символов, включая пробелы (char).

Параметр рг - требование на число элементов ресурса (long). Параметр рз - номер узла-склада ресурсов attach, с которого не­

обходимо получить ресурсы (int).

Параметр р4 - признак работы с приоритетами (prty или попе). Параметр ps - номер узла-приемника на нижнем слое модели

(int).

120