Блок направляет входящих агентов в один из пяти выходных портов в зависимости от выполнения заданных (детерминистических или заданных с помощью вероятностей) условий.
У блока есть три режима работы:
- Условия — Пользователю предлагается задать 4 условия. Когда в блок поступит новый агент, эти условия будут поочередно вычисляться одно за другим. Если будет выполнено условие 1, то агент покинет блок через порт 1, если нет, то будет проверяться условие 2, и так далее. Если не будет выполнено ни одно из условий, то агент покинет блок через последний порт. Каждое условие может зависеть как от агента, так и от каких-то внешних факторов.
- Вероятности — Пользователю предлагается задать 5 вероятностей для пяти выходных портов (если их сумма не равна 1, то они нормализуются). Агент будет перенаправляться на тот или другой выходной порт, выбор которого будет случайно определяться в соответствии с заданными вероятностями.
- Номер выхода — Пользователь должен задать выражение, возвращающее целое число в диапазоне от одного до пяти. Когда агент попадает в этот блок, выражение вычисляется, и результат означает номер выходного порта, через который агент должен покинуть этот блок. Выражение может зависеть как от агента, так и от каких-то внешних факторов.
Поступивший агент покидает блок SelectOutput5 в тот же момент времени.
Блок может использоваться для сортировки агентов согласно заданному критерию, для разделения потока агентов на части и т.д.
Иногда требуется иметь более пяти выходов. Используя блоки SelectOutputIn и SelectOutputOut, вы можете создать один большой блок SelectOutput с требуемым количеством выходов.
- Использовать
- Режим работы блока. Определяет, как будет производиться маршрутизация агентов: будут ли для определения того, на какой выход нужно перенаправлять агентов, использоваться заданные Условия, будут ли агенты случайно распределяться в соответствии с тем, какие для выходных портов заданы Вероятности, или же номер выходного порта, через который агент должен покинуть этот блок, будет определяться результатом вычисления заданного выражения (Номер выхода).
Имя: type
Изменить значение: set_type(новое значение)
Допустимые значения:SelectOutput5.TYPE_PROBABILITIES — Вероятности
SelectOutput5.TYPE_CONDITIONS — Условия
SelectOutput5.TYPE_EXIT_NUMBERS — Номер выхода - [Параметр виден, если Использовать: Вероятности]
Выражение, вычисляющее вероятность того, что текущий агент покинет блок через порт out1 .. out5.Тип значения: double
Локальная переменная: T agent — агент
Значение по умолчанию: 0.2 — не зависит от поступающих агентов и просто разделяет поток агентов на пять равных частей - [Параметр виден, если Использовать: Условия]
Условие, проверяемое для входящего агента. Если Условие N будет выполнено (равно true), то агент покинет блок через порт outN. Если нет — то будет проверяться следующее условие, Условие N+1. Если не будет выполнено ни одно из условий, то агент покинет блок через пятый выходной порт out5.Тип значения: boolean
Локальная переменная: T agent — агент - [Параметр виден, если Использовать: Номер выхода]
Выражение, используемое для вычисления номера выходного порта, через который агент должен покинуть этот блок. Выражение может зависеть как от агента, так и от каких-то внешних факторов. Результат должен быть целым числом в диапазоне от одного до пяти.Тип значения: int
Локальная переменная: T agent — агент
Значение по умолчанию: uniform_discr(1, 5) — не зависит от поступающих агентов и просто разделяет поток агентов на пять равных частей
- При входе
- Код, выполняемый, когда агент поступает в блок.
- При выходе 1, 2, .. , 5
- Код, выполняемый, когда агент покидает блок через порт out1, out2, ...
Во всех этих действиях актуальный агент доступен как локальная переменная agent.
- in
- Входной порт.
- out1, out2, out3, out4, out5
- Выходные порты.
-
Как мы можем улучшить эту статью?
-