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

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

  1. Перетащите элемент Популяция агентов  из палитры Основная на графическую диаграмму того класса активного объекта, куда Вы хотите поместить популяцию (обычно - Main).
  2. Вы увидите окно Мастера создания агентов:
  1. Задайте имя класса, в котором Вы будете задавать структуру агента, в поле Имя класса агента.
  2. Задайте имя объекта, который будет моделировать популяцию агентов, в поле Имя популяции агентов.
  3. Задайте Начальное количество агентов. Вы можете менять количество агентов по ходу выполнения модели (например, создать изначально ноль агентов, и добавить всех агентов динамически на старте модели, написав соответствующий код в поле Действие при запуске корневого класса эксперимента).
  4. Выберите, хотите ли Вы поместить популяцию агентов в среду. Если нет, то можете просто щелкнуть по кнопке Готово и завершить процесс создания агентов. Если да, то Вы можете выбрать, хотите ли Вы поместить их в уже существующую среду (в этом случае выберите опцию Поместить в существующую и выберите имя требуемой среды из расположенного справа от опции поля), или создать для этого новую среду - в этом случае выберите опцию Создать новую, щелкните по кнопке Далее и настройте параметры создаваемой среды на следующей странице Мастера (см. рисунок ниже). 

  1. Здесь Вы можете задать имя объекта "среда" (в поле Имя среды), выбрать, в какое пространство Вы хотите поместить агентов (Мастер предлагает на выбор Непрерывное2D и Дискретное2D типы пространств).
    AnyLogic также поддерживает Непрерывное3D и ГИС-пространство, эти типы пространств можно будет выбрать впоследствии (выбрав соответствующие опции в свойстве Тип пространства, расположенном на странице свойств Агент класса агента, а также на странице Дополнительные среды .
  2. Выбрав тип пространства, задайте его размерность в полях Ширина и Высота (в случае дискретного пространства, также нужно указать количество столбцов и строк, на которые разбито это пространство).
  3. Группа кнопок Сеть позволяет выбрать тип сети контактов агентов. Подробнее о возможных типах сетей Вы можете прочесть здесь.
  4. Когда закончите, нажмите кнопку Готово.

Когда Вы закончите создание популяции агентов, Вы увидите на диаграмме объекта верхнего уровня (например, Main) объект со значком - это и есть реплицированный объект (количество элементов в нем равно заданному Вами в Мастере начальному количеству агентов):

Вы можете открыть свойства этого объекта - Вы увидите, что этот объект Реплицированный, а в поле Начальное количество объектов введено заданное Вами число.

Механизм репликации объектов позволяет создавать любое необходимое Вам количество агентов (их число может задаваться параметром) и предоставляет возможность их динамического добавления и удаления.

Этот реплицированный объект будет представлять собой заданное количество экземпляров класса агента. Вы можете увидеть созданный класс агента (на приведенном ниже рисунке - это класс Person) в дереве модели: 

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

Вы можете заметить, что значок этого класса  будет отличаться от значка обычного класса активного объекта . Это связано с тем, что этот класс объявлен агентом (на странице основных свойств этого класса установлен флажок Агент). Объявленный агентом класс активного объекта становится подклассом встроенного в AnyLogic класса Agent, расширяющего, в свою очередь, класс ActiveObject, и тем самым получает доступ к функциональности AnyLogic, специально разработанной для агентного моделирования:

Если ни одна из перечисленных выше возможностей Вам не нужна, и к тому же в Вашей модели планируется моделировать достаточно большие количества агентов, Вы можете моделировать агентов с помощью простых реплицированных объектов, не объявляя их агентами (т.e. оставить флажок Агент сброшенным), потому что добавление функциональности агента будет занимать дополнительную память (минимум 36 байт на одного агента).

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