Сбор статистики по агентам

AnyLogic поддерживает удобный механизм сбора агрегированной статистики по популяции агентов.

Поддерживается следующие типы функций сбора статистики: Кол-воСуммаСреднееМин. и Макс.

При необходимости СуммаСреднееМин. и Макс. значения могут вычисляться только для тех агентов, для которых будет выполнено дополнительное Условие. Например, мы хотим сосчитать средний возраст потребителей продукта в агентной модели Диффузии по Бассу. Пусть агенты в нашей модели представлены реплицированным объектом типа Person. У этого типа есть диаграмма состояний с состояниями PotentialAdopter и Adopter и параметр age, задающий возраст человека. В этом случае наша функция сбора статистики должны выглядеть так:


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

  1. Выделите популяцию агентов в графическом редакторе или в панели Проекты.
  2. Перейдите в секцию Статистика панели Свойства.
  3. Щелкните мышью по кнопке  Добавить ф-ю сбора статистики. При этом откроется новый раздел свойств, в котором вы сможете задать свойства создаваемой функции.
  4. Измените имя функции в поле Имя. Это имя будет использоваться для вызова данной функции.
  5. Выберите тип функции сбора статистики с помощью группы кнопок Тип
  6. Задайте Выражение и/или Условие с помощью расположенных ниже элементов управления. Текущий элемент реплицированного объекта (т.е. тот, по которому в текущий момент проходит итерационный цикл функции сбора статистики) доступен в этих полях как item
  7. Чтобы добавить другие функции сбора статистики, пожалуйста, повторите шаги 3-6. Если какая-то ранее заданная функция вам больше не нужна, вы можете удалить ее, щелкнув по кнопке  в соответствующем разделе свойств.
Заданную функцию сбора статистики можно будет вызывать, как и любую другую функцию: написав ее имя, после которого должны следовать круглые скобки. То есть, чтобы произвести сбор статистики с помощью заданной на приведенном выше рисунке функции, нужно будет написать peopleStat()