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

Создание популяции агентов

Элемент популяция агентов представляет собой заданное количество агентов одного типа. AnyLogic избавляет от необходимости добавления на диаграмму большого количества идентичных агентов — вместо этого вы создаете один элемент — популяцию — и указываете, сколько агентов этого типа должны быть созданы в модели.

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

  1. Перетащите элемент Агент из палитры Агент на графическую диаграмму того типа агентов, куда вы хотите поместить популяцию (обычно — Main). Вы увидите окно Мастера создания агентов: Создание агентов.
  2. Сначала выберите, хотите ли вы создать популяцию агентов, единственного агента, или вы хотите задать тип агента. Щелкните по кнопке Популяция агентов. Мастер откроет следующий шаг.

  3. Здесь вам нужно выбрать, хотите ли вы использовать один из встроенных шаблонов, чтобы создать агент популярного типа (в данный момент мы предлагаем вам шаблоны типов агентов Person и Vehicle) или вы создадите новый тип агента "с нуля".
  4. Выберите опцию Создать новый тип агента с "нуля". На этой же странице Мастера укажите Имя нового типа (например, Patient) и Имя популяции.
  5. Если вы планируете использовать агенты этого типа в диаграммах процесса (например, в диаграммах Библиотеки Процессов Моделирования, или как пешеходов в Пешеходной библиотеке), поставьте флажок в опции Агент будет использоваться в диаграммах процесса и затем выберите роль этого агента из выпадающего списка справа от опции. Щелкните Далее, чтобы продолжить.

  6. Укажите тип анимации агента. Здесь вы можете выбрать также какую-либо фигуру анимации. Если вы хотите, чтобы агенты отображались и в 2D, и в 3D, выберите опцию 3D и затем выберите требуемую фигуру из списка ниже. Если вам необходимо, чтобы фигура отображалась только в 2D, выберите опцию 2D. Далее вы сможете выбрать подходящую фигуру из списка, обратите внимание, что для 2D объектов список короче. Если ни одна фигура анимации вам не подходит, выберите опцию Нет. Вы можете нарисовать анимацию для агентов позже, когда это понадобится. Щелкните Далее, чтобы перейти на следующий шаг.

  7. Укажите параметры для этого типа агентов. Щелкните < добавить... > в списке, чтобы создать новый параметр. Выделите щелчком мыши параметр в списке и укажите его имя, тип и значение по умолчанию на панели настроек справа. Чтобы удалить параметр, выделите его в списке и щелкните "крестик" под списком. Задав все необходимые параметры и их свойства, щелкните Далее.

  8. На следующем этапе Мастера вы можете задать начальное количество агентов в популяции. Выберите опцию Создать популяцию с ... агентами и укажите число агентов в поле редактирования. Выберите опцию Я хочу добавить агентов позже, чтобы создать пустую популяцию и добавить агентов позже динамически (например, в коде При запуске), подробнее вы можете прочесть здесь. Щелкните по кнопке Далее, чтобы продолжить.

  9. Здесь вы можете настроить среду, в которой будут находиться агенты. Выберите Тип пространства: Непрерывное, ГИС или Дискретное и настройте его параметры ниже. Выбрав тип пространства, задайте его размеры, ширину и высоту, в полях редактирования опции Размер (в случае, если пространство дискретное, вам также необходимо задать количество строк и столбцов в полях редактирования опции Ячейки). Выпадающий список Тип сети позволяет вам выбрать, как будет задаваться сеть агентов. Вы можете больше информации о сетях агентов здесь. Например, мы выбрали тип сети: Задается пользователем.

  10. Щелкните Готово, чтобы завершить процесс.

Закончив создание популяции агентов, вы увидите этот элемент на диаграмме процесса — это популяция агентов. Популяция содержит заданное количество агентов — экземпляров этого типа агентов. Вы можете увидеть созданный вами тип агентов в структуре модели (на рисунке ниже это Patient):

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

Доступ к агентам популяции

Получить доступ к определенному агенту популяции, скажем, people можно с помощью метода people.get(i), которому в качестве аргумента i нужно передать номер (индекс) этого агента в популяции (нумерация начинается с 0, номер последнего агента можно получить как people.size() - 1).

Как мы можем улучшить эту статью?