AnyLogic предоставляет пользователю удобные средства для сбора статистики по работе блоков диаграммы процесса. Блоки Библиотеки моделирования процессов самостоятельно производят сбор основной статистики.
Мы можем, например, просмотреть интересующую нас статистику (скажем, статистику занятости банкомата и длины очереди) с помощью диаграмм.
Добавьте диаграмму для отображения средней занятости банкомата
- Откройте палитру Статистика. Эта палитра содержит элементы сбора данных и статистики, а также диаграммы для визуализации данных и результатов моделирования. Перетащите элемент Столбиковая диаграмма из палитры Статистика на диаграмму:
- Перейдите в секцию Данные свойств столбиковой диаграммы. Щелкните по кнопке Добавить элемент данных, чтобы задать данные для отображения в диаграмме.
- Измените Заголовок на Использование банкомата.
- Введите ATM.statsUtilization.mean() в поле Значение. Здесь ATM - это имя нашего блока Delay. У каждого блока Delay есть встроенный набор данных statsUtilization, занимающийся сбором статистики использования этого блока. Функция mean() возвращает среднее из всех измеренных этим набором данных значений. Вы можете использовать и другие методы сбора статистики, такие, как min() или max().
- Перейдите в секцию Легенда панели Свойства. Измените расположение легенды относительно диаграммы (мы хотим, чтобы она отображалась справа).
- И измените ее размер:
Добавьте диаграмму для отображения средней длины очереди
- Аналогичным образом добавьте еще одну столбиковую диаграмму. Измените ее размер так, как показано на рисунке:
- Перейдите в секцию Внешний вид панели Свойства и выберите последнюю опцию параметра Направление столбцов, чтобы столбцы столбиковой диаграммы росли влево. Также измените положение легенды в секции Легенда (как показано на рисунке ниже).
- В секции Данные свойств диаграммы щелкните мышью по кнопке Добавить элемент данных.
-
Задайте Заголовок: Длина очереди. Задайте Значение: queue.statsSize.mean()
Здесь statsSize - это имя объекта типа "статистика" StatisticsContinuous, производящего сбор статистики размера очереди блока Queue.
Запустите модель и понаблюдайте за занятостью банкомата и средней длиной очереди с помощью только что созданных диаграмм.
Мы хотим знать, сколько времени клиент проводит в банковском отделении. Мы соберем эту статистику с помощью блоков TimeMeasureStart и TimeMeasureEnd из Библиотеки моделирования процессов и отобразим собранную статистику распределения времен обслуживания клиентов с помощью гистограммы. Чтобы измерить время, проведенное агентами на определенном отрезке диаграммы процесса, мы должны разместить эти блоки соответственно на входе в интересующий нас отрезок и на выходе из него. Первый блок хранит время прохождения агента через блок, а второй измеряет время, которое агент провел на отрезке диаграммы процесса после того, как покинул первый блок.
Добавьте блоки измерения времени в диаграмму процесса
- Измените диаграмму процесса так, чтобы между блоком source и блоком selectOutput появилось место для нового блока.
- Откройте Библиотеку моделирования процессов в панели Палитра и добавьте блок TimeMeasureStart в освободившееся место. Убедитесь, что порты блока соединены к соседним блокам.
- Перетащите блок sink вправо.
- Перетащите блок TimeMeasureEnd из Библиотеки моделирования процессов на графический редактор и разместите его перед блоком sink.
- Убедитесь, что входной порт блока соединен с блоками ATM и service, а выходной - с блоком sink.
- Чтобы рассчитать распределения времен для агентов, в свойствах каждого блока TimeMeasureEnd должен быть указан как минимум один блок TimeMeasureStart. Откройте свойства вашего блока и задайте блок TimeMeasureStart в параметре Блоки TimeMeasureStart.
Добавьте гистограмму для отображения собранной статистики
- Чтобы добавить гистограмму на диаграмму агента, перетащите элемент Гистограмма из палитры Статистика в графический редактор. Измените ее размер.
- Укажите, какой элемент сбора данных хранит данные, которые вы хотите отобразить на вашей гистограмме: в секции Данные свойств гистограммы щелкните мышью по кнопке Добавить данные.
- Измените Заголовок отображаемых данных на Распределение времени в системе.
-
Введите timeTotal.distribution в поле Данные.
timeTotal - имя блока TimeMeasureEnd, который собирает распределение времен пребывания агентов в системе.
Запустите модель. Включите режим виртуального времени и понаблюдайте за тем, какой вид примет распределение времен пребывания клиентов в системе.
Демо-модель: Bank Office - Phase 4 Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.-
Как мы можем улучшить эту статью?
-