Статья посвящена разработке объектно-ориентированной модели системыимитационного моделирования процессов массового обслуживания. Реализуемая имитационная модель системы массового обслуживания основана надискретно-событийном подходе к моделированию. Проектируемая программная система предоставит возможность исследовать характеристикисистем массового обслуживания различных конфигураций.
Design of object-oriented model for queuing simulationsoftware.pdf Задачи организации массового обслуживания возникают во многих областяхпрактической деятельности. Системы массового обслуживания (СМО) представ-ляют собой системы специального вида, реализующие многократное выполнениеоднотипных задач.Система массового обслуживания полностью описывается заданием: входяще-го потока, дисциплины очереди, порядка обслуживания [1 - 2].Схематически систему массового обслуживания можно изобразить в следую-щем виде (рис. 1):Входящийпоток Очередь ПриборВыходящийпотокПравилапостановкив очередьПравилаобслуживанияРис. 1. Система массового обслуживанияОдним из методов исследования сложных систем, в том числе и систем массо-вого обслуживания (СМО), является метод имитационного моделирования, когдамодель (как следует из названия вида моделирования) имитирует работу реальнойсистемы, т.е. модель воспроизводит процесс функционирования реальной систе-мы во времени [3].Целью данной работы является разработка объектно-ориентированной моделисистемы имитационного моделирования процессов массового обслуживания.1 Работа выполнена в рамках аналитической ведомственной целевой программы «Развитие научногопотенциала высшей школы (2009-2010 годы)», проект № 4761.90 А.Н. Моисеев, М.В. СиняковСтоит отметить, что данная система является частью объектно-ориентирован-ной распределенной системы моделирования процессов массового обслуживания[4] и представляет собой блок алгоритмов имитационного моделирования (АИМ).1. Модельное время и события системыПроцесс функционирования системы - это последовательная смена состоя-ний системы во времени.Процесс перехода системы из одного состояния в другое называется событиемсистемы.Очевидно, что основными событиями для рассматриваемой нами системы бу-дут:Поступление заявки; Обращение заявки из источника повторных вызовов (ИПВ); Завершение обслуживания заявки на обслуживающем устройстве; Завершение моделирования.Процесс поступления заявки предполагает создание заявки и ее поступление всистему. Затем происходит проверка «занятости прибора», если прибор свободен,то заявка встает на обслуживание, в противном случае добавляется в очередь. Приэтом процесс постановки в очередь зависит от ограничения длины очереди: еслидлина очереди достигла предела, то заявка покидает систему.В процессе моделирования системы таймер модельного времени, безусловно,должен постоянно корректироваться в соответствии с теми основными события-ми, которые возникают в реальной системе. При этом существуют два способа(два принципа) коррекции значения таймера модельного времени:1) коррекция с постоянным шагом;2) коррекция с переменным шагом.В случае коррекции с постоянным шагом модельное время увеличивается навеличину h , выбираемого перед началом моделирования. При этом постояннопроверяется, не произошло ли событие на интервале [h, h+h]. Очевидно, что прислишком большом значении h, результаты моделирования будут недостоверны-ми, тогда как выбор слишком маленького значении h приведет к увеличению за-трат на моделирование.При коррекции таймера модельного времени с переменным шагом значениятаймера должны непосредственно совпадать с моментами возникновения событийв системе, поэтому на каждой итерации значение таймера сдвигается к моментуочередного события.В качестве способа коррекции таймера модельного времени будем использо-вать способ коррекции с переменным шагом в силу очевидных достоинств, при-сущих данному способу.Так как в разрабатываемой системе определено 4 события, то таймер модель-ного времени (Tмод), корректируемый в основном имитационном цикле, будетсдвигаться в сторону ближайшего наступившего события. То есть для моментовнаступления основных событий: Tпост - момент времени поступления заявки в систему TИПВ - момент времени обращения заявки из ИПВ; Tзаверш.обслуж - момент времени завершения обслуживания заявки на обслужи-вающем устройстве; Tзаверш.модел - момент времени завершения моделирования.Разработка объектно-ориентированной модели системы имитационного моделирования 91Коррекция модельного времени определяется какмод пост Т = min(Т , ТИПВ , Тзаверш.обслуж , Тзаверш.модел ) .2. Объектная модель системы имитационного моделированияИмитационная модель системы массового обслуживания разрабатывается наоснове дискретно-событийного подхода к моделированию, предлагающего абст-рагироваться от непрерывной природы событий и рассматривать только основныесобытия моделируемой системы [5].Таким образом, зная основные элементы СМО, логику функционирования ипринципы взаимодействия элементов системы, рассмотрим статическую модельимитационной модели системы массового обслуживания (ИМСМО).Класс QueueSimulationModel - центральное звено системы, представляет собойимитационную модель. Создает все основные объекты системы. Назначает поря-док прибытия и правила обслуживания заявок. Метод RunModel запускает основ-ной имитационный цикл.В имитационном цикле источники заявок (экземпляры класса Source) создаютзаявки в случайные моменты, определяемые параметрами распределения, форми-руя входящий поток заявок. Заявка (Advert), поступившая в систему, отправляетсяна прибор (ServiceDevice), при этом моменты времени прибытия заявки и ее об-ращения на прибор совпадают. Если все приборы заняты, то заявка отправляется вхранилище (Storage). Хранилище может представлять собой очередь или источ-ник повторных вызовов (Recall).Заявки, находясь в очереди, ждут своего обслуживания на приборе, при этомприбор, освободившись, получает очередную заявку из очереди в соответствии сустановленной для конкретной очереди дисциплиной обслуживания элементов(LIFO, FIFO и т.д.). Заявки, находящиеся в ИПВ, вновь обращаются к прибору спопыткой повторного обслуживания через случайные интервалы времени.Необходимо отметить, что в системе может находиться любое число источни-ков заявок, хранилищ, обслуживающих устройств. При этом порядок взаимодей-ствия элементов системы определяется параметрами имитационной модели и ус-танавливается объектом QueueSimulationModel (рис. 2).Advert+ CreateTime: realSource+ createAdvert(real)ServiceDevice+ GetAdvert(Advert, real)QueueSimulationModel+ Tmod: real+ RunModel()Storage+ AddAdvert(Advert, real)Recall+ GenerateTime(real)+advert+storage+source +device+workadvert+advertРис. 2. Основные классы системы92 А.Н. Моисеев, М.В. СиняковСлучайные величины, определяющие моменты соз-дания заявок, время обслуживания на приборе или ин-тервал обращения из ИПВ, распределены по определен-ным законам распределения. За генерацию случайныхвеличин отвечает класс Distribution (рис. 3) и его потом-ки, генерирующие случайные величины, распределен-ные по конкретному закону распределения.На рис. 4 отображены взаимодействия объектов, упо-рядоченные по времени их появления, представляющиепроцедуру создания заявки, ее постановку в очередь иобслуживание на приборе.Источник заявок генерирует заявку (метод createAdvert(real)) в момент времени, который представляет со-бой случайную величину, описанную заданным закономраспределения (метод GetRandom():real). Созданная за-явка, в случае занятости прибора, помещается в очередь (метод AddAdvert(Advert,real)) и после освобождения прибора извлекается из очереди (GetFirst():Advert) ивстает на обслуживание (GetAdvert(Advert, real)).Рис. 4. Взаимодействие объектов системыDistribution+ GetRandom() : realConcreteDistribution+ GetRandom() : realРис. 3. Класс DistributionРазработка объектно-ориентированной модели системы имитационного моделирования 93Класс Result (рис. 4) отвечает за сбор результатов функционирования системы.Элементы системы, которые являются основными инициаторами событий, такие,как очередь, источник заявок, обслуживающее устройство, уничтожитель заявок(Destroyer), регистрируют у себя объект Result и при изменении своего состояниясообщают ему о соответствующих изменениях. Для реализации такой конструк-ции целесообразно использовать паттерн объектно-ориентированного проектиро-вания «Наблюдатель» [6].ЗаключениеВ работе предложен подход к разработке объектно-ориентированной системыимитационного моделирования для решения описанных задач моделирования вобщем виде, позволяющий изучать системы массового обслуживания с произ-вольным числом источников заявок, обслуживающих устройств и очередей.
Моисеев Александр Николаевич | Томский государственный университет | кандидат технических наук, доцент кафедры математических методов и информационных технологий в экономике | amoiseev@ngs.ru |
Синяков Михаил Викторович | Анжеро-Судженский филиал Кемеровского государственного университета | ассистент кафедры информатики факультета информатики, экономики и математики | protocol@ngs.ru |
Змеев О.А Приступа А.В. Разработка объектно-ориентированного программного комплекса имитационного моделирования систем массового обслуживания // Вестник ТГУ. 2004. № 248. С. 171 - 173.
Гамма Э., Хелм Р., Джонсон Р., Влессидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2001. С. 368.
Хинчин А.Я. Работы по математической теории массового обслуживания. М.: Физматгиз, 1963. С. 236.
Кобелев Н.Б. Основы имитационного моделирования сложных экономических систем. М.: Дело, 2003. 333 c.
Войтиков К.Ю. Моисеев А.Н. Модель компонентов объектной распределенной системы моделирования процессов массового обслуживания // ИТММ. 2009. С. 122 - 124.
Назаров А.А., Терпугов А.Ф. Теория массового обслуживания. Томск: Изд-во НТЛ, 2005. С. 228.