Обозначает вход в область процесса, в которой одновременно может находиться ограниченное количество агентов. Такая область может иметь только один вход и сразу несколько выходов, каждый из которых должен быть задан блоком RestrictedAreaEnd, который должен содержать ссылку на соответствующий блок входа в область RestrictedAreaStart, чтобы иметь представление о том, какой участок этот блок завершает (см. картинку внизу). С помощью этих блоков вы можете ограничить число агентов, проходящих через какой-то участок моделируемого процесса. Максимальное количество агентов, которое может одновременно находиться в области, задается параметром блока Вместимость (макс. допустимая). Агенты принимаются только до тех пор, пока разность количества агентов, поступивших в блок RestrictedAreaStart, и количества агентов, покинувших блок RestrictedAreaEnd, не достигнет заданного ограничения. После этого новые агенты смогут войти в область только тогда, когда какие-нибудь агенты эту область покинут.
Блок RestrictedAreaStart реализован с использованием блока Hold, поэтому агент просто передается в следующий блок и не проводит в блоке RestrictedAreaStart никакого времени.
- Вместимость (макс. допустимая)
- Максимально допустимое количество агентов, которое может одновременно находиться в области, задаваемой этим блоком.
Синтаксис: int capacity
Значение по умолчанию: 10
- При входе
- Код, выполняемый при поступлении агента в блок.
Локальная переменная: Т entity — агент
Функция | Описание |
---|---|
int entitiesInside() | Возвращает количество агентов, находящихся в данный момент времени в области. |
boolean isBlocked() | Возвращает true, если вход в область заблокирован, и false — если нет. |
- Hold
- Блок блокирует вход в область в случае нахождения максимально допустимого количества агентов внутри области.
- in
- Входной порт.
- out
- Выходной порт.
-
Как мы можем улучшить эту статью?
-