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

RestrictedAreaStart

Обозначает вход в область процесса, в которой одновременно может находиться ограниченное количество агентов. Такая область может иметь только один вход и сразу несколько выходов, каждый из которых должен быть задан блоком RestrictedAreaEnd, который должен содержать ссылку на соответствующий блок входа в область RestrictedAreaStart, чтобы иметь представление о том, какой участок этот блок завершает (см. картинку внизу). С помощью этих блоков вы можете ограничить число агентов, проходящих через какой-то участок моделируемого процесса. Максимальное количество агентов, которое может одновременно находиться в области, задается параметром блока Вместимость (макс. допустимая). Агенты принимаются только до тех пор, пока разность количества агентов, поступивших в блок RestrictedAreaStart, и количества агентов, покинувших блок RestrictedAreaEnd, не достигнет заданного ограничения. После этого новые агенты смогут войти в область только тогда, когда какие-нибудь агенты эту область покинут.

Блок RestrictedAreaStart реализован с использованием блока Hold, поэтому агент просто передается в следующий блок и не проводит в блоке RestrictedAreaStart никакого времени.

Если агенты будут покидать область не через блок RestrictedAreaEnd (например, если вы будете извлекать их из потока программно), то блок RestrictedAreaStart не заметит их ухода и будет продолжать считать, что эти агенты находятся внутри области, что может привести к тому, что вход в область будет заблокирован раз и навсегда.

Параметры

Вместимость (макс. допустимая)
Максимально допустимое количество агентов, которое может одновременно находиться в области, задаваемой этим блоком.
Синтаксис: int capacity
Значение по умолчанию: 10

Действия

При входе
Код, выполняемый при поступлении агента в блок.
Локальная переменная: Т entity — агент

Функции

Функция Описание
int entitiesInside() Возвращает количество агентов, находящихся в данный момент времени в области.
boolean isBlocked() Возвращает true, если вход в область заблокирован, и false — если нет.

Вложенные блоки

Hold
Блок блокирует вход в область в случае нахождения максимально допустимого количества агентов внутри области.

Порты

in
Входной порт.
out
Выходной порт.
Как мы можем улучшить эту статью?