Для каждого поступающего агента (будем называть его агентом-оригиналом) блок создает заданное число новых агентов (будем называть их агентами-копиями) и пересылает их дальше через порт outCopy.
Создаваемые блоком агенты могут быть любого типа, они могут быть копиями поступившего в блок агента, а могут и как-то иначе зависеть от его содержимого. Количество создаваемых агентов может изменяться динамически.
Вся операция выполняется в течение нулевого времени — как только агент входит в блок Split, он тут же покидает его вместе с созданными агентами.
Есть два места, где вы можете проинициализировать нового агента: свойства Новый агент и действие При выходе копии. В кодах обоих этих полей агент-оригинал доступен как original, а номер созданного агента — как indexCopy.
В свойстве При выходе копии также доступен и агент-копия, как agent. Вы сами должны задавать свойства создаваемых агентов. Если вам будет нужно скопировать значения каких-то полей агента-оригинала, то это можно сделать в этом поле. Например, если вы создадите параметр attribute как в типе агента-оригинала, так и в типе агента-копии, то вы можете присвоить значение параметра агента-оригинала параметру агента-копии: agent.attribute = original.attribute;
Если вы хотите отслеживать взаимосвязь агента-оригинала и копий этого агента, то вы можете создать у типа агента параметр id и присваивать значение идентификатора оригинала создаваемым агентам. Если впоследствии вы захотите присоединить агентов-копии к оригиналу, то вы сможете воспользоваться этим идентификатором в качестве критерия сравнения агентов. Реальное «воссоединение» может быть реализовано с помощью нескольких блоков Match или с помощью специального кода. В простейшем случае, когда создается только одна копия каждого оригинала, и их порядок не меняется по ходу продвижения по потоковой диаграмме, вы можете собрать одного агента из двух с помощью блока Combine.
-
Выражение, определяющее количество создаваемых агентов-копий.
Тип значения: int
Значение по умолчанию: 1
Локальная переменная: T agent — агент-оригинал -
Тип нового агента, создаваемого этим блоком (или выражение, определяющее, какой агент будет создаваться). Ниже этот тип упоминается как TCopy.
Значение по умолчанию: Agent
Локальные переменные: T original — агент-оригинал
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
Если опция выбрана (true), можно будет изменить размеры агентов, создаваемых этим блоком, задав соответствующие значения в параметрах Длина, Ширина и Высота ниже.
Тип значения: boolean
Локальные переменные:
TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал -
[Параметр виден, если выбрана опция Изменить размеры]
Новая длина создаваемого агента.Тип значения: double
Локальные переменные:
TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал -
[Параметр виден, если выбрана опция Изменить размеры]
Новая ширина создаваемого агента.Тип значения: double
Локальные переменные:
TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал -
[Параметр виден, если выбрана опция Изменить размеры]
Новая высота создаваемого агента.Тип значения: double
Локальная переменная: TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал - Место копии
-
Здесь задается местоположение созданных в этом блоке агентов-копий. Выберите либо опцию Не задано, либо одну из следующих опций:
Узел сети / ГИС — агенты будут помещены в заданный узел сети, в ГИС точке или в ГИС регионе.
Аттрактор — агенты будут появляться в заданном аттракторе.
Точка — точка в координатах x, y, z, в которой будут появляться агенты.
(Широта/долгота) — агенты появляются в точке на карте с заданными координатами Широты и Долготы.
Географ. место — агенты появляются в определенном месте на карте. Вы можете задать это местоположение в параметре Имя места.Имя: locationType
Допустимые значения:
Split.LOCATION_NOT_SPECIFIED — Не задано
Split.LOCATION_XYZ — Точка
Split.LOCATION_NODE — Узел сети
Split.LOCATION_ATTRACTOR — Аттрактор
Split.LOCATION_LATLON — (Широта/долгота)
Split.LOCATION_GEO_PLACE — Географ. место -
[Параметр виден, если Место копии: Узел сети / ГИС]
Узел сети, ГИС точка или ГИС регион, куда отправляются агенты, созданные этим блоком.Локальные переменные:
TCopy agent — агент-копия
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
[Параметр виден, если Место копии: Аттрактор]
Аттрактор, куда отправляются агенты, созданные этим блоком.Тип значения: Attractor
Локальные переменные:
TCopy agent — агент-копия
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
[Параметр виден, если Место копии: Точка]
Координаты точки.Тип значения: double
Локальные переменные:
TCopy agent — агент-копия
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
[Параметр виден, если Место копии: Точка (x, y, z)]
Здесь можно выбрать, где будет находиться точка, в которой окажется созданная копия: на уровне или в сети.Тип значения: boolean destinationInNetwork
Значение по умолчанию: false -
[Параметр виден, если ...расположена: на уровне]
Уровень, на котором расположена точка, куда будет помещена созданная копия.Тип значения: Level
Локальная переменная: TCopy agent — агент-копия -
[Параметр виден, если ...расположена: в сети]
Сеть, в которой расположена точка, куда будет помещена созданная копия.Тип значения: INetwork
Локальная переменная: TCopy agent — агент-копия -
[Параметр виден, если Место копии: (широта, долгота)]
Координаты широты и долготы точки на ГИС карте, где появляются агенты.Тип значения: double
Локальные переменные:
TCopy agent — агент-копия
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
[Параметр виден, если Место копии: Географ. место]
Имя конкретного места на карте ГИС, где будут появляться агенты. Укажите имя как текст в кавычках, например, "London". ГИС карта выполнит поиск места по этому имени. Первый результат в списке результатов ГИС поиска будет использован в качестве местоположения, куда будут помещены агенты.Тип значения: String
Локальные переменные:
TCopy agent — агент-копия
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент) -
[Параметр виден, если Место копии задано одной из опций]
Скорость движения агентов, которых производит этот блок.Тип значения: double
Значение по умолчанию: 10 м/с
Локальные переменные:
T agent — агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
- Добавить копии в
-
Здесь вы можете указать, куда помещаются агенты, созданные этим блоком: в популяцию по умолчанию или в другую популяцию (указанную ниже в поле Популяция агентов).
Синтаксис: boolean addToCustomPopulation
-
[Параметр виден, если выбрана опция Добавить копии в: другую популяцию]
Название популяции агентов, куда помещаются агенты, созданные этим блоком.Тип значения: AgentList
Локальные переменные:
TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал
- При подходе ко входу
-
Код, выполняемый, когда агент-оригинал поступает в блок.
Локальная переменная: T agent — агент
- При выходе копии
-
Код, выполняемый, когда созданный агент покидает блок.
Локальные переменные: TCopy agent — новый агент
int indexCopy — номер нового агента (среди прочих, созданных для данного агента-оригинала; равен 0, если для оригинала был создан один агент)
T original — агент-оригинал - При выходе оригинала
-
Код, выполняемый, когда агент-оригинал покидает блок.
Локальная переменная: T agent — поступивший в блок исходный агент (оригинал)
- in
- Входной порт.
- out
- Выходной порт для агентов-оригиналов.
- outCopy
- Выходной порт для агентов-копий, создаваемых этим блоком.
-
Как мы можем улучшить эту статью?
-