УДК 004.94:519.872.2

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ПРОЦЕССА ОБСЛУЖИВАНИЯ ЧИТАТЕЛЕЙ БИБЛИОТЕКИ СРЕДСТВАМИ ПРОГРАММНОГО КОМПЛЕКСА ANYLOGIC

Буранбаев Айдар Маратович
Уфимский государственный авиационный технический университет
студент

Аннотация
Данная статья посвящена описанию имитационной модели системы массового обслуживания с общей очередью и несколькими каналами обслуживания на основе программного комплекса AnyLogic (на примере организации процесса выдачи книг по запросам читателей библиотеки).

Ключевые слова: имитационное моделирование, логистика, математическое моделирование, система массового обслуживания


SIMULATION MODELLING OF THE PROCESS OF SERVING LIBRARY USERS USING ANYLOGIC SOFTWARE SOLUTION

Buranbayev Aidar Maratovich
Ufa State Aviation Technical University
student

Abstract
This article covers the simulation of queueing model consisting of a single queue and multiple servers using AnyLogic software solution (the example in the article demostrates the model as the process of distributing requested books to library customers).

Keywords: logistics, mathematical modelling, queueing theory, simulation modelling


Библиографическая ссылка на статью:
Буранбаев А.М. Имитационное моделирование процесса обслуживания читателей библиотеки средствами программного комплекса AnyLogic // Современная техника и технологии. 2016. № 8 [Электронный ресурс]. URL: http://technology.snauka.ru/2016/08/10481 (дата обращения: 28.05.2017).

Имитационное моделирование – один из самых эффективных способов описания и анализа процессов. Оно является частным случаем математического моделирования, но в отличие от него в имитационном моделировании присутствует возможность достаточно точно описывать большое число объектов, для которых не разработаны аналитические модели или методы решения их моделей.

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

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

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

Рисунок 1 – Блок-схема обслуживания посетителей

Теперь перейдём к непосредственному моделированию системы массового обслуживания. Для этого достаточно будет стандартных блоков программы. Ниже представлено изображение созданной модели.


Рисунок 2 – Моделирование деятельности библиотеки

Для незнакомых с инструментарием AnyLogic приведём описание каждого блока системы. Индекс n обозначает номер канала обслуживания.

Таблица 1 – Описание блоков системы AnyLogic

Название блока

Тип блока

Описание

Посетители

Source

Равномерный поток с почасовой интенсивностью генерации заявок

ОчВход/ОчВыход

TimeMeasureStart/TimeMeasureEnd

Подсчёт времени, проводимого в очереди

Очередь

Queue

Очередь неограниченного размера

Старт/Финиш

TimeMeasureStart/TimeMeasureEnd

Подсчёт времени в ожидании книги

Библиотекарь[n]

SelectOutput

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

Ушёл[n]

Hold

Блокируется при уходе библиотекаря в хранилище

Хранилище[n]

Delay

Triangular-распределение затраченного на поход в хранилище времени

Поиск[n]

Delay

Normal-распределение затраченного на поиск книг времени

Найдены[n]

Queue

Очередь перед блокиратором

Обратно[n]

Hold

Блокируется до нахождения всех книг

Выдача[n]

Delay

Triangular-распределение затраченного на возвращение

Обслужены

Sink

Заявка уничтожается

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

Таблица 2 – Параметры агента

Название параметра

Назначение

free[n]

Подсчёт времени бездействия библиотекарей через событие event

busy[n]

Булевый оператор бездействия, при false идёт подсчёт времени бездействия

req[n]

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

Стоит упомянуть, что в AnyLogic допускается использование языка Java для описания событий, их обработчиков и прочего. Например, упомянутое в таблице выше событие event подсчитывает время бездействия каждого библиотекаря, активируясь каждую единицу модельного времени:

System.out.println(“—–”);

if (this.busy1==false) {this.free1++;} else {this.free1=0;} System.out.println(free1);

if (this.busy2==false) {this.free2++;} else {this.free2=0;} System.out.println(free2);

if (this.busy3==false) {this.free3++;} else {this.free3=0;} System.out.println(free3);

System.out.println(“—–”);

В некоторых блоках модели также используется Java-код, продемонстрируем её в ещё одной таблице.

Таблица 3 – Использование Java-кодов в модели

Название блока

Код блока

Очередь

При входе: queuesize.update()

Библиотекарь[n]

Условие (в зависимости от количества следующих библиотекарей, в данной случае такой один): Ушёл[n].isBlocked()==false && !(agent.free[n+1]==max(agent.free[n+1],agent.free[n]) && Ушёл[n+1].isBlocked()==false)

При выходе (true): agent.busy[n]=true; agent.free[n]=0;

Хранилище[n]

Время задержки: triangular( 0.5, 1, 1.5 )

При входе: if (Хранилище[n].size()==4 || Очередь.size()==0) Ушёл[n].block()

При подходе к выходу: agent.req[n]=Хранилище[n].size(); if(Хранилище[n].size()>0) {reqdistr[n].update(); reqdistr_sum.update();}

Поиск[n]

Время задержки: normal(agent.req[n]*0.2,agent.req[n]*3)

При входе: Обратно[n].block()

Найдены[n]

При входе: if (Поиск[n].size()==0) Обратно[n].unblock()

Выдача[n]

Время задержки: triangular( 1, 2, 3)*agent.req[n]

При выходе: if(Хранилище[n].size()==0 && Поиск[n].size()==0 && Выдача[n].size()==0) Ушёл[n].unblock(); agent.busy[n]=false;

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


Рисунок 3 – Сбор статистики в окне симуляции

Модель также возможно представить в трёх измерениях, отдельно разметив точки размещения агентов при прохождении определённых блоков системы. Примером такого отображения модели показан ниже.


Рисунок 4 – Трёхмерная анимация модели с пятью библиотекарями

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


Библиографический список
  1. Борщев А. Практическое агентное моделирование и его место в арсенале аналитика [Электронный ресурс]. – Режим доступа: http://simulation.su/uploads/files/default/borchev.pdf
  2. Бунцев И.А. Создание и реализация имитационных моделей в программной среде AnyLogic: Учебное пособие для вузов. – М.: Горячая линия – Телеком, 2015. – 154 с.
  3. Карташевский В.Г. Основы теории массового обслуживания: Учебник. – М.: Горячая Линия – Телеком, 2013. – 132 с.
  4. Климов Г.П. Теория массового обслуживания. – М.: Изд-во Московского университета, 2011. – 312 с.
  5. Салмина Н.Ю. Имитационное моделирование: Учебное пособие. – Томск: Эль Контент, 2012. – 90 с.


Все статьи автора «Буранбаев Айдар Маратович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: