Шаг 4. Добавление статистики модели

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

Мы можем, например, просмотреть интересующую нас статистику (скажем, статистику занятости банкомата и длины очереди) с помощью диаграмм.

Сбор статистики использования ресурсов

Добавьте диаграмму для отображения средней занятости банкомата

  1. Откройте палитру Статистика. Эта палитра содержит элементы сбора данных и статистики, а также диаграммы для визуализации данных и результатов моделирования. Перетащите элемент Столбиковая диаграмма из палитры Статистика на диаграмму:

  1. Перейдите в секцию Данные свойств столбиковой диаграммы. Щелкните кнопку  Добавить элемент данных, чтобы задать данные для отображения в диаграмме.
  2. Измените Заголовок на ATM utilization.
  3. Введите  ATM.statsUtilization.mean() в поле Значение. Здесь ATM - это имя нашего объекта Delay. У каждого объекта Delay есть встроенный набор данных statsUtilization, занимающийся сбором статистики использования этого объекта. Функция mean() возвращает среднее из всех измеренных этим набором данных значений. Вы можете использовать и другие методы сбора статистики, такие, как min() или max().

  1. Перейдите в секцию Легенда панели Свойства. Измените расположение легенды относительно диаграммы (мы хотим, чтобы она отображалась справа).

  1. И измените ее размер:

Добавьте диаграмму для отображения средней длины очереди

  1. Аналогичным образом добавьте еще одну столбиковую диаграмму. Измените ее размер так, как показано на рисунке:

  1. Перейдите в секцию Внешний вид панели Свойства и выберите последнюю опцию параметра Направление столбцов, чтобы столбцы столбиковой диаграммы росли влево. Также измените положение легенды в секции Легенда (как показано на рисунке ниже).

  1. Добавьте элемент данных, который будет отображаться на диаграмме, в секции Данные. Задайте Заголовок: Queue length и задайте Значение: queue.statsSize.mean()
    Здесь statsSize - это имя объекта типа "статистика" StatisticsContinuous, производящего сбор статистики размера очереди объекта Queue.

Запустите модель и пронаблюдайте за занятостью банкомата и средней длиной очереди с помощью только что созданных диаграмм.

Сбор статистики по времени обслуживания

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

Вначале нам необходимо добавить два параметра в нашу модель.

Добавьте параметры

  1. Переключитесь в панель Проекты. Дважды щелкните по типу агента Customer, чтобы открыть его диаграмму. Нам необходимо создать параметры на диаграмме агента Customer, так как мы хотим собирать статистику клиентов по времени их обслуживания.
  2. Откройте палитру Основная в панели Палитра
  3. Перетащите два элемента Параметр на диаграмму Customer.
  4. Назовите параметры startWaiting и enteredSystem, оставьте тип double, заданный по умолчанию

  1. Мы продолжим разрабатывать нашу модель на диаграмме Main.

Добавьте элементы сбора статистики по времени ожидания клиентов и времени пребывания клиентов в системе. Эти элементы будут запоминать соответствующие значения времен для каждого клиента и предоставят пользователю стандартную статистическую информацию: среднее, минимальное, максимальное из измеренных значений, среднеквадратичное отклонение, доверительный интервал для среднего и т.д.).

Добавьте элементы сбора данных

  1. Чтобы добавить объект сбора данных гистограммы на диаграмму, перетащите элемент Данные гистограммы с палитры Статистика на диаграмму агента Main

  1. Задайте свойства элемента. 

  1. Создайте еще один элемент сбора данных гистограммы. Ctrl+перетащите (Mac OS: Cmd+перетащите) только что созданный объект данных гистограммы, чтобы создать его копию. Измените Имя этого элемента на timeInSystemDistr.

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

Измените свойства блоков диаграммы процесса

  1. Измените свойства объекта source:

  1. Измените свойства объекта queue:

  1. Измените свойства объекта sink:

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

Теперь давайте добавим на диаграмму нашего типа агента гистограммы, которые будут отображать собранную нами временную статистику.

 Добавьте две гистограммы для отображения распределений времен ожидания клиента и пребывания клиента в системе

  1. Чтобы добавить гистограмму на диаграмму агента, перетащите элемент Гистограмма из палитры Статистика в то место графического редактора, куда вы хотите ее поместить. Измените ее размер при необходимости.

  1. Укажите, какой элемент сбора данных хранит данные, которые вы хотите отображать на гистограмме: в секции Данные свойств гистограммы щелкните мышью по кнопке  Добавить данные и измените Заголовок отображаемых данных на Waiting time distribution.
    Введите в поле Данные имя соответствующего элемента: waitTimeDistr

  1. Добавьте еще одну гистограмму и расположите ее под ранее добавленной. 
    Измените Заголовок отображаемых данных на Time in system distribution.
    В поле Данные введите имя элемента, хранящего данные, которые будут отображаться на гистограмме: timeInSystemDistr.

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

Контрольная модель: Bank - Phase 4


          Шаг 3, Добавление клерков