Моделирование работы отдела банка

Представлен отдел банка по приему коммунальных платежей, в котором находится два оператора, а так же этот же отдел, но в котором операторы заменены на один автоматизированный аппарат. Задача состоит в том, чтобы определить, стоит ли менять операторов на автомат и к чему это приведет.

Создадим новую модель нажатием комбинации 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