Представлен отдел банка по приему коммунальных платежей, в котором находится два оператора, а так же этот же отдел, но в котором операторы заменены на один автоматизированный аппарат. Задача состоит в том, чтобы определить, стоит ли менять операторов на автомат и к чему это приведет.
Создадим новую модель нажатием комбинации Ctrl+N. Переименуем класс Main в Model. Имя проекта создается только латинскими буквами. В свойствах эксперимента Simulation зададим выполнение модели в режиме реального времени с выполнением одной единицы модельного времени в одну секунду. В этой модели под единицей модельного времени мы будем понимать одну минуту работы банковского отделения. В окне проекта открываем вкладку Вид/Библиотеки. В списке библиотек открываем библиотеку Enterprise Library. В главное окно выносим необходимые нам объекты.
Создадим блок-схему модели. Для этого создайте и соедините объекты так, как показано на рисунке:
Source
Объект Source генерирует заявки (entities) определенного типа через заданный временной интервал. Заявки представляют собой объекты, которые производятся, обрабатываются, обслуживаются, или еще каким-нибудь образом подвергаются действию моделируемого процесса: это могут быть клиенты в системе обслуживания, детали в модели производства, документы в модели документооборота. В нашем примере заявками будут посетители банка, а объект Source будет моделировать их приход в банковское отделение. В свойстве объекта interarrivalTime укажем, как часто в отделение приходят клиенты.
Функции
Тип возвращаемого значения |
Имя |
Описание |
int |
getArrivals() |
Возвращает номер последней созданной заявки (первая созданная заявка имеет номер 0). |
void |
reset() |
Вычисляет заново время до создания следующей заявки. |
Параметры
Тип |
Имя |
Значение по умолчанию |
Описание |
code |
onExit | |
Код, выполняемый, когда заявка покидает объект. |
Class |
newEntity |
Entity.class |
Тип создаваемой заявки. | |
generationType |
distribution |
Определяет, как источник будет создавать заявки - базируясь на законе распределения (distribution) или согласно расписанию (arrivalList). |
double |
firstArrivalTime |
0 |
Абсолютное время создания первой заявки. Имеет смысл только тогда, когда создание подчиняется закону распределения. Если выбран тип генерации arrivalList, то время прибытия первой заявки будет соответствовать первому значению в этом списке. |
code<double> |
interarrivalTime |
exponential(1) |
Выражение, вычисляющее время до создания следующей заявки, если генерация заявок подчиняется закону распределения (в параметре generationType выбрано distribution). |
code<int> |
entitiesPerArrival |
1 |
Выражение, вычисляющее число заявок, создающихся за один раз. Если используется расписание arrivalList, то этот параметр игнорируется, а число создаваемых заявок определяется соответствующим значением в таблице. |
LookupTable |
arrivalList |
null |
Если заявки создаются согласно расписанию (в поле параметра generationType выбрано arrivalList), то здесь должна быть задана табличная функция, задающая времена прибытия заявки, и число заявок, прибывающее в каждый конкретный раз. |
int |
period |
aperiodic |
Если используется расписание (arrivalList), то этот параметр задает период прибытия заявок в модельных единицах времени. Параметр не используется, если создание заявок подчиняется закону распределения. |
int |
arrivalsMax |
infinity |
Максимальное число генераций. |
Перейти на страницу: 1 2 3 4 5
|