Научная статья на тему 'Моделирование многоканальных открытых систем массового обслуживания с ограничениями в среде Visual Studio 2010'

Моделирование многоканальных открытых систем массового обслуживания с ограничениями в среде Visual Studio 2010 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
554
45
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА МАССОВОГО ОБСЛУЖИВАНИЯ / QUEUING SYSTEM / ХАРАКТЕРИСТИКИ СИСТЕМЫ / CHARACTERISTICS OF THE SYSTEM / МОДЕЛИРОВАНИЕ / MODELING / АЛГОРИТМ / ALGORITHM / VISUAL STUDIO 2010 / C#

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шемахин Е.Ю., Кирпичников А.П.

Рассматриваются некоторые вопросы, связанные с созданием программного обеспечения, позволяющего реализовать модель многоканальной открытой системы массового обслуживания с ограничениями в среде Visual Studio 2010 с целью получения аналитических формул числовых характеристик системы.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Моделирование многоканальных открытых систем массового обслуживания с ограничениями в среде Visual Studio 2010»

УДК 519.872

Е. Ю. Шемахин, А. П. Кирпичников

МОДЕЛИРОВАНИЕ МНОГОКАНАЛЬНЫХ ОТКРЫТЫХ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ С ОГРАНИЧЕНИЯМИ В СРЕДЕ VISUAL STUDIO 2010

Ключевые слова: Система массового обслуживания, характеристики системы, моделирование, алгоритм, Visual Studio 2010, C#.

Рассматриваются некоторые вопросы, связанные с созданием программного обеспечения, позволяющего реализовать модель многоканальной открытой системы массового обслуживания с ограничениями в среде Visual Studio 2010 с целью получения аналитических формул числовых характеристик системы.

Keywords: queuing system, characteristics of the system, modeling, algorithm, Visual Studio 2010, C#.

Some questions related to the creation of software that allows to realize the model of multichannel open queuing system with restrictions in Visual Studio 2010 to obtain analytical formulas of numerical characteristics of the system.

Возникшая в работах А. Эрланга в начале XX века теория массового обслуживания потоков заявок за истекшие сто лет не только не утратила свою актуальность, но активно распространяется в наиболее инновационные области современных приложений, такие, как, например, теория телетрафика, теория телекоммуникаций и многие другие. При этом в силу значительных вычислительных сложностей возникающих в этой области задач, не всегда представляется возможным получать их аналитические решения, вследствие чего весьма часто приходится прибегать к построению численных моделей соответствующих процессов на ПЭВМ. Для этих целей в настоящее время, как правило, используют стандартные пакеты прикладных программ (например, известную моделирующую систему GPSS World), число которых насчитывает уже не один десяток. Между тем все эти стандартные программные продукты обладают тем недостатком (или особенностью), что, хотя и значительно упрощают процесс программирования, но ориентированы в основном на решение лишь типовых инженерных задач, так или иначе известных пользователям и специалистам в этой области. С другой стороны современные методы теории телетрафика имеют дело со всё более усложняющимися постановками задач и требуют выдачи всё большого числа параметров (например, моментов высших порядков), которые недоступны и не поддерживаются стандартными пакетами программ. В связи с этим возникает необходимость разработки программных продуктов, созданных с помощью какого-либо универсального языка программирования, в которых пользователю и программисту было бы доступным моделирующее ядро программы, позволяющее выдавать те или иные характеристики системы, недоступные при использовании типовых пакетов программ. В настоящей работе предложен новый алгоритм построения математических моделей для широкого класса многоканальных систем массового обслуживания открытого типа.

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

Во-первых: построение алгоритма, моделирующего поведение системы массового обслуживания.

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

В-третьих: проверка получившейся модели на известных аналитических формулах.

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

Изучению каждого аспекта будет посвящена отдельная статья.

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

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

Таким образом, созданная модель позволяет ограничить следующие характеристики:

Со стороны СМО:

- среднее и максимальное количество требований в очереди, под обслуживанием и в системе;

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

Со стороны требования, поступившего в систему:

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

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

В дальнейшем планируется расширение модели, но сочетание различных ограничений уже в текущем её состоянии позволяет получить 212 + (23 -1)- 2 • 212 = 61440 различных моделей СМО, каждая из которых будет уникальной, при условии, что одно ограничение не перекрывает другое. К сожалению, изучение каждой модели в отдельности является бессмысленным занятием, т.к. слишком много сил и времени потребуется на вывод аналитических формул, хотя вполне возможно, что для определённых характеристик эти формулы получить будет крайне сложно. Поэтому, изучать какую-либо модель и выводить аналитические формулы для её характеристик имеет смысл только для наиболее востребованных разновидностей СМО. Стоит отметить, что помимо строгих аналитических формул, возможно получение приближений аналитических формул полиномами. Эту задачу можно возложить на машину и в приемлемые сроки получить результат, но всё же целью данной работы являются именно строгие аналитические формулы для характеристик СМО.

