Шаг 1. Создание 1000 агентов

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

  1. Создайте новую модель Mixed Method Model - AB Market and SD Supply Chain:


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

  1. Выберите шаблон Агентное моделирование и перейдите к следующей странице мастера для конфигурации создаваемой модели.


  1. Нам нужно создать отдельный класс для потребителей, в котором мы будем задавать поведение потребителя. Заключив это поведение в класс, мы можем создать множество экземпляров этого класса, которые будут представлять отдельных потребителей. Задайте Consumer в качестве имени этого класса агента. Класс будет автоматически объявлен как Агент (на странице основных свойств этого класса будет установлен флажок Агент). Это позволит использовать некоторые встроенные возможности AnyLogic по поддержке агентов, например, механизм взаимодействия агентов, выбрать тип пространства и легко задать их расположение в нем и т.д.
    Задайте Начальное количество агентов в модели: 1000.  


  1. На следующей странице Мастера создания модели, оставьте в поле Анимация: Человечек. Здесь Вы выбираете фигуру, которая будет визуально представлять потребителя на анимации модели. 
    Измените размер прямоугольной области, в которой будут отображаться агенты на анимации. Задайте Ширину 900 и Высоту 300.


  1. Обычно управляемое событиями поведение агента задается с помощью диаграммы состояний, и Мастер создания моделей предлагает также создать и диаграмму состояний, задающую весьма простое поведение. Но мы не будем использовать эту опцию, поскольку мы хотим нарисовать диаграмму состояний с нуля.
    Завершите процесс создания модели.

Теперь мы закончили создание простой агентной модели. Шаблон агентной модели содержит два класса: один для агента (в нашем случае это Consumer) и один для окружающей среды (Main).


В новой модели всегда есть класс активного объекта Main, чья диаграмма автоматически открывается в графическом редакторе. Объект Main представляет собой верхний уровень иерархии нашей модели, здесь мы зададим взаимодействие между агентной и системно-динамической частями нашей модели. 

Вы можете увидеть на диаграмме класса Main элемент environment, объект people, а также фигуру анимации потребителя. 

  1. Переместите анимацию вложенного объекта потребителя на диаграмме класса Main в точку (50,250).

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

Объект people представляет собой реплицированный объект, изначально содержащий 1000 элементов (поскольку именно такое количество мы задали в Мастере создания моделей). Квадратные скобки [..] рядом с именем означают, что этот объект - реплицированный.

Каждый элемент этого реплицированного объекта моделирует одного отдельного потребителя. Количество таких элементов - потребителей может быть изменено в свойстве Количество этого вложенного объекта.
  1. Измените имя вложенного объекта с people на consumers. consumers будет именем этой популяции агентов.

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

  1. На диаграмме класса потребителя Consumer Вы увидите небольшое изображение человечка (рядом с началом координат, в верхнем левом углу). Смените цвет заливки этой картинки (в действительности, являющейся кривой) на серый. Каждый потребитель будет отображаться на анимации модели такой фигуркой. Цвет фигуры, равно как и другие ее свойства, могут быть впоследствии изменены, индивидуально для каждого потребителя.
  1. Щелкните в дереве проектов по элементу эксперимента Simulation:Main, перейдите на страницу его свойств Окно и задайте размер окна презентации, введя в поле Ширина 1000, а в поле Высота 600.

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

 
  1. Запустите модель.

Вы увидите окно наподобие показанного на рисунке ниже. В модели нет динамики, поэтому с течением времени ничего не происходит.

Контрольная модель: AB Market and SD Supply Chain - Phase 1


          Постановка задачи

          Шаг 2. Добавление простого поведения агента