Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛБ4. Модель банковского отделения. Шаг 1. Создание простой модели

.pdf
Скачиваний:
19
Добавлен:
21.01.2021
Размер:
1.42 Mб
Скачать

Здесь delay – это имя нашего объекта Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - зеленым.

Нарисуйте ломаную, которая будет обозначать на анимации очередь к банкомату

1.Нарисуйте ломаную, как показано на рисунке ниже. Чтобы нарисовать ломаную, сделайте двойной щелчок мышью по элементу Ломаная в палитре (при этом его значок должен поменяться на этот: ). Теперь Вы можете рисовать ломаную точка за точкой, последовательно

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

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

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

Задайте ломаную в качестве фигуры анимации очереди

1. На странице свойств объекта queue, введите polyline в поле Фигура анимации.

Задайте круг в качестве фигуры анимации банкомата

1.Введите в поле Фигура анимации имя нашего овала: oval.

2.Выберите из выпадающего списка Тип анимации Одиночная. Большинство объектов Основной библиотеки поддерживает несколько анимационных стилей. Например, очередь может

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

библиотеке,

в

статье Анимация

объектов

Основной

библиотеки.

 

 

 

 

В нашем случае, если банкомат будет

занят, то мы будем показывать в фигуре

банкомата обслуживающегося в нем клиента, а поскольку

единовременно наш

банкомат не

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

 

 

Теперь Вы можете запустить модель и изучить ее поведение. Для ускорения работы модели, переключитесь в режим виртуального времени, щелкнув мышью по кнопке панели инструментов Реальное/виртуальное время. В режиме виртуального времени модель будет выполняться максимально быстро, без привязки модельного времени к реальному.

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

Анимация клиентов

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

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

Создайте анимацию клиента

1.Откройте палитру Картинки. Эта палитра содержит набор картинок, которые наиболее часто используются пользователями AnyLogic при создании моделей.

2. Перетащите элемент Человек из палитры на диаграмму графического редактора:

3.По умолчанию эта картинка будет называться person. Оставьте ее название без изменений, поскольку в дальнейшем мы будем ссылаться на нее в блоке диаграммы нашего процесса именно по этому имени.

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

1.Передвиньте холст диаграммы немного вниз, нажав правую кнопку мыши в графическом редакторе и перетащив мышь, не отпуская кнопки, вниз.

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

3.Передвиньте холст диаграммы обратно.

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

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

1.Выделите объект source в графическом редакторе.

2.В полк Фигура анимации заявки введите имя нашей фигурки человека: person (при этом Вы можете воспользоваться помощником написания кода).

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

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

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

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

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

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

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

2.Перетащите элемент Столбиковая диаграмма из палитры Статистика на диаграмму класса и измените ее размер, как показано на рисунке ниже:

3.Перейдите на страницу Основные панели Свойства. Щелкните мышью по кнопке Добавить элемент данных. При этом появится секция свойств того элемента данных, который будет отображаться на этой диаграмме.

4.Измените Заголовок на ATM utilization.

5.Введите delay.statsUtilization.mean() в поле Значение. Здесь delay - это имя нашего объекта Delay. У каждого объекта Delay есть встроенный набор данных statsUtilization, занимающийся сбором статистики использования этого объекта. Функция mean() возвращает среднее из всех измеренных этим набором данных значений. Вы можете использовать и другие методы сбора статистики, такие, как min() или max(). Полный список методов можно найти на странице документации этого класса набора данных: StatisticsContinuous (на английском языке).

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

7. Измените размер диаграммы в графическом редакторе так, чтобы она приняла следующий вид:

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

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

2.Перейдите на страницу Внешний вид панели Свойства и выберите первую опцию в секции свойств Направление, чтобы столбцы столбиковой диаграммы росли влево.

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

"статистика"StatisticsContinuous, производящего сбор статистики размера очереди объекта Queue.

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

Шаг 4. Добавление клерков

Теперь мы усложним нашу модель, добавив в нее служащих – банковских кассиров. Мы могли бы промоделировать кассиров, как и банкомат, с помощью объектов Delay. Но куда более удобным представляется моделирование кассиров с помощью ресурсов. Ресурс – это специальный объект Основной библиотеки, который может потребоваться заявке для выполнения какой-то задачи. В каждый момент времени ресурс может быть занят только одной заявкой. В нашем примере посетителям банковского отделения (заявкам) необходимо получить помощь у банковских служащих (ресурсов).

Измените диаграмму процесса