SelectOutput5

Блок направляет входящих агентов в один из пяти выходных портов в зависимости от выполнения заданных (детерминистических или заданных с помощью вероятностей) условий.

У блока есть три режима работы:

Поступивший агент покидает блок SelectOutput5 в тот же момент времени.

Блок может использоваться для сортировки агентов согласно заданному критерию, для случайного разделения потока агентов на части и т.д.

Иногда требуется иметь более пяти выходов. Используя блоки SelectOutputIn и SelectOutputOut, вы можете создать один большой блок SelectOutput с требуемым количеством выходов.

Параметры

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

Порты

in
Входной порт.
out1, out2, out3, out4, out5
Выходные порты для агентов, для которых Условие 1, Условие 2 и т.д. возвращают true.