AnyLogic
Развернуть
Размер шрифта

Wait

Этот блок может содержать в себе агентов и поддерживает их изъятие в ручном режиме (нужно вызвать функции free(), или freeAll()). Этот блок не имеет определенного порядка (кроме случаев, когда включено вытеснение).

Параметры

Тип агента
Тип агентов, проходящих через блок.
Далее:T
Вместимость
[Параметр виден, если не выбрана опция Максимальная вместимость]
Вместимость очереди.
Тип: int capacity
Значение по умолчанию: 100
Установить новое значение во время выполнения: set_capacity(новое значение)
Максимальная вместимость
Если опция выбрана (true), то вместимость очереди будет максимально возможной (ограничена константой Integer.MAX_VALUE).
Синтаксис: boolean maximumCapacity
Значение по умолчанию: false
Установить новое значение во время выполнения: set_maximumCapacity(новое значение)
Место агентов
Фигура разметки (узел или путь), где располагаются агенты, пока они находятся в этом блоке.
Синтаксис: AnimationStaticLocationProvider entityLocation

Специфические

Разрешить уход по таймауту
Если опция выбрана (true), то агенты могут покидать очередь по таймауту. После проведения в очереди максимально допустимого времени агенты будут покидать блок через специальный порт outTimeout .
Синтаксис: boolean enableTimeout
Значение по умолчанию: false
Таймаут
[Параметр виден, если выбрана опция Разрешить уход по таймауту]
Выражение, вычисляющее значение таймаута (максимально допустимое время, которое агент может провести в очереди) для агента.
Тип значения: double Локальная переменная: T agent — агент
Разрешить вытеснение
Если опция выбрана (true), агенты располагаются в очереди соответственно их приоритетам и могут быть вытеснены агентами с более высоким приоритетом.
Синтаксис: boolean enablePreemption
Значение по умолчанию: false
Вытеснять
[Параметр виден, если выбрана опция Разрешить вытеснение]
Задает, как приходящие агенты вытесняют агентов, уже находящихся в очереди. Вытеснять можно: самого последнего агента агента с самым низким приоритетом по сравнению агентов самого старого агента
Имя: queuing
Допустимые значения:
Wait.QUEUING_FIFO — самого последнего агента
Wait.QUEUING_PRIORITY — агента с самым низким приоритетом
Wait.QUEUING_COMPARISON — по сравнению агентов
Wait.QUEUING_LIFO — самого старого агента
Приоритет агента
[Параметр виден, если Вытеснять: агента с самым низким приоритетом]
Приоритет поступающего агента (чем больше значение, тем выше приоритет).
Тип значения: double
Локальная переменная: T agent — агент
Значение по умолчанию: 0
"agent1 может вытеснить agent2"
[Параметр виден, если Вытеснять: по сравнению агентов]
Код сравнения, который должен возвращать true , если агент agent1 имеет более высокий приоритет чем агент agent2 (иначе, false , включая случаи равных приоритетов).
Тип значения: boolean Локальная переменная: T agent1, T agent2 — агенты
Значение по умолчанию: false
Выталкивать агентов
Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока. Если опция не выбрана, агенты будут не выталкиваться, а выходить постепенно: только когда следующий блок готов принять еще одного агента, он запрашивает его у этого блока, и тогда агент проходит дальше.
Синтаксис: boolean pushProtocol
Значение по умолчанию: false
Вернуть агента в исходную точку
Если опция выбрана, агенты возвращаются в свое начальное местоположение ( узел или путь, где они находились до того, как попали в этот блок), после того, как покинут фигуру разметки, заданную в параметре Место агентов.
Синтаксис: boolean restoreEntityLocationOnExit
Включить сбор статистики
По умолчанию, статистика собирается для всех блоков Библиотеки Моделирования Процессов. Тем не менее, вы можете настроить этот параметр и выключить сбор статистики, чтобы улучшить динамику модели. Для этого добавьте блок PML Settings и отключите опцию Включить статистику по умолчанию. Таким образом, вы отключите сбор статистики для всех блоков диаграммы процесса в этой модели. Но вы можете включить статистику для некоторых конкретных блоков, включив эту опцию Включить сбор статистики в свойствах самого блока.
Синтаксис: boolean forceStatisticsCollection
Значение по умолчанию: false

Действия

Во всех действиях текущий агент доступен как локальная переменная agent.

При входе
Код, выполняемый, когда агент поступает в блок (и помещается в очередь).
При выходе
Код, выполняемый, когда агент покидает блок через порт out (обычным способом).
При уходе по таймауту
[Параметр виден, если выбрана опция Разрешить уход по таймауту]
Код, выполняемый, когда агент покидает блок по таймауту (прождав в очереди максимально допустимое время) через специальный порт outTimeout.
При вытеснении
[Параметр виден, если выбрана опция Разрешить вытеснение]
Код, выполняемый, когда агент покидает блок через порт outPreempted в результате вытеснения.
При извлечении
Код, выполняемый, когда агент умышленно извлекается из блока посредством вызова функции агента remove() . Этот код вызывается автоматически после вызова функции remove().
Локальная переменная: T agent — агент

Переменные

StatisticsContinuous statsSize
Статистика длины очереди. Статистика собирается если выбрана опция блока Включить статистику по умолчанию в блоке PML Settings.

Функции

Функция Описание
int size() Возвращает количество агентов, находящихся в данный момент в очереди.
T get(int index) Возвращает агента, находящегося в позиции с номером index (ближайшая к выходу из очереди позиция имеет номер 0).
T remove(Agent agent) Извлекает агента agent из очереди и возвращает его. Если такого агента в очереди обнаружено не будет, функция вернет null.
boolean free(Agent agent) Сообщает очереди освободить указанного агента и направить его к выходному порту out.
boolean freeAll() Сообщает очереди освободить всех агентов и направить их к выходному порту out.
resetStats() Удаляет статистику, собранную блоком к текущему моменту времени.
Iterator<T> iterator() Возвращает итератор агентов (в порядке: первый — у выхода, последний — самое большое время, оставшееся до его задержки).

Порты

in
Входной порт.
out
Выходной порт.
outTimeout
Выходной порт для агентов, покидающих блок по таймауту.
outPreempted
Выходной порт для агентов, покидающих блок в результате вытеснения.
Как мы можем улучшить эту статью?