Перед тем, как начать описывать алгоритм, необходимо упомянуть об ещё одном важном моменте: его оптимизации и универсальности. Как уже говорилось выше, изначально планировалось создание всего двух моделей СМО, поэтому алгоритмов должно было быть также два. Очевидно, что добавление большого количества условий, потребует проверки этих условий, не говоря уже о действиях, которые необходимо совершить на основе этих проверок. Такие изменения в алгоритме программы должны существенно замедлить его исполнение. Однако, на практике доля дополнительных вычислений, проводимых при учёте ограничений, не существенна и разница во времени обработки, скажем, двух миллионов требований для СМО с ограничениями и без не превышает одной секунды, т.е. 2,5% от меньшей величины.

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

На вход алгоритм (рис. 1, 2) получает следующие величины и параметры: интенсивность потока требований Я, интенсивность потока обслуживания (, количество обслуживающих каналов т , критерий остановки вычислений (количество обслуженных требований, либо сходимость опреде-

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

Первым делом происходит «инициализация» обслуживающего прибора, а также используемых генераторов случайных чисел (ГСЧ). Система получает первую величину: время до появления следующего требования в системе. Эти величины, получаемые от ГСЧ, и будут являться шагами цикла прогонки. Таким образом, алгоритм на каждом шаге обрабатывает события, которые происходят за время до появления следующего требования в системе.

Рис. 1 - Блок-схема, ч. 1

Очевидно, что до появления первого требования в системе, ничего не произойдёт. Действия цикла обработки требований описаны ниже.

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

Рис. 2 - Блок-схема, ч. 2

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

1. Получение от ГСЧ двух величин: времени обслуживания требования, поступившего в систему на данный момент и времени до появления следующего требования в системе.

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

3. Вычисление времени ожидания поступившего в систему требования (на основе текущей очереди и состояния обслуживающих приборов).

4. Проверка, примет ли система поступившее требование основываясь на ограничениях модели. Если требование принято, то оно поступает либо в очередь (при положительном времени ожидания), либо сразу на обслуживание. На основе этих данных вычисляется число ожидавших обслуживания требований, число обслуженных требований, число требований, получивших отказ. Также, при немедленном поступлении требования на обслуживание, для дальнейшего использования сохраняется число свободных каналов, номер канала, на который поступило требование, время его обслуживания и ожидания.

5. Следующие два действия обрабатывают события, произошедшие за время до появления следующего требования в системе. При наличии ненулевой очереди рассматривается оставшееся время ожидания первого требования в очереди каждый раз до тех пор, пока очередь не закончиться, либо пока не будет полностью обработан промежуток времени до появления следующего требования в системе. На этом этапе, если оставшееся время ожидания первого требования в очереди меньше рассматриваемого периода, то оно поступает на обслуживание (при принятии системой, аналогично п. 4). Если же оставшееся время ожидания первого требования в очереди больше рассматриваемого периода, то количество требований в очереди не изменится.

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

7. Подсчёт вспомогательных величин на основе данных об обслуживании, сохранённых в п. 4 и п. 5. На основе этих величин вычисляется время обслуживания, число обслуженных требований на каналах, время пребывания в системе, а также вторые моменты этих величин.

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

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

10. Вычисление моментов величин выше первого, если число обработанных требований превысило половину.

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

12. Проверка критерия остановки вычислений и подсчёт окончательных значений величин, если текущее состояние системы ему удовлетворяет. Если же нет, то снова переходим к п. 1.

Формулы для подсчёта характеристик в алгоритме показаны в обобщённом виде, обозначая то, как может быть выражена та или иная величина на каждом шаге цикла. На самом же деле в алгоритме сохраняется только последняя вычисленная величина.

1. Интенсивность потока требований: Л = п¡Tsys, где n - число поступивших требований (равно шагу основного цикла), Tsys - общее время существования системы.

2. Интенсивность потока обслуживания:

= у CCS,

где m - число обслуживающих каналов, CCSi -количество требований, обслуженных каналом с номером i, TSSi - общее время, затраченное на

обслуживание требований каналом с номером i .

3. Приведённая интенсивность потока требований. Считать характеристику «по определению» нецелесообразно с точки зрения скорости обработки алгоритма, поэтому: р = Л/ jU.

4. Вероятность обслуживания: робсл = ncs/n, где ncs - число обслуженных требований.

5. Вероятность простоя: p0 = ncijn, где nci -число требований, заставших прибор свободным.

6. Вероятность ожидания: рожид = ncw/n, где

ncw - число требований, ожидавших обслуживания.

7. Вероятность отказа: ротк = ncd/n, где ncd -

число требований, получивших отказ.

8. Коэффициент загрузки:

k

у QueueSystime ] ■ QueueSysmuse ]

j=1

к.з. =

m ■ Ty

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

9. Коэффициент простоя:

=

У QueueSystimej ■QueueSys^

/=1

/77 ■ 7"t

sys

аналогично коэффициенту загрузки с заменой количества занятных каналов на количество свободных. 10. Число требований под обслуживанием и дисперсия:

к

/77 = —■ yQueueSystime j ■ Queue

muse,j >

sys j=\ .2

где

sys j=k'

