Афанасьевский Л.Б.1, Горин А.Н.2, Фадин А.Г.3
гВУНЦ ВВС «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина», г. Воронеж,
к.т.н., доцент кафедры АСУ, afleonid@vandex. ru
2ВУНЦ ВВС «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина», г. Воронеж, к.т.н., старший преподаватель кафедры АСУ, algorin . algoral @mail . ru
3ВУНЦ ВВС «Военно-воздушная академия им. проф. Н.Е. Жуковского и Ю.А. Гагарина», г. Воронеж,
к.т.н., профессор кафедры АСУ, afleonid@yandex. ru
РЕАЛИЗАЦИЯ АНАЛИТИЧЕСКОЙ И ИМИТАЦИОННОЙ МОДЕЛЕЙ СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ
КЛЮЧЕВЫЕ СЛОВА
Система массового обслуживания, поток заявок, канал, состояние, характеристика СМО, очередь заявок.
АННОТАЦИЯ
В статье обсуждается порядок разработки аналитической модели систем массового обслуживания (СМО) в среде MathCad, характеристики эффективности СМО. Рассмотрена методика построения имитационной модели многофазной многоканальной системы массового обслуживания (СМО) при наличии нескольких различных источников заявок. В основу модели положено событийное продвижение модельного времени в соответствии с принципом -z. При программной реализации модели большинство параметров в фазах обслуживания и в СМО в целом определяется по рекуррентным алгоритмам.
К системам массового обслуживания (СМО) может быть отнесено достаточно большое количество реальных систем, например, системы связи, ремонтные и сервисные фирмы, компьютерные сети, аэропорты, морские порты, кассы по продаже билетов и т.д.
Рассмотрена программная реализация в MathCad решения моделей динамики и статики многоканальной марковской СМО с ограниченной очередью типа М/М/п/т, где п - число каналов обслуживания заявок, т - длина очереди.
На вход СМО поступает поток заявок с интенсивностью X . Интенсивность обслуживания в каждом из каналов равна ц .
Процесс функционирования рассматриваемой СМО состоит в следующем. Заявки поступают в систему случайным образом и в какой-то момент времени они могут занять все свободные каналы. Тогда последующие заявки будут ставиться в очередь. Если же число необслуженных заявок превысит п + т, то части из них будет отказано в обслуживании, так как все каналы и места в очереди будут заняты. Поступление заявок в каналы обслуживания и в очередь происходит с интенсивностью входящего потока X . Интенсивности обслуживания заявок системой с увеличением числа занятых каналов возрастают и равняются i -ц, где i =1, 2,..., п -количество занятых каналов в системе.
Если все каналы обслуживания заняты, то интенсивность продвижения заявок в очереди постоянна, совпадает с интенсивностью обслуживания заявок п каналами и, следовательно, равна п -ц . Общее число состояний рассматриваемой системы равно п +т +1 .
Граф состояний и переходов рассматриваемой системы представлен следующим образом
(рис. 1].
2, n, n, n, n,
Рис. 1. Граф состояний и переходов многоканальной СМО с очередью
Состояния в рассматриваемой СМО имеют следующий смысл:
S о - все каналы свободны; S1 - один канал занят обслуживанием заявки, остальные каналы свободны; S 2 - заняты два канала; S „ - заняты все п каналов для обслуживания п поступивших заявок; S п+1 - заняты п каналов и одна заявка находится в очереди; S п+т - заняты п каналов и т заявок находятся в очереди.
Динамика СМО рассматриваемого типа описывается системой линейных дифференциальных уравнений Колмогорова-Чепмена [1], в которой искомыми переменными являются вероятности Р;(Х), 1 = 0, 1, ..., п+т нахождения СМО в каждом из п+т+1 состояний как функции времени Ъ, а коэффициенты являются функциями интенсивностей %1ат^а и % т и.
Начальные условия для решения уравнений Колмогорова-Чепмена имеют вид
Р0(0)=1 р0) = Р2(0) = ...Рп(0) = 0 .
Формулы для расчета значений вероятностей состояний в стационарном режиме легко получаются из системы уравнений Колмогорова-Чепмена при приравнивании производных нулю, исключении зависимостей вероятностей от времени и замене одного из уравнений выражением
Р0 + Р,+ Р 2 + ... + Рп = 1
и имеют следующий вид:
Р 0="
1+А+.
А2
-+...+-
Ап
Ап
у п! -у
п! -у п!-у
А А1
п-у п у2
т т
п у
Р1=
1! У
Р0
Р 2 =
2! У
2 Р0 >
Р = —Р Рп п! АР
0
Рп + 1 =
п + 1
т п +2
■ Р
п+1 г0>
Рп+2 = -
■ Р
п+2 0
■Р0-
I п+1 и ' и-г*. 2 I п + 2 и ' Л -ГШ т I т
п-п! у п - п! у п - п! у
Заметим, что в выражении для Ро квадратная скобка отсутствует, если СМО представляет собой систему с отказами.
К характеристикам СМО относят:
Робс - вероятность обслуживания заявок;
Ротк - вероятность отказа в обслуживании;
Q - абсолютную пропускную способность (среднее число заявок, обслуженных за единицу времени);
q - относительную пропускную способность (вероятность обслуживания в момент времени Ъ, характеризуемую отношением среднего числа обслуженных заявок Q к среднему числу поступивших заявок %1ат^а за единицу времени); пзан - среднее число занятых каналов; кис, кпр - коэффициенты использования и простоя каналов; Ъ™ - среднее время ожидания заявки в очереди; точ - среднее количество заявок, ожидающих обслуживания; тобс - среднее количество заявок, находящихся на обслуживании; тс - среднее количество заявок в системе (в очереди и на обслуживании); Ъс - среднее время пребывания заявки в системе.
С учетом формул, приведенных выше, можно записать выражения для вычисления характеристик СМО, например
Я .
q = 1- Р
т О
пр
-1-к
тс
обс >
-то„ + т
Я = Аq;
у
обс
то
'А
т
обс
Д
у
Фрагмент рабочего окна MathCad, в котором динамическая модель марковской СМО оформлена как программный блок, представлен на рис. 2. Эта модель носит общий характер и позволяет путем задания значений структурных параметров получить описание одноканальной и многоканальной СМО с отказами и с очередями. На основе этой модели могут быть получены
1
т
А
+
+
2
А
А
оценки всех характеристик СМО. Подход, принятый при формировании модели, может быть распространен и на исследование с помощью аналитических моделей немарковских СМО.
Решение уравнений Колмогорова-Чепмена в MathCad с помощью функции Rkadapt, реализующей метод Рунге-Кутта с автоматическим выбором шага интегрирования, представлено на рис. 3.
История создания и развития методов аналитического описания систем массового обслуживания (СМО) занимает значительный промежуток времени [2, 3]. Основным применением этой теории являются однофазные системы. Для многофазных многоканальных СМО аналитические результаты получены только для марковских систем при обслуживании одного типа заявок [3].
Исследование динамики и статики марковской СМО
П := 2 - количество каналов в СМО m := 1 - максимальная длина очереди в СМО .WW
X := 0.67 - интенсивность входящего потока заявок
:= 0.15 - интенсивность потока обслуженных заявок
Р := for ieO.. п + m
Si^ 1 if i = 0 - формирование вектора начальных условий
0 othewise
S
Уравнения Колмогорова - Чепмена
D(t,P) := for i е 0. п + m
Pj_ i ■ X if 0 < i < n + m
0 if i = 0
bj Pj+l l-l1. i + 11 if i < n
Pj+1-Ц.-П if n < i < n + rn
0 if i = n+ rn
-Pi (X + ¡-ц.) + a\ + bj if i < n
-Pi(X+ n-|j.) + a\ + bj if n<i<n + rn-l
-Рп+т-п-ц+ a\ + bj if ¡ = n + m
с
Рис. 2. Программа формирования уравнений Колмогорова-Чепмена
Имитационное моделирование по-прежнему остается основным инструментом исследования сложных многофазных многоканальных СМО с ограниченными и бесконечными очередями, при этом описанные в литературе методики моделирования носят скорее концептуальный характер, что делает эти методики практически мало пригодными для программной реализации [2, 4].
В последние годы большинство публикаций, например [5, 6], посвящены применению для имитационного моделирования инструментальных систем GPSS World, AnyLogic, Simulink и др., при этом описание методики моделирования как таковой отсутствует, а возможности систем иллюстрируются решением достаточно простых задач.
При изучении имитационного моделирования сложных систем с использованием инструментальных средств универсального назначения основные усилия и время затрачиваются на освоение этих средств, при этом изложение методики также ограничивается ориентацией ее на решение достаточно простых задач.
Решение уравнений Колмогорова-Чепмена
Ю := 0 := 20 -граничные значения времени интегрирования
N := 100 - количество точек при интегрировании системы дифференциальных уравнений
Р := Ккас1арЦР.Ю Дк.Ы.О)
Зависимости вероятностей состояний от времени
Рис. 3. Решение уравнений динамики СМО
Для имитационного моделирования дискретных событийных систем в среде моделирования Simulink, интегрированной в MatLab, имеется библиотека SimEvents. Модель многофазной многоканальной СМО, построенная с использованием SimEvents, оказывается очень громоздкой и жестко привязанной к конкретной структуре СМО. Пакет моделирования событийно-управляемых систем Stateflow, также входящий в Simulink, в своей основе имеет теорию конечных автоматов. Он также может быть использован для имитационного моделирования СМО, но с целым рядом ухищрений.
C учетом сказанного достаточно актуальной является разработка методики имитационного моделирования многофазных СМО.
Рассматриваемая ниже методика предполагает использование в качестве инструмента для реализации модели универсального языка программирования и ориентирована на имитацию работы СМО при следующих достаточно общих предпосылках и допущениях:
• режим поступления заявок и дисциплина их обслуживания являются случайными, при этом для них предполагаются заданными законы распределения вероятностей и их параметры;
• продвижение модельного времени осуществляется по событиям (принцип
• каналы в фазах обслуживания являются однотипными для каждого типа заявок;
• в первой фазе обслуживания длины очередей для каждого типа заявок ограничены, т.е. в СМО возможны потери заявок;
• во всех фазах, кроме первой, очереди считаются бесконечными, т.е. заявка, принятая на обслуживание в первой фазе, обязательно будет обслужена;
• исходные данные для моделирования должны формироваться в файлах текстового формата, что обеспечит гибкость модели.
Суть методики моделирования заключается в следующем.
Раздельно генерируются времена наступления событий в активных элементах СМО (источниках заявок и каналах при их освобождении). Полученные данные записываются в четыре массива, различающиеся их назначением и способом модификации элементов.
Два из этих массивов (назовем их tz и tk) используются для определения ближайшего события в СМО. Эта процедура включает в себя определение минимального элемента tzmin в одномерном массиве tz и соответствующего ему типа заявки, определение минимального элемента tkmin в двумерном массиве tk и соответствующего ему номера фазы обслуживания и типа каналов. Целесообразность разделения времен наступления событий на два массива обусловлена различием процессов обработки информации при появлении очередной заявки и освобождения канала обслуживания. Результаты указанных операций являются начальными условиями для циклического процесса имитации функционирования СМО.
В цикле выполняется сравнение tzmin и tkmin. При tzmin < tkmin увеличивается модельное время и реализуется передача заявки в первую фазу обслуживания, при этом возможны следующие ситуации:
1) имеются свободные каналы, один из которых будет занят новой заявкой;
2) свободные каналы отсутствуют, длина очереди меньше допустимой, заявка занимает место в очереди (очередь моделируется целым числом, равным количеству заявок в ней);
3) свободные каналы отсутствуют, очередь заполнена, заявка теряется.
Если tkmin < tzmin, то модифицируется модельное время, выполняются операции освобождения канала в текущей фазе и передача заявки в следующую фазу, если фаза не является последней, при этом возможны следующие ситуации:
• в текущей фазе часть каналов занята, в следующей фазе имеются свободные каналы, освобождается канал в текущей фазе, заявка передается в канал следующей фазы;
• в текущей фазе часть каналов занята, в следующей фазе свободных каналов нет, освобождается канал в текущей фазе, заявка передается в очередь следующей фазы;
• в текущей фазе все каналы заняты, в следующей фазе имеются свободные каналы, уменьшается длина очереди в текущей фазе, заявка передается в канал следующей фазы;
• в текущей и следующей фазах все каналы заняты, освобождается канал или уменьшается длина очереди в текущей фазе, заявка передается в очередь следующей фазы;
• в текущей фазе все каналы свободны, состояния каналов и очереди не изменяются, определяется среднее время простоя каналов.
В последней фазе при соответствующих условиях выполняется только операция освобождения каналов, при этом определяются средние значения параметров, характеризующих работу фазы.
Для определения в каждой фазе и в СМО в целом средних значений параметров, имеющих смысл количества (среднее количество занятых каналов, средняя длина очереди и др.), целесообразно использовать рекуррентную формулу
тх (п ) = тх (п 1) + -[ х (п }-тх (п-1)], п = 1,2,... ,к, (1)
п
где п - количество событий, модифицируемое при наступлении соответствующего события; тх - среднее значение параметра х; х(п) - значение параметра х при п-ом событии.
Определение средних значений параметров, имеющих смысл времени (среднее время нахождения заявок в очереди, среднее время простоя каналов и др.), выполняется с использованием формулы вида (1), но в ней параметр х(п) является временем между последними событиями соответствующего типа. Эти времена для всего множества типов событий хранятся в двух других массивах (tzs - время между заявками; tks - время между событиями в каналах). При наступлении какого-либо события в указанных массивах модифицируется только значение времени, связанное с этим событием.
После завершения описанных действий, связанных с обслуживанием заявок, значения в массивах tz и tk уменьшаются на величину tzmin при tzmin < tkmin или на величину tkmin, если tkmin < tzmin, при этом на место нулевого элемента в модифицированных массивах записывается вновь генерируемое время наступления события соответствующего типа.
Далее идентифицируется новое ближайшее событие (определяются tzmin и tkmin, устанавливаются тип заявки, номер фазы обслуживания и тип каналов) и для него выполняются все описанные выше операции, приводящие к изменению состояния каналов обслуживания или
очередей.
Описанные вычислительные процедуры повторяются в цикле до тех пор, пока не будет достигнуто предельное значение модельного времени, указанное в файле исходных данных.
Укрупненная схема алгоритма моделирования СМО, реализующего описанную методику, имеет следующий вид (рис. 4)
Рис. 4. Укрупненная схема алгоритма имитационного моделирования СМО
Для работы программы файл входных данных должен содержать значения следующих параметров модели:
• предельное время моделирования;
• количество типов заявок (каналов обслуживания в фазах);
• вид закона распределения вероятностей для времени между поступлениями заявок каждого типа (1 - экспоненциальный; 2 - равномерный);
• параметр экспоненциального распределения для каждого типа заявок (0, если закон отличается от экспоненциального);
• параметр (нижняя граница) равномерного распределения (0, если закон отличается от равномерного);
• параметр (верхняя граница) равномерного распределения (0, если закон отличается от равномерного);
• количество фаз обслуживания;
• количество каналов каждого типа во всех фазах;
• вид плотности распределения для времени обслуживания заявок в каналах каждого типа во всех фазах (треугольный; аппроксимированный двумя параболами, сопрягаемыми в точке экстремума и др.);
• параметры для каждого вида закона распределения;
• предельная длина очереди для заявок каждого типа на входе первой фазы обслуживания. Можно сформировать несколько вариантов исходных данных в разных файлах и
выполнить анализ функционирования СМО для каждого из них. Такой подход целесообразен для вновь разрабатываемых систем.
Результаты работы программы целесообразно выводить в файл текстового формата, которые должны содержать:
1)время моделирования;
2)общее количество заявок, поступивших в СМО, количества обслуженных и потерянных
заявок;
3)абсолютную и относительную пропускную способность СМО;
4)средние значения для разных параметров (количества занятых каналов, длины очереди, времени простоя каналов, времени нахождения заявок каждого типа в очереди на входе каждой фазы, времени обслуживания заявок каждого типа в каждой фазе и в СМО в целом и др.).
Программная реализация методики имитационного моделирования вследствие цикличности большинства операций является относительно простой и выполнена в Delphi.
В MathCad реализована имитационная модель только однофазной многоканальной марковской СМО, для которой выше рассмотрена аналитическая модель.
Наращивание возможностей программы без изменения методики моделирования может выполняться по следующим направлениям:
• расширение состава законов распределения для времени между поступлениями заявок и процессов их обслуживания в каналах;
• использование разнотипных каналов для обслуживания одного и того же типа заявок;
• применение динамических массивов для исключения ограничений по количеству типов заявок и фаз обслуживания.
Программа, разработанная по описанной методике, может быть использована для анализа функционирования сложных систем, в частности, для выявления в них «узких» мест, например для:
• средств приема и развертывания подразделений МЧС в зоне стихийного бедствия;
• многостадийных дискретных производств с разными типами технологического оборудования.
Литература
1. Фадин А.Г. Моделирование радиоэлектронных систем на ЭВМ. - Воронеж: ВИРЭ, 2000. - 496 с.
2. Иващенко А.В., Сыпченко Р.П. Основы моделирования сложных систем на ЭВМ. - Л.: ЛВВИУС, 1988. - 272 с.
3. Вишневский В.М. Теоретические основы проектирования компьютерных сетей. - М.: Техносфера, 2003. - 512 с.
4. Шелухин О.И., Тенякшев А.М., Осин А.В. Моделирование информационных систем. - М.: Сайнс-пресс, 2005. - 368 с.
5. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. - М.: ДМК Пресс, 2004. -320 с.
6. Дьяконов В.П. MatLab 6.5 SP1/7.0 + Simulink 5/6. Основы применения. - М.: СОЛОН-Пресс, 2005. - 800 с.