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

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