Bj = QueueSyStlme,] ■ {QueueSySmmgj J2 , k'

число состояний системы до середины прогонки, - время существования системы с момента середины прогонки.

11. Число требований в очереди и дисперсия: _ 1 к /=■ 1

T— ■ yQueueSystime j ■ QueueSys

queue,j >

sys ¡=1

sys j=k'

где B] = QueueSyStine ] ■ (QueueSySqUeUB ] 12. Число требований в реальной очереди и диспер-

сия:

yQueueSystimej ■ QueueSys

queue,]

/

¡=1

реал

' queue

-2

реал

TT1--УУВ/ — ^!реал ) .

='

где В J = Queue SystimeJ ■ QueueSys queueJ )2, Tqueue - время, в течение которого была ненулевая очередь, T'ueue - аналогичная величина с момента середины прогонки.

13. Число требований в СМО и дисперсия:

к

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

=

=1

к

J-- У))

='

где

Aj = QueueSystimeJ ■

■ QueueSysinuseJ + Queue Sysqueuej) Bj = QueueSys time J ■

■ QueueSys inuseJ + Queue SysqueueJ )2.

14. Время обслуживания и дисперсия:

1обсл = Tserv /ncS ,

2

<Jt. =

1 .у Т )2 т )2

t / i \ serv,i J V обсл /

п — п

где Тееп) - общее время обслуживания прибором, п' - середина прогонки, - время обслужива-

ния требования с номером /. 15. Время ожидания в очереди и дисперсия: 1

t =-.у T

ожид / / wait ,i ~>

n

i=1

c

n - n

1 .у (t )2 -Т )2

t / i V wait,i J V ожид / >

где Ткаи I - время ожидания требования с номером I.

16. Время ожидания в реальной очереди и дисперсия:

1

t

- • Y T

ожид, реал / j wait,i'

ncw ,.=1

c

ncw

1_ .У (T ) -(( У

t / i \ wait,i J \ ожид,реал / ~>

где ncw' - число требований, ожидавших обслуживания после середины прогонки.

17. Время пребывания в СМО и дисперсия:

1 n

t = — • Y T + T

сист / I serv,i wait,i'

n i=i

1 •Y(t + T )2 -(t V

t / j \ serv,i wait,i J V сист J '

n - n ,=n'

18. Среднее количество требований, обслуженных подряд и дисперсия:

1 nHenp

v = — Y v,

c =■

сист

n.,

i=1

С =

У-(v)2

п — п

непр непр ' -пнепр

где пнепр - число случаев непрерывной работы прибора, - число обслуженных подряд требований для случая непрерывной работы с номером /, п'непр

- число случаев непрерывной работы прибора до середины прогонки.

19. Среднее время непрерывной работы прибора и дисперсия:

к =-

'непр ¡=i

i • •непр

— • у,

=1

У, -ТУ

пнепр Пнепр

где ^ { - время непрерывной работы прибора для

случая непрерывной работы с номером /. 20. Ковариация числа требований под обслуживанием и в очереди и коэффициент корреляции:

Cov = -^~ -yBj-m.'l,

Т'

sys j=k'

Cor = Cov/^

cm • c/

где

• QueueSys

muse,]

■Оиеие Зуздиеие].

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

Таблица 1 - Скорость работы алгоритма

Тип СМО и кол-во требований Л ß m р t, с

Одноканальная, 2000000 1 2 1 0,5 15

Одноканальная, 2000000 1 10 1 0,1 13

Одноканальная, 2000000 9 10 1 0,9 27

Многоканальная, 2000000 5 1 10 0,5 25

Многоканальная, 2000000 1 1 10 0,1 22

Многоканальная, 2000000 9 1 10 0,9 40

Многоканальная с огр., 2000000 5 1 10 0,5 25

Многоканальная с огр., 2000000 1 1 10 0,1 23

Многоканальная с огр., 2000000 9 1 10 0,9 40

В заключение укажем, что в данной работе представлен универсальный алгоритм, реализованный в среде Visual Studio 2010 на языке C#, модели-

ожид

,=П

ожид, реал

,=П

1

1

2

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

Литература

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Дж. Риордан, Вероятностные системы обслуживания. Москва, Связь, 1966 184 с.

2. А.П. Кирпичников, Прикладная теория массового обслуживания. Казань, Изд-во Казанского гос. ун-та, 2008. 112 с.

3. А.П. Кирпичников, Методы прикладной теории массового обслуживания. Казань, Изд-во Казанского университета, 2011. 200 с.

© Е. Ю. Шемахин - аспирант каф. интеллектуальных систем и управления информационными ресурсами КНИТУ, shupachet@gmail.com; А. П. Кирпичников - док. физ.-мат. наук, зав. каф. интеллектуальных систем и управления информационными ресурсами КНИТУ,: kirpichnikov@kstu.ru.

© E. U. Shemakhin - graduate student of the Department of Intelligent Systems & Information Systems Control, KNRTU, shupachet@gmail.com; А. P. Kirpichnikov - Dr. Sci., Head of the Department of Intelligent Systems & Information Systems Control, KNRTU, kirpichnikov@kstu.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.