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

Combine

Дожидается поступления двух агентов в порты in1 и in2 (в произвольном порядке), а затем создает нового агента и направляет его на выходной порт. Агент, прибывающий первым, хранится внутри блока, пока не придет другой. Как только прибывает другой агент, созданный агент сразу же покидает блок.

Блок Combine может использоваться для различных целей. Во-первых, он может служить точкой синхронизации, позволяющей одному агенту продолжать свое движение только после прихода другого. Во-вторых, вы можете использовать блок Combine для воссоединения агента с его копией/родственным агентом, созданным блоком Split. В-третьих, Combine может служить альтернативой блоку Pickup, если требуется подобрать только одного агента: для этого нужно просто написать agent.addEntityToContents( agent2 ) в коде действия При выходе.

В этом блоке могут уничтожаться агенты. Но поскольку блок не знает, какие именно агенты будут уничтожены, он не проверяет выполнение у агентов условий, необходимых для их уничтожения (см. описание блока Sink). Обеспечение выполнения всех этих условий входит в вашу обязанность.

Если объединенный агент создается как абсолютно новый, вы можете указать собственный тип агента в параметре Новый агент (объединенный), чтобы продолжить использовать этот тип далее в параметрах блоков диаграммы процесса. В случае, если объединенный агент равен агентам agent1 или agent2, и это не стандартный тип агента, а созданный вами, и вы хотите, чтобы этот тип агента распознавался в следующих блоках диаграммы процесса, укажите этот тип в параметре Тип агента (out) секции Специфические.

Прибывающий первым агент может отображаться на презентации в заданном вами месте.

Параметры

Объединенный агент
Определяет, как будет создаваться новый (объединенный) агент:
Абсолютно новый — новый агент создается путем выполнения пользовательского кода в поле Новый агент (объединенный)
agent1 — новый агент равен первоначальному агенту, поступившему в порт in1 (другой агент уничтожается)
agent2 — новый агент равен первоначальному агенту, поступившему в порт in2 (другой агент уничтожается)
Имя: combineMode
Значение по умолчанию: Абсолютно новый (Combine.NEW)
Возможные значения:
Combine.NEW — Абсолютно новый
Combine.ENTITY1 — agent1
Combine.ENTITY2 — agent2
Новый агент (объединенный)
[Параметр виден, если Объединенный агент: Абсолютно новый]
Тип нового агента (или выражение, определяющее, какой агент будет создаваться). Упоминается ниже как T.
Значение по умолчанию: Agent
Локальные переменные:
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2
Изменить размеры
Если опция выбрана (true), можно будет изменить размеры агентов, создаваемых этим блоком, задав соответствующие значения в параметрах Длина, Ширина и Высота ниже.
Тип значения: boolean
Локальная переменная: agent — агент
Длина
[Параметр виден, если выбрана опция Изменить размеры]
Новая длина создаваемого агента.
Тип значения: double
Локальная переменная: agent — агент
Ширина
[Параметр виден, если выбрана опция Изменить размеры]
Новая ширина создаваемого агента.
Тип значения: double
Локальная переменная: agent — агент
Высота
[Параметр виден, если выбрана опция Изменить размеры]
Новая высота создаваемого агента.
Тип значения: double
Локальная переменная: agent — агент
Место агентов 1
Фигура разметки (узел или путь) первоначального агента, поступившего в блок через порт in1 и ожидающего поступления другого агента.
Синтаксис: entityLocation1
Место агентов 2
Фигура разметки (узел или путь) первоначального агента, поступившего в блок через порт in2 и ожидающего поступления другого агента.
Синтаксис: entityLocation2
Местоположение собранных агентов
Узел или путь, где находится объединенный агент, пока он не перешел в следующий блок.
Синтаксис: AnimationStaticLocationProvider entityLocation

Специфические

Добавить созданных агентов в
Здесь вы можете указать, куда будут помещены агенты, созданные этим блоком, в популяцию по умолчанию или в другую популяцию агентов, которую вы можете выбрать ниже.
Синтаксис: boolean addToCustomPopulation
Популяция агентов
[Параметр виден, если Добавить объединенных агентов в: популяцию по умолчанию]
Имя популяции агентов, куда будут помещены агенты, созданные этим блоком.
Тип значения: AgentList
Локальные переменные:
T agent — созданный агент, покидающий блок
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2
Выталкивать агентов
Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока.
Синтаксис: boolean pushProtocol
Вернуть агента в исходную точку
Если опция выбрана, агенты возвращаются в свое начальное местоположение (узел или путь, где они находились до того, как попали в блок Combine), после того, как покинут фигуры разметки, заданные в параметрах Место агентов 1, 2.
Синтаксис: boolean restoreEntityLocationOnExit

Действия

При входе 1
Код, выполняемый, когда через порт in1в блок поступает агент.
Локальная переменная: T1 agent — агент.
При входе 2
Код, выполняемый, когда через порт in2в блок поступает агент.
Локальная переменная: T2 agent — агент.
При выходе
Код, выполняемый, когда созданный агент покидает блок.
Локальные переменные:
T agent — созданный агент, покидающий блок в данный момент времени
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2

Специфические

Тип агента (in1), Тип агента (in2), Тип агента (out)
Тип агентов:
поступающих в блок через порт in1
поступающих в блок через порт in2
покидающих блок
Возможно, вам понадобится указать собственные типы агентов, чтобы они были доступны в действиях блока.
Тип значения: T1, T2, T

Порты

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