AnyLogic
Развернуть
Размер шрифта

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

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

Изменения в диаграмме процесса

Добавьте обслуживание

  1. Откройте Библиотеку моделирования процессов в панели Палитра и перетащите на диаграмму Main блок Service.
    Блок Service захватывает для агента заданное количество ресурсов, задерживает агента, а затем освобождает захваченные им ресурсы.

  2. Перейдите в панель Свойства блока service.
  3. Измените параметры блока следующим образом:
    • Ко всем кассирам будет вести одна общая очередь. Задайте максимальное количество человек в этой очереди в поле Вместимость очереди: 20.
    • Мы полагаем, что время обслуживания имеет треугольное распределение с минимальным значением равным 2.5, средним - 6, и максимальным - 11 минутам. Введите в поле Время задержки: triangular( 2.5, 6, 11 )

Смоделируйте выбор клиентов

  1. Откройте Библиотеку моделирования процессов в панели Палитра и перетащите на диаграмму процесса Main блок SelectOutput в свободное место между блоками source и queue. Возможно, вам понадобится переместить несколько блоков, чтобы увеличить длину соединителя между ними. Вы можете выделить несколько блоков диаграммы процесса и переместить их все вместе или перемещать блоки по одному.
    SelectOutput является блоком принятия решения. В зависимости от заданного вами условия, агент, поступивший в блок, будет поступать на один из двух выходных портов блока.

  2. Выделите блок selectOutput в диаграмме процесса. В панели Свойства этого блока найдите параметр Выход true выбирается и выберите опцию При выполнении условия. Убедитесь, что в поле Условие стоит выражение randomTrue( 0.5 ).
    В этом случае к кассирам и банкомату будет приходить примерно равное количество клиентов.
  3. Соедините блоки selectOutput и service с другими блоками так, как показано на рисунке ниже:

Добавьте ресурсы для сервиса

  1. Откройте Библиотеку моделирования процессов в панели Палитра и перетащите блок ResourcePool на диаграмму агента Main. Блок ResourcePool задает ресурсы определенного типа (в нашей модели это будут банковские клерки).
  2. Поместите его, например, под блоком service и перейдите в панель Свойства.
  3. Назовите блок tellers.

  4. Задайте число кассиров в поле Кол-во ресурсов: 4.

  5. Блок ResourcePool указывается в блоках, использующих ресурсы, в нашем случае это блок Service. Поэтому нам необходимо изменить свойства блока service диаграммы процесса.
  6. Выделите блок service и перейдите в панель Свойства. Найдите параметр Захватить ресурсы и выберите опцию Ресурсы одного типа. Затем укажите блок tellers, который мы добавили на диаграмму, в параметре Блок ResourcePool. Вы можете выбрать его из выпадающего списка подходящих блоков, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие блоки в графическом редакторе будут обесцвечены).

  7. Поскольку наша модель изменилась, мы должны изменить и ее анимацию.

Добавление фигур разметки пространства

Теперь давайте нарисуем область для ожидания и место обслуживания клиентов кассирами.

Задайте фигуру разметки для электронной очереди

  1. В этот раз мы будем рисовать место ожидания клиентами, используя прямоугольный узел. Вначале откройте палитру Разметка пространства панели Палитра.
  2. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования.
  3. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел достигнет нужной формы. Вы можете редактировать фигуру и после того, как ее рисование завершено.
  4. Назовите эту область waitingArea.
  5. Переключите элемент управления Видимость в положение нет. Таким образом разметка пространства не будет видна на анимации во время выполнения модели.

  6. Выделите щелчком блок service в диаграмме процесса и перейдите в его свойства.
  7. Выберите только что нарисованный нами узел waitingArea в параметре Место агентов (queue)

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

  1. Клиентам банка требуется место, на котором они могли бы находиться во время обслуживания у кассиров. Мы нарисуем такую область, используя прямоугольный узел.
  2. Вначале откройте палитру Разметка пространства панели Палитра.
  3. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования.
  4. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел имеет нужную форму. Вы можете редактировать фигуру и после того, как ее рисование завершено.
  5. Назовите эту область customerPlaces.
  6. Переключите элемент управления Видимость в положение нет.

  7. Мы будем использовать аттракторы, чтобы задать местоположение тех клиентов, которые будут обслуживаться у кассиров. Выделите узел customerPlaces в графическом редакторе и щелкните по кнопке Аттракторы... в свойствах узла. В открывшемся окне Аттракторы укажите число аттракторов 4 в режиме создания Количество аттракторов, затем щелкните OK. Вы увидите, что четыре аттрактора появились в узле customerPlaces на равном расстоянии друг от друга.

  8. Теперь нам необходимо сослаться на эту фигуру в диаграмме процесса. Щелкните блок service и перейдите в панель Свойства этого блока.
  9. Выберите нарисованный нами узел customerPlaces в параметре Место агентов (delay).

