Основные этапы разработки имитационной модели (на примере модели банковского отделения)
Дипломная работа - Менеджмент
Другие дипломы по предмету Менеджмент
?ка перемещается в нулевую позицию очереди и готова покинуть объект. code onExit Код, выполняемый, когда заяка покидает объект или через порт output, или после вызова функции remove(). int queueType FIFO Тип очереди. Может быть одним из следующих: FIFO LIFO RANDOM PRIORITY integer capacity 100 Вместимость очереди. integer entitiesToAnimateall Количество заявок, которое будет отображено на анимации. boolean preemption false Если true, то включен режим вытеснения. boolean timeout false Если true, то включен режим таймаута. Code double> timeoutTime infinity Выражение, вычисляющее значение таймаута для заявки. Применяется только при включенном режиме таймаута (timeout равен true). boolean statsEnabled false Если true, то для этого объекта будет собираться статистика. ShapeBase animationShape Шаблон анимации очереди. Тип зависит от выбранного аниматора. int animationType AUTO Тип аниматора очереди. Может быть одним из следующих: AUTO SINGLE SET BAG ARRANGED QUEUE boolean animationForwardtrue Направление движения заявок на анимации, если объект отображается на анимации ломаной линией.
Delay
Задерживает заявки на заданное время. Одновременно могут быть задержаны сразу несколько заявок (не более заданной вместимости объекта capacity). В отличие от объекта Server, заявки задерживаются независимо друг от друга - время задержки вычисляется отдельно для каждой заявки. Как только время задержки истекает, заявка тут же покидает объект. Если объект Delay заполнен полностью, то новую заявку он не примет.
Вместимость объектов Delay может изменяться с помощью объекта Schedule. Объект Schedule автоматически управляет вместимостью в соответствии с заданными значениями времен до следующей поломки и до починки (TTF и TTR) и рабочим расписанием.
Переменные
Тип Имя Описание Entity entity Текущая заявка. double delayTimeValue Значение задержки для текущей заявки.
Функции
Тип возвращаемого значения Имя Описание void block() Блокирует входной порт. void unblock() Разблокировывает входной порт. boolean blocked() Возвращает true, если входной порт заблокирован, и false - если нет. int size() Число задержанных (находящихся в объекте) в данный момент заявок. Entity get( int i ) Возвращает i-ю заявку. boolean canEnter() Возвращает true, если новая заявка может быть принята, т.е. если вместимость объекта Delay еще не достигнута. TimedDataSet getStatsUtilization()Возвращает статистику использования объекта. void resetStats() Сбрасывает статистику, собранную объектом.
Параметры
Тип Имя Значение по умолчанию Описание code onEnter Код, выполняемый, когда заявка поступает в объект. code onExit Код, выполняемый, когда заявка покидает объект. code delayTime triangular( 0.5, 1, 1.5 ) Выражение, вычисляющее время задержки для текущей заявки. double scale 1 Если в качестве значения параметра delayTime выбрано length of polyline, то время задержки будет равно длине анимационной фигуры объекта (ломаной линии), умноженной на этот коэффициент. Поэтому этот коэффициент часто выбирается равным 1/speed. int capacity 1 Вместимость объекта. boolean statsEnabled false Если true, то для объекта собирается статистика, если false, то нет. ShapeBase animationShape Шаблон анимации объекта. Тип зависит от аниматора. int animationType AUTO Тип аниматора. Может быть одним из следующих: AUTO SINGLE SET BAG ARRANGED MOVEMENT boolean animationForwardtrue Задает направление движения заявок на анимации в том случае, если объект отображается ломаной линией. Schedule schedule without_scheduleИмя объекта, задающего расписание изменения вместимости объекта.
Комментарии
Когда выполняется код параметра onEnter, значение времени, на которое должна быть задержана заявка, доступна как delayTimeValue.
Время задержки может быть стохастическим (как, например, значение по умолчанию), детерминированным, может зависеть от заявки или любой другой информации. Если, предположим, Вы хотите задерживать заявки типа Packet на время, пропорциональное значению поля size, тогда Вам нужно написать: ((Packet)entity).size*k.
Вместимость объекта Delay может быть изменена динамически путем вызова функции set_capacity(), или с помощью объекта Schedule. Один объект Schedule может управлять вместимостями сразу нескольких объектов Delay. Если вместимость была уменьшена до значения, меньшего, чем число заявок, находящихся в объекте в данный момент времени, то эти заявки останутся в объекте Delay до истечения своих времен задержек. Поэтому функция size() (возвращающая число задерживаемых объектом заявок в данный момент времени) в этом случае будет возвращать значение, большее вместимости capacity объекта. Объект примет новые заявки только после того, как лишние заявки покинут объект, и size() снова будет меньше capacity.
Sink
Уничтожает поступившие заявки. Обычно используется в качестве конечной точки потока заявок. Объект Sink автоматически подiитывает входящие заявки и выiитывает среднюю интенсивность входящего потока.
Переменные
Тип Имя Описание Entity entity Текущая заявка.
Функции
Тип возвращаемого значения Имя Описание void block() Блокирует входной порт объекта. void unblock() Разблокировывает входной порт объекта. boolean blocked() Возвращает true, если входной порт заблокирован, и false - если нет. int getCount() Возвращает число прошедших заявок. void reset() Обнуляет значение iетчика заявок и производит сброс статистики среднего значения интервала между поступлением заявок. double getAvgInterarrivalTime()Возвращает среднее значение интервала поступления заявок. double getAverageRate() Возврашает среднюю интенсивность входящего потока заявок.
Параметры
Тип Имя Значение по умолчанию Описание code onEnter Код, выполняемый, когда заявка поступает в объект.
Комментарии
Не подсоединенный ни к одному порту выходной порт не сможет произвести вывод заявок, поэтому если Вам нужно удалить заявки, в конце блок-схемы нужно поместить объек