Расположение агентов в непрерывном пространстве

Местоположение агента в непрерывном пространстве определяется двумя координатами (x,y) типа double. Существует несколько способов задать начальное расположение агентов в непрерывном пространстве:

Выбор типа расположения агентов

Чтобы задать тип расположения для популяции агентов

  1. Откройте панель Свойства для типа агента, в котором живет популяция агентов (например, Main).
  2. Откройте секцию свойств Пространство и сеть.
  3. Выберите популяции агентов, которые хотите поместить в эту среду.
  4. Выберите Тип расположения и, если вы выберете не тип Задается пользователем, то установите флажок Применить при запуске.

Тип расположения Задается пользователем подразумевает, что вы сами берете на себя ответственность за расположение агентов и напишете соответствующий код, например, в свойстве Действие при запуске объекта Main. AnyLogic поддерживает следующие стандартные типы расположения агентов в непрерывном пространстве:

Случайное
агенты случайно и равномерно распределяются
в пределах размерностей пространства

Кольцо
агенты равномерно распределяются по кольцу, диаметр
которого меньше меньшей размерности пространства

Упорядоченное
агенты упорядоченно распределяются
в пределах размерностей пространства

Пружинящая масса
агенты располагаются аналогично системе с пружинящими массами, где агенты представляют собой массы, а их соединения - пружины. Этот тип зависит от выбранного типа сети

Тип расположения агентов в пространстве может быть также изменен динамически во время выполнения модели посредством программного интерфейса среды, например, с помощью методов:

setLayoutType( type ); //устанавливает принятый по умолчанию тип расположения, агенты при этом не изменяют своих местоположений
applyLayout(); //производит перестановку агентов согласно текущему типу сети

Значение параметра type может быть равно одной из этих констант:

Agent.LAYOUT_RANDOM (случайное), Agent.LAYOUT_ARRANGED (упорядоченное), Agent.LAYOUT_RING (кольцо), Agent.LAYOUT_SPRING_MASS (пружинящая масса), Agent.USER_DEFINED (задается пользователем)

Начальное расположение в узле

Чтобы задать начальное местоположение агентов в популяции

  1. Щелкните популяцию агентов, чтобы открыть их Свойства.
  2. В секции Начальное местоположение панели свойств популяции агентов выберите опцию Расположить агентов: в узле.
  3. В свойстве Узел, которое появится ниже, укажите имя узла сети, куда вы хотите поместить агента или популяцию: выберите узел из выпадающего списка или выберите его в графическом редакторе.
  4. Иначе, если вам нужно задать здесь разные узлы сети для агентов, вы можете написать выражение Java, которое будет возвращать различные узлы в зависимости от выполнения условий.

Начальное расположение в точке

Чтобы задать начальное местоположение агентов в популяции

  1. Щелкните популяцию агентов, чтобы открыть их Свойства.
  2. В секции Начальное местоположение панели свойств популяции агентов выберите Расположить агентов: в указанной точке.
  3. Задайте координаты местоположения в свойствах X, Y и Z.

Задание начального местоположения с помощью функции

Начальное расположение агентов может задаваться либо в типе агента, либо "централизованно" средой.

Вы можете задать начальное местоположение агентов, вызвав функцию setXYZ() в поле При запуске (в секции Действия агента свойств типа агента верхнего уровня).

void setXYZ(double x, double y, double z) - задает координаты местоположения агентов. Используется только для того, чтобы инициализировать местоположение агентов. Предполагается, что агент не движется.
Параметры:
x - X-координата места
y - Y-координата места
z - Z-координата места

Демонстрационная модель: Agent Network and Layouts Demo