Задайте фигуру разметки для кассиров

  1. Кассирам банка также требуется место, где они могли бы находиться во время обслуживания клиентов. Мы нарисуем такую область, используя прямоугольный узел.
  2. Вначале откройте палитру Разметка пространства панели Палитра.
  3. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования.
  4. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел имеет нужную форму. Вы можете редактировать фигуру и после того, как ее рисование завершено.
  5. Назовите эту область tellerPlaces.
  6. Переключите элемент управления Видимость в положение нет.

  7. Мы будем использовать аттракторы, чтобы задать местоположение клерков. Выделите узел tellerPlaces в графическом редакторе и щелкните по кнопке Аттракторы... в свойствах узла. В открывшемся окне Аттракторы укажите число аттракторов 4 в режиме создания Количество аттракторов, затем щелкните OK.
  8. Вы увидите, что четыре аттрактора появились в узле tellerPlaces на равном расстоянии друг от друга, но они направлены не в ту сторону. Выделите все аттракторы, зажав клавишу Shift и щелкнув по ним мышью, и потом выберите 180.0 в параметре Ориентация секции свойств Местоположение и размер.

  9. Щелкните блок tellers в диаграмме процесса и перейдите в его свойства.
  10. Выберите нарисованный нами узел tellerPlaces в параметре Базовое местоположение (узлы)

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

Добавление 3D объектов

Давайте добавим 3D фигуры клерков в нашу модель. Мы создадим новый тип ресурсов для анимации клерков.

Создайте новый тип ресурсов

  1. Откройте Библиотеку моделирования процессов в панели Палитра.
  2. Перетащите элемент Тип ресурса в графический редактор.

  3. Откроется диалоговое окно Мастера создания агентов на шаге Создание нового типа агента. Введите Teller в поле Имя нового типа, оставьте опцию Создать новый тип агента "с нуля" выбранной. Нажмите Далее.

  4. Выберите опцию 3D для типа анимации и фигуру анимации Служащий из списка 3D фигур.

  5. Щелкните Готово. Новая диаграмма Teller автоматически откроется. Вы можете найти 3D фигуру Служащий в начале координат. Переключитесь обратно на диаграмму Main.

Настройте использование нового типа ресурсов в блок-схеме

  1. На диаграмме Main, выделите блок tellers в графическом редакторе.
  2. Выберите тип ресурсов Teller в выпадающем списке параметра Новый ресурс.

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

Добавьте столы для клерков

  1. Откройте палитру 3D Объекты в панели Палитра.
  2. Перетащите четыре 3D фигуры Стол из секции палитры Офис в графический редактор и поместите их в узел tellerPlaces. В диалоговом окне Автомасштабирование 3D объекта щелкните по кнопке Да.
  3. Расположите столы на аттракторах, так как аттракторы обозначают место, где стоят клерки

  4. Вы заметите, что они стоят не той стороной к клеркам. Выделите все столы методом Shift + щелчок и перейдите в их свойства.
  5. В секции Расположение измените параметр Поворот Z: -90.0 градусов.
  6. При необходимости, выровняйте расположение всех восьми аттракторов и столов.

Теперь вы можете запустить модель и увидеть в 3D анимации, как некоторые клиенты идут к банкомату, а другие обслуживаются у столов клерков.

Демо-модель: Bank Office - Phase 3 Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.
Как мы можем улучшить эту статью?