Лекция №4. (26. 03. 2018)
Блок изменения маршрута транзактов TRANSFER A, B. Работа данного блока зависит от значения параметра A. Параметры B и C представляют собой метки блоков моделей. В тексте моделей метка помечается перед именем помеченного блока, отделяясь от него пробелом.
Модификация блока TRANSFER:
-
Безусловный переход транзакта
Такой блок организует, если параметр A
опущен. Параметр C не пишется: TRANSFER ,B.
Транзакт, попавший в такой блок тут же переходит на блок с пометкой, соответствующей параметру B.
Пример:
Имеется цех с двумя станками, которые требуют периодического обслуживания. Эти станки обслуживает один работник. На обслуживание одного станка требуется время, определяемое равномерно на интервале (10;16). Интервал времени в точках, в которых станок может работать автономно тоже (10;16). Считается, что в начале смены рабочий находится возле станка №1. Смоделировать работу цеха в течении 8-часоваго рабочего дня.
Решение:
GENERATE 0,0,0,1
SEIZE STANOK1
ADVANCE 13,3
RELEASE STANOK1
SEIZE STANOK2
ADVANCE 13,3
RELEASE STANOK2
TRANSFER POS1
GENERATE 480
TERMINATE 1
START 1
-
Блок статистического изменения маршрута
Данная модификация применяется тогда, когда транзакт должен случайным образом выбрать один из двух маршрутов. В этом случае параметр A записывается как положительное число, меньшее единицы.
При прохождении транзактом такого блока TRANSFER он с вероятностью P = A перейдёт на блок с меткой равной параметру B, а с вероятностью 1-A в блок с пометкой C. Если параметр B опущен, то по умолчанию это следующий блок модели.
Пример:
Приходящие в магазин покупатели с P = 0,3 идут в первый отдел, а с вероятностью 0,7 во второй. Составить модель такого магазина, если обслуживание в первом отделе длится случайное время (10;16), во втором отделе (15;25). А покупатели приходят так что время между их приходом подчиняется экспоненциальному закону распределения со средним значением 14. Промоделировать обслуживание 1000 покупателей.
Решение:
GENERATE (EXPONENTIAL (1,0,14)
TRANSFER .3,OTD1,OTD2
OTD1
SEIZE OTDEL1
DEPART OTDEL1
ADVANCE 13,3
RELEASE OTDEL1
OTD2
QUEUE OTDEL2
SEIZE OTDEL2
DEPART OTDEL2
ADVANCE 20,5
RELEASE OTDEL2
TERMINATE 1
START 1000
-
Блок общей очереди
Для данной модификации параметр A блока TRANSFER записывается в виде слова BOTH, затем два параметра B и C. TRANSFER BOTH,B,C. Он работает так, когда транзакт подходит к блоку с меткой равной параметру B. Если этот блок занят, то транзакт пытается перейти к блоку с меткой равный параметру C, если же оба блока заняты, то транзакт останавливается перед блоком TRANSFER в ожидании, когда какой-нибудь из блоков (B/C) освобождается.
Пример:
Имеется справочная телефонная служба. Клиент звонит на общий номер и первый из освободившихся операторов отвечает на звонок. Если оба оператора заняты, то клиент остаётся на линии ожидания освобождения оператора. Время между звонками клиентов подчиняется экспоненциальному закону распределения со средним значением 5 минут. Первый оператор обслуживает клиента в течении времени, распределенного экспоненциально со средним значением 7 минут, а второй – 8. Собрать сведенья о статистических характеристиках времени ожидания клиентами ответа оператора, промоделировать системы в течении 12-ти часовой рабочей смены.
Решение:
GENERATE (EXPONENTIAL (1,0,5))
QUEUE OCH
TRANSFER BOTH, OP1, OP2
OP1
DEPART OCH
ADVANCE (EXPONENTIAL (2,0,7))
RELEASE OPER1
OP2
SEIZE OPER2
DEPART OCH
ADVANCE (EXPONENTIAL (2,0,7))
RELEASE OPER2
TERMINATE 1
GENERATE 720
TERMINATE 1
START 1