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

SelectOutput5

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

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

  • Условия — Пользователю предлагается задать 4 условия. Когда в блок поступит новый агент, эти условия будут поочередно вычисляться одно за другим. Если будет выполнено условие 1, то агент покинет блок через порт 1, если нет, то будет проверяться условие 2, и так далее. Если не будет выполнено ни одно из условий, то агент покинет блок через последний порт. Каждое условие может зависеть как от агента, так и от каких-то внешних факторов.
  • Вероятности — Пользователю предлагается задать 5 вероятностей для пяти выходных портов (если их сумма не равна 1, то они нормализуются). Агент будет перенаправляться на тот или другой выходной порт, выбор которого будет случайно определяться в соответствии с заданными вероятностями.
  • Номер выхода — Пользователь должен предоставить выражение, которое возвращает целое число в диапазоне от одного до пяти. Когда агент попадает в этот блок, выражение вычисляется, и результат означает номер выходного порта, через который агент должен покинуть этот блок. Выражение может зависеть как от агента, так и от каких-то внешних факторов.

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

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

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

Параметры

Использовать
Режим работы блока. Определяет, как будет производиться маршрутизация агентов: будут ли для определения того, на какой выход нужно перенаправлять агентов, использоваться заданные Условия, будут ли агенты случайно распределяться в соответствии с тем, какие для выходных портов заданы Вероятности, или же заданное выражение будет вычисляться, чтобы получить номер выходного порта (Номер выхода), через который агент должен покинуть этот блок.
Имя: type
Изменить значение: set_type(новое значение)
Допустимые значения:
SelectOutput5.TYPE_PROBABILITIES — Вероятности
SelectOutput5.TYPE_CONDITIONS — Условия
SelectOutput5.TYPE_EXIT_NUMBERS — Номер выхода
Вероятность 1 .. 5
[Параметр виден, если Использовать: Вероятности]
Выражение, вычисляющее вероятность того, что текущий агент покинет блок через порт out1 .. 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.
Как мы можем улучшить эту статью?