Последовательный алгоритм генерации матрицы коэффициентов для системы однородных дифференциальных уравнений в модели нестационарной системы
обслуживания
К.С. Шардаков Петербургский государственный университет путей сообщения Императора Александра I Санкт-Петербург, Россия k.shardakov@gmail.com
Аннотация. Предлагается последовательный алгоритм генерации матрицы коэффициентов для системы однородных дифференциальных уравнений, описывающих модель нестационарной системы обслуживания. Приведено его сравнение с рекурсивным алгоритмом, а также оптимальная структура хранения списка состояний для последовательного алгоритма. Отмечено увеличение быстродействия алгоритма по сравнению с рекурсивным алгоритмом в связи с отсутствием необходимости сортировки списка состояний и матрицы коэффициентов.
Ключевые слова: алгоритм генерации матрицы коэффициентов, последовательный, рекурсивный, Рунге-Кутты, ode, нестационарная система обслуживания, система мониторинга.
Введение
Автоматизированные системы мониторинга играют важную роль в жизни современного общества. Мониторинг - это непрерывный процесс наблюдения и регистрации параметров объекта по сравнению с заданными критериями. В ряде отраслей данные собираются и накапливаются очень интенсивно. Математической базой для моделирования систем мониторинга является теория массового обслуживания. Большинство авторов используют модели этой теории в предположении, что очередь заявок бесконечна, существует стационарный режим, а коэффициент загрузки не превышает единицы [1-3]. Большой практический и теоретический интерес представляют нестационарные системы обслуживания (НСО). Существует мало работ, посвященных этой теме в сравнении с работами, посвященными стационарному режиму. Примерами таких работ являются [4-6]. Детально различные модели рассмотрены в [6]. Недостатком работ [4, 5] является то, что в них рассматривается только классический численный метод решения систем обыкновенных дифференциальных уравнений (ОДУ) - метод Рунге-Кутты.
В работах [7-9] представлен численно-аналитический метод, скорость и точность которого при решении системы ОДУ, описывающей НСО, превосходят наиболее рас-
пространенный при решении данного рода задач метод Рунге-Кутты. Одним из преимуществ этого метода является рекурсивный алгоритм генерации матрицы коэффициентов системы ОДУ без выведения общего уравнения системы ОДУ. Но этот алгоритм также имеет существенные недостатки, а именно: 1) на выходе алгоритм предоставляет неупорядоченный список состояний, состояния в нем находятся в порядке их рекурсивного генерирования; 2) на выходе алгоритм предоставляет массив нужной размерности вместо нижней треугольной матрицы; 3) из первых двух пунктов вытекает необходимость сортировки списка состояний и матрицы коэффициентов для приведения их в готовый для дальнейшего использования вид. Если значения в списке состояний поменять местами, необходимо поменять местами строки и столбцы для тех же номеров состояний в матрице, а при больших размерах матрицы это является достаточно ресурсоемкой операцией. Для устранения указанных недостатков предлагается последовательный алгоритм генерации матрицы коэффициентов, использующий совершенно иной подход.
Суть последовательного алгоритма
Суть последовательного алгоритма заключается в разделении списка состояний на подгруппы с одинаковыми свойствами и дальнейшем использовании этих свойств. Для примера рассмотрим простейшую одноканальную СМО, характеризующуюся числом запросов i (1 = 0, Ы) в ней и числом запросов } 0 = 0, N — 1), которые уже обработаны, где N - общее число заявок, которые могут поступить в систему. На вход последовательно поступает N заявок с интенсивностями (Х1, Х2, ... , которые зависят от номера заявки, и обслуживаются с интенсивностями (Ц1, Ц2, ... , которые также зависят от номера заявки.
Разделим состояния на группы, такие, что в каждой группе при постоянном) значение i будет расти до N-1. Отметим несколько важных фактов: 1) количество групп всегда будет равно N+1; 2) длина каждой последующей группы всегда будет на 1 меньше текущей; 3) в рамках
одной группы состояния могут переходить друг в друга последовательно и только с интенсивностью X; 4) переход с интенсивностью ц может происходить только из состояния 1 группы ] в состояние следующей группы ]+1, при этом номер нового состояния внутри группы всегда будет 1-1; интенсивность такого перехода всегда будет ц
Следующим шагом генерируется список состояний длиной N0 = (К+1)-(К+2)/2. Список генерируется простым перебором ] во внешнем цикле, 1 - во внутреннем до тех пор, пока 1+] <= N. При достижении этого порога происходит увеличение ] на единицу. На выходе алгоритм предоставляет упорядоченный список состояний и делает это в один проход цикла.
Важным компонентом является структура данных для хранения этого списка. Состояния хранятся в списке списков. Основной список содержит в себе несколько групп, каждая из которых является отдельным списком. Внутри группы представлены состояния, каждое из которых хранится как список, содержащий номер состояния и список с его описанием. Такая структура хранения упрощает дальнейшее заполнение матрицы коэффициентов и позволяет не перебирать список состояний при поиске нужного состояния, а сразу обращаться в нужное место в списке. Например:
Все состояния [
Группа[ Состояние [ Номер состояния, [заявок в системе,
обработанных заявок] ]
]
].
Следующим шагом заполняется матрица коэффициентов. При начальных условиях это квадратная нулевая матрица размерности №. Последовательно перебирается список состояний, и для каждого состояния последовательно применяются три краевых условия, благодаря которым
происходят все необходимые изменения матрицы коэффициентов, описывающих это состояние. Обозначим матрицу коэффициентов как А, номер текущего состояния как Num, ц и X - интенсивности поступления и обслуживания заявки с номером Num.
1. Если это не первое состояние внутри своей группы:
A = A -и-
Num,Num Num,Num
A = A + 2
Num,Num-1 /1Num,Num-1 ^
2. Если это не последнее состояние внутри своей группы:
A = A - 2
Num,Num Num,Num
3. Если это не первая группа:
A = A + и
Num,Pr ev _ Num Num,Pr ev _ Num r
Здесь Prev_Num - номер состояния, из которого можно попасть в состояние с номером Num, обработав заявку; в списке состояний всегда находится в группе j-1 и имеет номер в своей группе i+1.
После обработки всех состояний такой алгоритм на выходе предоставляет готовую нижнюю треугольную матрицу коэффициентов, что избавляет от необходимости ее сортировки.
Блок-схема всего алгоритма представлена на рисунке 1. В следующем разделе представлен сравнительный анализ рекурсивного и последовательного алгоритмов.
Сравнительный анализ рекурсивного
и последовательного алгоритмов Оба алгоритма генерации матрицы коэффициентов системы ОДУ без вывода общего уравнения системы были реализованы на языке Python3. Все измерения проводились при запуске алгоритмов на одном и том же устройстве, что позволяет считать полученные значения допустимыми к сравнению. Значения времени работы алгоритмов могут отличаться в большую или меньшую сторону в зависимости от мощности платформы, на которой алгоритмы запускаются, но общие тенденции будут оставаться корректными. Результаты сравнительного анализа представлены в таблице 1.
ТАБЛИЦА 1. Сравнение времени выполнения алгоритмов
Количество Время
заявок состояний выполнения последовательного алгоритма, с выполнения рекурсивного алгоритма, с генерирования без сортировки для рекурсивного алгоритма, с
3 10 0.0027289390564 0.000235080718994 0.000102996826172
5 21 0. 000874042510986 0.000907897949219 0.000251054763794
10 66 0.000315189361572 0.00605607032776 0.000638008117676
20 231 0. 00100684165955 0.129016876221 0.00578188896179
30 496 0.00470900535583 0.592235088348 0.0215079784393
40 861 0. 00546598434448 2.48418688774 0.0802609920502
50 1326 0.0105609893799 12.4112920761 0.151191949844
60 1891 0.0128128528595 83.0276899338 0.318285942078
70 2556 0.0225200653076 224.342078924 0.576465129852
80 3321 0.0305080413818 568.904677153 0.847626924515
90 4186 0.0393660068512 1163.46502709 1.33484387398
100 5151 0.105370044708 2274.09017706 1.87042212486
Рис. 1. Блок-схема последовательного алгоритма
Как видно из таблицы 1, количество возможных состояний системы, следовательно, и количество уравнений в системе ОДУ растет экспоненциально от количества заявок, которые могут поступить в НСО. График зависимости количества состояний от количества заявок представлен на рисунке 2.
Dependence between number of tasks and number of states 5000 -
4000 -
| 2000 ■
40 60
Number of tasks
Рис. 2. Зависимость числа состояний от числа заявок
На рисунке 3 представлено сравнение двух частей работы рекурсивного алгоритма: генерации списка состояний и матрицы коэффициентов и их последующая сортировка. Как видно из рисунка 3, при увеличении количества состояний большую часть времени рекурсивный алгоритм занят сортировкой полученных результатов.
Performing time for both parts of recursive algorithm
- Recursive without sorting
- Whole recursive
Рис. 4. Время выполнения последовательного и рекурсивного алгоритмов
На рисунке 5 представлено время выполнения последовательного алгоритма и время выполнения рекурсивного алгоритма, исключая трудоемкий этап сортировки. Как можно заметить, даже в этом случае рекурсивный алгоритм уступает последовательному алгоритму в скорости работы.
| 1000 -
Рис. 5. Время выполнения последовательного алгоритма и рекурсивного алгоритма без сортировки
На рисунке 6 представлен график зависимости времени работы последовательного алгоритма от количества возможных состояний системы. Сняты 100 значений при количестве поступающих заявок от 1 до 100.
Dependence between number of states and performing time for sequential 0.08 ■
2000 3000 Number of states
Рис. 3. Время выполнения обеих частей рекурсивного алгоритма
На рисунке 4 представлено сравнение полного времени работы рекурсивного и последовательного алгоритмов генерации матрицы коэффициентов. Время выполнения рекурсивного алгоритма растет экспоненциально при увеличении количества состояний, исходя из рисунка 3 можно заключить, что большая часть этого времени тратится на сортировку.
2000 3000
Number of states
Рис. 6. Зависимость времени работы последовательного алгоритма от числа состояний системы
Как показано на рисунке 6, время выполнения этого алгоритма имеет обыкновенную линейную зависимость от числа поступающих в систему заявок и числа состояний этой системы.
Заключение
Предложенный последовательный алгоритм имеет неоспоримые преимущества по сравнению с рекурсивным алгоритмом: время его выполнения существенно меньше и линейно зависит от числа поступающих в систему заявок в отличие экспоненциальной зависимости в рекурсивном алгоритме. Последовательный алгоритм на выходе предоставляет отсортированный список состояний и нижнетреугольную матрицу коэффициентов, что избавляет от необходимости сортировки, применяемой в рекурсивном алгоритме.
При увеличении параметров системы может увеличиться количество состояний, в некоторых отдельных случаях - количество правил и условий для переходов, но общая сложность остается на том же уровне. При реализациях численно-аналитического метода последовательный алгоритм рекомендуется использовать вместо рекурсивного алгоритма.
Литература
1. Zegzhda P. D. Using graph theory for cloud system security modeling / P. D. Zegzhda, D. P. Zegzhda, A. V. Nikol-skiy // Lecture Notes in Computer Science (including subse-ries Lecture Notes in Artifi cial Intelligence and Lecture Notes in Bioinformatics). - 2012. Vol. 7531. - Pp. 309-318.
2. Osogami T. Analysis of transient queues with semidefi nite optimization / T. Osogami, R. Raymond // Queueing Systems. 2013. Vol. 73. - Pp. 195-234.
3. Upadhyaya S. Queueing systems with vacation: an overview / S. Upadhyaya // International journal of mathematics in operational research. - 2016. Vol. 9. Issue 2. - Pp. 167-213.
4. Bubnov VP., Khomonenko A.D., Tyrva A.V Software reliability model with coxian distribution of length of intervals between errors detection and fixing moments // Proceedings -International Computer Software and Applications Conference. 2011. Pp. 310-314.
5. Bubnov VP., Tyrva A.V., Khomonenko A.D. Model of reliability of the software with coxian distribution of length of intervals between the moments of detection of errors // Proceedings - International Computer Software and Applications Conference. 34th Annual IEEE International Computer Soft-
ware and Applications Conference, COMPSAC 2010. - Seoul, 2010. - Pp. 238-243.
6. Разработка динамических моделей нестационарных систем обслуживания / Бубнов В.П., Сафонов В.И. - СПб. : Лань, 1999. - 63 с.
7. Особенности программной реализации численно-аналитического метода расчёта моделей нестационарных систем обслуживания / В.П. Бубнов, А. С. Еремин, С. А. Сергеев // Труды СПИИРАН. - 2015. - Вып. 38. - C. 218232.
8. Рекурсивный метод генерации матрицы коэффициентов системы однородных дифференциальных уравнений, описывающих нестационарную систему обслуживания / В.П. Бубнов, А.Д. Хомоненко, С.А. Сергеев // XVIII Международная конференция по мягким вычислениям и измерениям (SCM-2015), 19-21 мая 2015 г., Санкт-Петербург. - СПб. : СПбГЭТУ «ЛЭТИ», 2015. - Т. 1. -С. 164-166.
9. Сергеев С.А. Метод составления систем однородных дифференциальных уравнений для расчёта вероятностно-временных характеристик нестационарных систем обслуживания / С.А. Сергеев // Интеллектуальные технологии на транспорте. - 2015. - № 2. - С. 32-42.
10. Wolff R. W., Yao Y.-C. Little's law when the average waiting time is infinite // Queueing Systems, 2014, vol. 76. -Pp. 267-281.
11. Sudhesh R., Vijayashree K. V. Stationary and transient analysis of M/M/1 G-queues // Int. J. of Mathematics in Operational Research, 2013. vol. 5. no. 2. Pp. 282-299.
12. Sudhesh R., Francis Raj L. Stationary and transient solution of Markovian queues - an alternate approach // Int. J. of Mathematics in Operational Research, 2013, vol. 5, no. 3. -Pp. 407-421.
13. Комплекс моделей нестационарных систем обслуживания с распределениями фазового типа / В.П. Бубнов, А.В. Тырва, А.С. Еремин // Труды СПИИРАН. - 2014. -№ 6(37). - С. 61-71.
14. Fehlberg E. Low-order classical Runge-Kutta formulas with step size control and their application to some heat transfer problems // NASA Technical Report 315 (1969), extract published in Computing, 1970. - Vol. 6, no. 1-2. - Pp. 61-71.
15.Бубнов В.П. Алгоритм аналитического расчёта вероятностей состояний нестационарных систем обслуживания / В.П. Бубнов // Известия Петербургского университета путей сообщения. - 2011. - № 4. - С. 90-97.
Sequential Algorithm for Generating of the Coefficient Matrix of the System of Homogeneous Differential Equations in the non Stationary System Maintenance Model
Shardakov K.S.
Emperor Alexander I St. Petersburg State Transport University St. Petersburg, Russia k.shardakov@gmail.com
Abstract: The sequential algorithm for generating a matrix of coefficients for a system of homogeneous differential equations describing a model of a non stationary service system is proposed. Its comparison with the recursive algorithm is given. The optimal storage structure of the list of states for a sequential algorithm is given. An decrease of the performing time for the algorithm compared with the recursive one was noted due to sorting the list of states and matrix of coefficients is not needs.
Keywords: coefficient matrix generation algorithm, sequential, recursive, Runge-Kutta, ode, non-stationary service system, monitoring system.
References
1. Zegzhda P. D., Zegzhda D. P., Nikolskiy A. V. (2012). Using graph theory for cloud system security modeling. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioin-formatics). - Pp. 309-318.
2. Osogami T., Raymond R. (2013). Analysis of transient queues with semi definite optimization. Queueing Systems, vol. 73. - Pp. 195-234.
3. Upadhyaya S. (2016). Queueing systems with vacation: an overview. International journal of mathematics in operational research, vol. 9, issue 2. - Pp. 167-213.
4. Bubnov V.P., Khomonenko A.D., Tyrva A.V. Software reliability model with coxian distribution of length of intervals between errors detection and fixing moments // International Computer Software and Applications Conference, 2011. -Pp. 310-314.
5. Bubnov V.P., Tyrva A.V., Khomonenko A.D. Model of reliability of the software with coxian distribution of length of intervals between the moments of detection of errors // International Computer Software and Applications Conference. 34th Annual IEEE International Computer Software and Applications Conference, COMPSAC 2010. - Seoul, 2010. -Pp. 238-243.
6. Bubnov V.P., Safonov V.I. Razrabotka dinamicheskih modelej nestacionarnyh system obsluzhivaniya. [Developing dynamic modeling of non-stationary systems.] / V.P. Bubnov, V.I. Safonov. - Saint-Petersburg, 1999. - 65 p.
7. Bubnov V.P., Eremin A.S., Sergeev S.A. Osobennosti programmnoj realizacii chislenno-analiticheskogo metoda raschyota modelej nestacionranyh sistem obsluzhivaniya:
Trudy SPIIRAN. [Features of the software implementation of umerical-analytical method of calculation models non-stationary service systems: SPIIRAS Proceedings] / V.P. Bubnov, A.S. Eremin, S.A. Sergeev. - 2015. - № 1. - Pp. 218232.
8. Bubnov V.P., Khomonenko A.D., Sergeev S.A. Recursive method for generating the coefficient matrix of the system of homogeneous differential equations describing nonstation-ary system maintenance: Proceedings of International Conference on Soft Computing and Measurements, (SCM-2015). -2015. - C. 75-77.
9. Sergeev S.A. Method for compilation of the system of homogeneous differential equations for calculation probability-time characteristics which describing non stationary systems // Intellectual Technologies on Transport. - 2015. - № 2. - C. 3242.
10. Wolff R.W., Yao Y.-C. Little's law when the average waiting time is infinite. Queueing Systems, 2014. - Vol. 76. -Pp. 267-281.
11. Sudhesh R., Vijayashree K. V. Stationary and transient analysis of M/M/1 G-queues. Int. J. of Mathematics in Operational Research, 2013, vol. 5, no 2. - Pp. 282-299.
12. Sudhesh R., Francis Raj L. Stationary and transient solution of Markovian queues - an alternate approach. Int. J. of Mathematics in Operational Research, 2013. - Vol. 5. - No. 3. -Pp. 407-421.
13. Bubnov V.P., Tyrva A.V., Eremin A.S. [A set of non-stationary queuing system models with phase-type distributions]. Trudy SPIIRAN - SPIIRAS Proceedings, 2014. -Vol. 6(37). - Pp. 61-71.
14. Fehlberg E. Low-order classical Runge-Kutta formulas with step size control and their application to some heat transfer problems. NASA Technical Report 315 (1969), extract published in Computing, vol. 6, no. 1-2, 1970. - Pp. 61-71.
15. Bubnov V.P. Algoritm analiticheskogo raschyota veroyatnostej sostoyanij nestacionarnyh system obsluzhivaniya: Izvestiya Peterburgskogo universiteta putej soobshcheniya [Algorithm of analytical calculation of non-stationary state probabilities service systems: News from the St. Petersburg University of communication] / V.P. Bubnov. - 2011. - № 4. -Pp. 90-97.