Санкт-Петербургский государственный университет
Кафедра математической теории игр и статистических
решений
Винничек Никита Николаевич
Выпускная квалификационная работа бакалавра
«Обслуживание в системе с вирусными заявками»
Направление 010400
Прикладная математика и информатика
Научный руководитель,
кандидат физ.-мат. наук,
доцент, ст. преп.
Домановская Е. Ф.
Санкт-Петербург
2016
Оглавление
Введение ................................................................................................................... 3
Постановка задачи ................................................................................................... 4
Обзор литературы.................................................................................................... 5
Глава 1. Аналитическая модель системы ............................................................. 6
1.1 Описание работы ремонтируемой системы с одним обслуживающим
каналом ................................................................................................................. 6
1.2 Описание работы ремонтируемой системы с двумя обслуживающими
каналами ............................................................................................................. 12
1.3 Переход к программной модели системы массового обслуживания .. 16
Глава 2. Программная модель рассматриваемой системы ............................... 18
2.1 Описание работы программной модели ................................................... 19
2.2 Сравнение программной и аналитической моделей................................ 20
2.3 Пример. Физическая модель ремонтируемой системы массового
обслуживания с вирусными заявками ............................................................. 22
Выводы ................................................................................................................... 24
Заключение ............................................................................................................ 25
Список литературы ............................................................................................... 26
Приложение ........................................................................................................... 27
2
Введение
Теория массового обслуживания появилась и стала развиваться
относительно недавно. В начале XX столетия был сформулирован ряд
математических
задач,
связанный
с
практическими
требованиями
телефонного дела и рациональной организации массового обслуживания.
Оказалось, что задачи подобного типа возникают в самых различных
направлениях исследований: в экономике, в транспортном деле, в технике, в
военно-промышленном деле и в организации производства.
Требования
практики
выдвигают
перед
теорией
обслуживания большое число новых постановок задач.
массового
Их рассмотрение
необходимо для приложений, для постепенного приближения условий, в
которых они решаются, к истинной картине изучаемых явлений. Так,
например, ранее не были рассмотрены случаи систем массового обслуживания
с вирусными заявками. Входящий поток может состоять не только из
реальных запросов на обслуживание, но также и из вредоносных запросов,
выводящих обслуживающие каналы или всю систему из строя.
Задачи, в которых следует принимать в расчет вероятность появления
вирусных заявок, встречаются постоянно: ложные запросы в курьерской
службе доставки; вирусные программы, частично выводящие из строя
оперативную память компьютера и т.д.
Можно указать множество других постановок задач реального
содержания, которые в своей математической части сводятся к вопросам
теории массового обслуживания, включающие в себя вероятность появления
вирусных заявок. В данной работе рассматривается именно такой класс задач.
3
Основной задачей теории массового обслуживания является изучение и
исследование
режима
функционирования
обслуживающей
системы.
Рассмотрим работу системы массового обслуживания (СМО) с вирусными
заявками. Исследуем аналитическую модель для одно- и двухканальной СМО
и перейдём к её программной интерпретации. На основании проведенных
исследований предложим рекомендации по оптимизации работы системы.
Постановка задачи
На
n -канальную
систему
массового
обслуживания
поступает
пуассоновский поток заявок, образованный подпотоками реальных запросов
на
обслуживание
и
вирусных
заявок
с
параметрами
, a , (1 a )
соответственно, a 0,5 . Обслуживание реальных заявок экспоненциально с
параметром . Поступившая вирусная заявка блокирует канал, выводя его из
обслуживания, занимает его бесконечно долго при включенной системе. Отказ
системы наступает с первой потерей реальной заявки, пришедшей на
выключенную систему, это момент обнаружения отказа. Сразу начинается
восстановление
выведенных
из
строя
каналов
обслуживания
по
экспоненциальному закону с параметром .
Можно выделить два режима работы системы:
Система включена, если система свободна или обслуживаются
реальные заявки.
Система выключена, если пришла вирусная заявка.
4
Обзор литературы.
Различные элементы теории массового обслуживания рассматриваются
во многих книгах и научных изданиях. В первую очередь стоит упомянуть
А.Я. Хинчина [8]. Его книги выделяются серьёзностью и глубиной
математического анализа. Из российской литература по теории массового
обслуживания отметим учебные пособия Г.И. Ивченко, В.А. Каштанова и И.Н.
Коваленко [6] и Б.В. Гнеденко, И.Н. Коваленко [3]. Развитию приложений
теории массового обслуживания сильно поспособствовала изложение её основ
в книге Е.С. Вентцель «Теория вероятностей» [2], написанной простым
научно-популярным языком.
Как
материал
для
начального
математического
курса
можно
использовать книгу Дж. Кемени и Дж. Снелла «Конечные цепи Маркова» [7],
с максимально понятными и элементарно проведенными доказательствами
основных теорем.
В теории массового обслуживания за последние десятилетия стали
появляться аналитические и общие вероятностные методы, которые
позволяют делать о исследуемых системах выводы собирательного характера.
Примером таких исследований может служить монографии А.А. Боровкова
[1], которые сочетают в себе многообразие вероятностных подходов и
интерпретаций с глубокими аналитическими результатами.
Использование
теории
массового
обслуживания
на
практике
невозможно без должной степени развития численных методов. Применяются
такие математические системы как Maple и MATLAB для решения задач
теории массового обслуживания. Для их освоения и применения на практике
существует множество научных пособий: В.П. Дьяконова [5], В.И. Горбаченко
[4] и другие.
5
Глава 1. Аналитическая модель системы
Опишем работу ремонтируемой системы с n обслуживающими
каналами, на которые приходят реальные и вирусные заявки. Изобразим
графы состояний с интенсивностями переходов. Отметим марковость
процесса смены состояний. Вычислим pij - вероятности переходов из
состояния i в состояние j . Составим матрицу переходов P ( pij ) . Выпишем
уравнения Колмогорова для Pi '(t ) и найдем показатели эффективности
исследуемой модели системы массового обслуживания.
1.1 Описание работы ремонтируемой системы с одним
обслуживающим каналом
Рассматриваем случай, когда n 1 . Ei (b, r ) - состояния системы, где
b - число вирусных заявок, r - число реальных заявок. Тогда граф состояний
с интенсивностями переходов будет выглядеть следующим образом:
Рис.1
6
В данном случае (см. рис.1) система может находиться в четырёх
состояниях:
E1 (0,0) - простой системы
E2 (0,1) - обработка реальной заявки
E3 (1,0) - система находится в отказе, занята вирусной заявкой
E0 - ремонт системы
Найдём вероятности переходов по состояниям. Вычислим вероятность
перехода из E1 в E2 . Вероятность того, что система из E1 раньше перейдёт в
E2 , чем в E3 .
P12 P ( E1 E2 ) ( E1 E3 )
( E1 E2 ) ( , F , f )
( E E ) ( , G, g )
3
1
F (t ) 1 e at
at
f (t ) ae
G (t ) 1 e (1a ) t
g (t ) (1 a) e (1a ) t
, (0; )
P( ) P (t : t dt ); t ; t [0; )
F (t ) g (t )dt
0
P12
(1 e
at
)(1 a) e (1a ) t a
0
Тогда вероятность перехода из E1 в E3 равняется:
P13 1 P12 1 a
Из E2 возможен переход только в E1 , из E3 только в E0 , из E0 только в
E1 :
7
P21 1
P30 1
P 1
01
В момент смены состояний переходные вероятности Pij зависят только
от номеров состояний. Т.е. эти моменты обладают марковским свойством.
Значит, процесс содержит вложенную конечную цепь Маркова.
Матрица переходов:
0 1 2 3
0 0
1 0
P
2 0
3 1
0
0
a 1 a
0
0
0
0
1
0
1
0
При 𝑁 = 6 𝑃𝑁 - транзитивна (все элементы положительны) по
теореме Маркова существует стационарный режим вложенной конечной цепи
Марковской цепи с непрерывным временем.
Теперь
составим
систему
уравнений
Чепмена-Колмогорова
рассматриваемой системы.
Pi (t t ) Pk (t ) Pki (t ); i 0,3
k
P0 (t t ) P0 (t ) P00 (t ) P3 (t ) P30 ( t )
P (t t ) P (t ) P (t ) P (t ) P (t ) P (t ) P (t )
1
0
01
1
11
2
21
P2 (t t ) P1 (t ) P12 (t ) P2 (t ) P22 ( t )
P3 (t t ) P1 (t ) P13 (t ) P3 (t ) P33 (t )
P0 (t t ) P0 (t )(1 t ) P3 (t )at o(t )
P (t t ) P (t )t P (t )(1 t ) P (t ) t o(t )
1
0
1
2
P2 (t t ) P1 (t )at P2 (t )(1 t ) o(t )
P3 (t t ) P1 (t )(1 a )t P3 (t )(1 at ) o(t )
8
Оставим в правой части уравнений все элементы, содержащие t , а в
левую перенесем все элементы без t :
P0 (t t ) P0 (t ) P0 (t )t P3 (t )at o(t )
P (t t ) P (t ) P (t )t P (t )t P (t ) t o(t )
1
1
0
1
2
P2 (t t ) P2 (t ) P1 (t )at P2 (t ) t o(t )
P3 (t t ) P3 (t ) P1 (t )(1 a )t P3 (t )at o(t )
Теперь разделим обе части на t
P0 (t t ) P0 (t )
P0 (t ) P3 (t )a
t
P1 (t t ) P1 (t ) P (t ) P (t ) P (t )
0
1
2
t
P2 (t t ) P2 (t ) P (t )a P (t )
1
2
t
P (t t ) P (t )
3
3
P1 (t )(1 a ) P3 (t )a
t
При t 0 , пределы правых частей уравнений существуют, в силу
равенства, они существуют и слева, а тогда это производные функций
Pi (t ); i 0,3 . Таким образом запишем систему дифференциальных уравнений:
P0 '(t ) P0 (t ) P3 (t )a
P '(t ) P (t ) P (t ) P (t )
1
0
1
2
P2 '(t ) P1 (t )a P2 (t )
P3 '(t ) P1 (t )(1 a ) P3 (t )a
Это система четырех линейных дифференциальных уравнений первого
порядка с постоянными коэффициентами. Чтобы решить уравнения
Колмогорова и найти вероятности состояний, прежде всего надо задать
начальные условия.
𝑃1 (0) = 1; 𝑃0 (0) = 𝑃2 (0) = 𝑃3 (0) = 0
9
Можно решить её с помощью пакета прикладных программ MATLAB.
Для решения дифференциальных уравнений в форме Коши MATLAB имеет
функцию dsolve(‘eqn1’,’eqn2’, …), которая возвращает аналитическое
решение системы дифференциальных уравнений с начальными условиями
(см. приложение №1). Получаем решение системы дифференциальных
уравнений в виде:
P0 (t ) P0 (a, , , , t ); P1 (t ) P1 (a, , , , t );
P2 (t ) P2 (a, , , , t ); P3 (t ) P3 (a, , , , t );
Найдем финальные вероятности
lim Pi (t ) Pi ; i 0,3;
t
3
P 1
i 0
i
Правые части уравнений системы становятся постоянными, а значит и
левые части, в силу равенства, становятся равны const . Эти const могут быть
только нулями, иначе lim Pi (t ) выйдут из области допустимых значений [0,1] ,
t
что невозможно для вероятностной меры. Значит, для нахождения финальных
вероятностей приравняем все левые части в уравнениях Чепмена-Колмогорова
к нулю и решим полученную систему уже не дифференциальных, а линейных
алгебраических уравнений:
P0 P3a
P P P
1
0
2
1
P2 Pa
P3a P1 (1 a )
Для решения линейных алгебраических уравнений MATLAB имеет
функцию solve(‘eqn1’,’eqn2’, …), которая возвращает аналитическое решение
системы линейных уравнений(см. приложение №1). Получаем решение
системы линейных алгебраических уравнений в виде:
10
P0 P0 (a, , , ); P1 P1 (a, , , );
P2 P2 (a, , , ); P3 P3 (a, , , );
Также можем аналитически решить эту систему, выразив каждое
Pi ; i 0,2,3 через P1 :
P2
a
P1
P1; P3
1 a
1 a
P1; P0
P
a
1
a
a a a 2
2
(1.1)
(1.2)
В стационарном режиме рассматриваемая система находится в
состояниях
E0 , E1, E2 , E3 в среднем долю времени равную
P0 , P1, P2 , P3
соответственно, на промежутке времени, достаточно удаленном от начала
функционирования.
Найдем показатели эффективности исследуемой модели системы
массового обслуживания:
Q P1
(1.3)
- относительная пропускная способность, заявка может быть принята на
обслуживание, система свободна.
A Qa
(1.4)
– абсолютная пропускная способность (число обслуженных заявок за ед.
времени).
𝑃потерь = 𝑃0 + 𝑃2 + 𝑃3 = 1 − 𝑃1
(1.5)
- вероятность возможной потери реальной заявки, система несвободна.
𝐵 = 𝑎𝜆𝑃потерь = 𝑎𝜆(1 − 𝑃1 ) = 𝑎𝜆 − 𝐴
(1.6)
- число реальных заявок, получивших отказ за ед. времени, это
интенсивность потока потерянных заявок.
11
1.2 Описание работы ремонтируемой системы с двумя
обслуживающими каналами
Рассматриваем случай, когда n 2 . Ei (l , b, r ) - состояния системы, где
l
– число ремонтируемых каналов, b - число вирусных заявок, r - число
реальных заявок. Ремонт одного или двух каналов начинается при потере
реальной заявки, в случае когда система занята двумя вирусными заявками
или
одной
вирусной,
одной
реальной,
происходит
обнаружение
неисправности системы. Тогда граф состояний с интенсивностями переходов
будет выглядеть следующим образом:
Рис.2
Найдём вероятности переходов между состояниями, изображенными на
рис. 2. Матрица переходов:
12
0
0 0
1
2 0
3
4 0
P
5 0
6 0
7 0
8 0
9 0
1
2
3
a
0
1
0
a
0
0
0
0
0
5
6
0
0
1 a
0
0
0
0
0
0
a
0
0
0
(1 a)
0
0
0
0
4
7
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
a
0
0
0
0
0
a
a
0
0
0
0
0
0
0
0
При 𝑁 = 8
0
a
a
1
a
a
0
0
0
0
8
9
0
0
0
0
0
(1 a)
0
0
0
0
0
0
1 a
0
0
0
0
0
0
0
𝑃𝑁 - транзитивна (все элементы положительны)
существует стационарный режим цепи с дискретным временем существует
режим и с непрерывным временем.
Теперь
составим
систему
уравнений
Чепмена-Колмогорова
рассматриваемой системы. Рассуждаем аналогичным образом, как в случае
одноканальной системой:
13
P '(t ) P (t ) P (t ) P (t )
0
1
3
0
P1 '(t ) a P0 (t ) ( ) P1 (t ) P2 (t ) P4 (t )
P2 '(t ) a P1 (t ) P2 (t )
P3 '(t ) ( ) P3 (t ) P4 (t ) P5 (t )
P4 '(t ) a P3 (t ) ( ) P4 (t ) a P7 (t )
P5 '(t ) P5 (t ) a P8 (t ) a P9 (t )
P '(t ) (1 a) P (t ) P (t ) P (t ) P (t )
0
6
7
8
6
P7 '(t ) (1 a) P1 (t ) a P6 (t ) (a ) P7 (t )
P8 '(t ) (1 a) P3 (t ) ( a ) P8 (t )
P9 '(t ) (1 a) P6 (t ) a P9 (t )
9
P (t ) 1
i
i 0
Начальные условия:
𝑃0 (0) = 1; Pi (0) 0, i 1,9
Решаем её с помощью функции dsolve() пакета прикладных программ
MATLAB
(см.
приложение
№2).
Получаем
решение
системы
дифференциальных уравнений в виде:
P0 (t ) P0 (a, , , , t ); P1(t ) P1(a, , , , t ); P2 (t ) P2 (a, , , , t ); P3 (t ) P3 (a, , , , t );
P4 (t ) P4 (a, , , , t ); P5 (t ) P5 (a, , , , t ); P6 (t ) P6 (a, , , , t ); P7 (t ) P7 (a, , , , t);
P8 (t ) P8 (a, , , , t ); P9 (t ) P9 (a, , , , t );
Для стационарного режима система выглядит следующим образом:
14
P P P
1
3
0
( ) P1 a P0 P2 P4
P2 a P1
( ) P3 P4 P5
( ) P4 a P3 a P7
P5 a P8 a P9 (t )
P (1 a ) P P P
0
7
8
6
(a ) P7 (1 a) P1 a P6
( a ) P8 (1 a ) P3
a P9 (1 a ) P6
9
P 1
i
i 0
Решаем её с помощью функции solve() пакета прикладных программ
MATLAB (см. приложение №2). Получаем решение системы линейных
алгебраических уравнений в виде:
P0 P0 (a, , , ); P1 P1 (a, , , ); P2 P2 (a, , , ); P3 P3 (a, , , );
P4 P4 (a, , , ); P5 P5 (a, , , ); P6 P6 (a, , , ); P7 P7 (a, , , );
P8 P8 (a, , , ); P9 P9 (a, , , );
Также можем аналитически решить эту систему, выразив каждое Pi
через P0 и постоянные С и D :
C a 2 3 a 2 2 a 2 a 2 2 a 2 2a 2 a 2
a a 2 a 2 a 2 2 2 2
D a 4 3 a3 4 a3 3 a3 2 a3 2 2 a3 2
a 4 3 2 a 2 3 2a 2 3 a 2 2 2 a 2 2 2a 2 2 2
a 2 2 2 a 2 2 a 2 a 2 a 2
P1
D
a D
aC ( a ) D
(C D)
P0 ;
P0 ; P2 2 P0 ; P3
P0 ; P4
C
C
C
C
15
P5
( a )C ( a ) D
P0 ;
2C
(a 1) D a ( 2 a ) D
P6
P0 ;
a
C
a
a
C
( 2 a ) D
(1 a) (C D)
P0 ;
P7
P0 ; P8
(
a
)
C
a
C
2
1 a (a 1) D a ( a ) D
P9
P0 ;
a
a C
a aC
1
1 9
P0 1 Pi ;
P0 i 1
Найдем показатели эффективности исследуемой двухканальной модели
системы массового обслуживания:
𝑄 = 𝑃0 + 𝑃1 + 𝑃3 + 𝑃6 - относительная пропускная способность, заявка
может быть принята на обслуживание, система полностью свободна или есть
один свободный канал.
𝐴 = 𝑄𝑎𝜆 – абсолютная пропускная способность (число обслуженных
реальных заявок за ед. времени).
𝑃потери = 1 − 𝑄 - вероятность потери реальной заявки.
𝑁потерь = 𝑎𝜆𝑃потери - число реальных заявок, получивших отказ за ед.
времени, интенсивность потока потерянных реальных заявок.
1.3 Переход к программной модели системы массового
обслуживания
Рассмотрев
случаи
одно-
и
двухканальной
системы
массового
обслуживания, отметим отсутствие четкой закономерности построения графа
16
переходов между состояниями системы, а соответственно сложность в
построении или отсутствие общей аналитической модели для случая n канальной системы.
Для изучения работы рассматриваемой системы в общем виде напишем
программу, моделирующую систему массового обслуживания с вирусными
заявками
и
с
возможностью
ремонта.
По
введенным
параметрам:
интенсивность входящих потоков вирусных и реальных заявок, интенсивность
обслуживания реальных заявок, интенсивность ремонта выведенной из строя
системы - программа должна смоделировать процесс работы изучаемой
системы массового обслуживания. Тогда для конкретных параметров мы
сможем определить оптимальное число обслуживающих каналов. Так, одной
из
характеристик
обслуживающей
системы
является
среднее
число
потерянных реальных заявок за единицу времени, которая уменьшается при
увеличении числа обслуживающих каналов. Однако каждый дополнительный
канал требует материальных затрат, что является негативным фактором.
Следовательно, в теории возникают задачи оптимизации: каким образом
достичь определенного уровня обслуживания (максимального сокращения
числа потерянных заявок) при минимальных затратах, связанных с затратами
на обслуживание каналов. Именно для такого анализа и необходимо
программа, моделирующая систему массового обслуживания позволяющая
провести анализ.
17
Глава 2. Программная модель рассматриваемой
системы
В качестве языка программирования был выбран C++, который
удовлетворяет всем требованиям реализации программной модели для общего
случая рассматриваемой системы массового обслуживания.
Генерируется поток заявок, подчиняющийся пуассоновскому закону
распределения
с
задаваемым
параметром,
который
поступает
на
обслуживающие каналы. Интервал времени моделирования работы системы
задается в программе. Время обслуживания реальной заявки и ремонта
выведенного из строя канала, также определяется случайным образом и
подчиняются экспоненциальному закону с задаваемыми параметрами. Время
моделирования и время обслуживания заявок генерируется в условных
единицах времени.
Когда теряется реальная заявка, происходит проверка исправности
обслуживающих каналов. При обнаружении хотя бы одного выведенного из
строя канала, начинается ремонт системы, состоящий в ремонте всех
неисправных каналов.
Программа фиксирует изменение состояния системы в каждую единицу
времени моделирования и отображает полученный результат. По окончании
работы программы выводятся доли времени нахождения системы в каждом
состоянии, количество обработанных и потерянных реальных заявок,
производительность каждого канала (среднее число обработанных реальных
заявок за единицу времени) и производительность системы в целом.
18
2.1 Описание работы программной модели
Основными исполняемыми модулями программы, моделирующей
рассматриваемую систему массового обслуживания (см. приложение №3),
являются классы Channel и MaintenanceSystem.
Класс Channel ответственен за работу каждого канала и имеет
следующие внутренние параметры:
int status; - переменная, отвечающая за текущее состояние данного
канала, принимает значения «0» (свободен), «1» (обрабатывает реальную
заявку) или «-1» (выведен из строя).
bool status_changed; - логическая переменная, сигнализирующая о том,
что канал изменил свое состояние.
int real_app_done; - переменная-счётчик, в которой фиксируется
количество обработанных каналом реальных заявок.
bool virus; - логическая переменная, сигнализирующая о том, что канал
выведен из строя.
int time_real; - переменная-счётчик, в которой указывается общее время,
затраченное на обработку каналом реальных заявок.
int time_free; - переменная-счётчик, в которой указывается общее время
простоя канала.
int income_real; - переменная-счётчик, в которой фиксируется число
заявок пришедших на канал для обслуживания (в независимости от того, были
ли они приняты или нет).
int
time_virus;
-
переменная-счётчик,
в
которой
указывается
длительность состояния, когда канал выведен из строя.
В данном классе при поступлении заявки на канал происходят проверка
типа данной заявки и соответствующие действия с ней внутри канала.
19
Класс MaintenanceSystem выполняет работу всей системы массового
обслуживания и имеет следующие внутренние параметры:
vector<Channel> channels; - вектор, состоящий из множества классов
типа " Channel ".
vector<vector<int> > status_history; - вектор векторов, которые хранят в
себе состояния системы в каждый момент времени. Отображает динамику
изменения состояний системы.
map<vector<int>, int> status_statistics; - вектор типа map, состоящий из
всех возможных состояний, в которых побывала система, и время,
проведенное в этих состояниях.
int T; - время работы всей системы.
int num_lost; - число потерянных реальных заявок.
int num_accepted; - число обслуженных реальных заявок.
void run() – функция, описывающая генерацию входящего потока заявок
и работу системы.
В данном классе генерируется входящий поток заявок и подается на
обслуживающие каналы. В файл "stats.txt" выводится статистика работы
системы, включающая в себя все возможные состояния системы и доли
времени, которые система находилась в этих состояниях, производительность
каждого обслуживающего канала и всей системы в целом, число обслуженных
и потерянных заявок. В файл "process.txt" выводится динамика работы
системы: последовательный переход по состояниям системы и время,
проведенное в этих состояниях.
2.2 Сравнение программной и аналитической моделей
Для того чтобы показать адекватность и надежность программной
модели рассматриваемой системы массового обслуживания, сравним её с
20
аналитической моделью для случаев одно- и двухканальной системы при
конкретных значениях параметров системы.
Пусть:
a 0.8; 0.0425; 0.25; 0.05;
Тогда, подставив эти значения в (1.1) - (1.6) и задав такие же значения
параметров в программе, получим:
n 1
Аналитическая модель
Программная модель
A
0.02128
0.02122
𝑷потерь
0.3741
0.370185
𝑵потерь
0.012719
0.0132639
Q
0.6259
0. 629815
Табл.№1
В таблице №1 приведены следующие характеристики системы:
n - количество обслуживающих каналов.
Q - относительная пропускная способность.
A - абсолютная пропускная способность (число обслуженных заявок за
ед. времени).
𝑃потерь - вероятность возможной потери реальной заявки.
𝑁потерь - число реальных заявок, получивших отказ за ед. времени.
Теперь рассмотри эти характеристики для случая n 2 :
21
n2
Аналитическая модель
Программная модель
A
0.0282064
0.0279861
𝑷потерь
0.1704
0.170213
𝑵потерь
0.0057936
0.00574
Q
0.8296
0.829787
Табл. №2
Как видно из таблиц №1 и №2 погрешность вычисления составляет
тысячные доли, что является очень хорошим показателем. На основании этих
данных
можно
заключить,
что
программная
модель
соответствует
аналитической, а значит является достоверной и надёжной.
2.3 Пример. Физическая модель ремонтируемой системы
массового обслуживания с вирусными заявками
В качестве физической модели описанной выше системы массового
обслуживания рассмотрим курьерскую службу доставки еды. Вирусной
заявкой будем считать ложный заказ. По статистике каждый пятнадцатый
заказ является ложным, когда курьер прибывает на место, указанное
заказчиком, ожидает получателя, но в итоге никто так и не забирает заказ.
Учитывая, что еда может быть скоропортящейся или просто теряет свой
товарный вид через какое-то время, то получатся, что компания терпит убытки
от каждого такого заказа. Причин ложных заказов может быть несколько:
когда конкуренты, например, начинают названивать, делать заказы на
большие суммы и указывать неправильные адреса, человек просто передумал
заказывать еду, а отменить свой заказ уже поздно, или просто забыл о
сделанном заказе.
Обслуживающим каналом будем называть курьера службы доставки,
обслуживание реальной заявки – процесс приготовления еды и доставки,
ремонтом – время ожидания заказчика по прибытии к месту доставки и
утилизация продукта.
22
Изменим код нашей программы таким образом, чтобы он удовлетворял
условиям поставленной задаче (см. приложение №4).
Пусть в фирму по доставке еды в среднем обращается 600 человек в
сутки, каждая пятнадцатая заявка является вирусной, на обслуживание одной
заявки уходит в среднем 1 час, среднее время ожидания клиента по прибытии
к месту доставки составляет 20 минут. Получаем параметры нашей системы:
0.416 (заявок за минуту), (1 a) 0.07 , a 0.93 , 0.017 (заявок в
минуту), 0.05 (заявок в минуту). Регулируя количество обслуживающих
каналов можем проследить динамику работы системы:
Время работы системы
Количество
обслуживающих каналов
Число поступивших
заявок
Число обслуженных
заявок
Число потерянных заявок
Количество
задействованных каналов
1
1
1
1
1
1
месяц
месяц
месяц
месяц
месяц
месяц
100
50
42
30
2
1
16628
17024
16905
16755
16830
17540
16628
17024
16905
15694
1257
626
0
0
0
1061
15573
16914
41
42
42
30
2
1
Табл. №3
По результатам таблицы №3 можно сделать следующий вывод:
оптимальное количество обслуживающих каналов в системе равно 42, в этом
случае потери заявок являются незначительными, и нет простаивающих
каналов.
23
Выводы
В процессе подготовки ВКР была исследована ремонтируемая система
массового обслуживания с вирусными заявками. Аналитически были описаны
следующие модели: одно- и двухканальной СМО, вычислены стационарные и
абсолютные вероятности, а также средние значения числа обслуженных и
потерянных реальных заявок за единицу времени.
В ходе работы была написана программа, позволяющая моделировать
систему
массового
обслуживания
с
вирусными
заявками
с
n
обслуживающими каналами. Практически в данной работе была реализована
функциональная модель, позволяющая прослеживать изменения поведения
состояния системы.
Проведен анализ аналитических и компьютерной моделей и выявлено
их полное соответствие.
В результате работы была выработана способность практического
применения описанной модели к реальным задачам. Программная модель
применена для исследования работы курьерской службы доставки еды. На
основании
проведенного
исследования
оптимизации работы системы.
24
вынесены
рекомендации
по
Заключение
Цель настоящей работы заключается в исследовании ремонтируемой
системы массового обслуживания с вирусными заявками и возможности
применить её в деле. При решении поставленной задачи построены
аналитические и программная модели. Их исследование необходимо для
приложений, для постепенного приближения условий, в которых они
решаются, к задачам, выдвигаемым требованиями практики.
Таким образом, исследован новый класс задач теории массового
обслуживания, вероятно, раннее не освящавшийся в литературе по данной
тематике. Возможно дальнейшее его изучение и применение к задачам,
постановки которых приближены к реальным условиям.
25
Список литературы
1. Боровков А.А. Вероятностные процессы в теории массового
обслуживания. М.: Наука, 1972. 357с.
2. Вентцель Е.С. Теория вероятностей: Учеб. для вузов. 6-е изд. стер. М.:
Высш. шк., 1999. 576 c.
3. Гнеденко Б.В., Коваленко И.Н. Введение в теорию массового
обслуживания. Изд. 5-е, испр. М.: Издательство ЛКИ, 2011. 400с.
4. Горбаченко В.И. Вычислительная линейная алгебра с примерами на
MATLAB. СПб.: БХВ-Петербург, 2011. 318 с.
5. Дьяконов В.П. MATLAB 6.0/6.1/6.5/6.5 + SP1 + Simulink 4/5. Обработка
сигналов и изображений. М.: СОЛОН-Пресс, 2004. 592 с.
6. Ивченко Г.И., Каштанов В.А., Коваленко И.Н. Теория массового
обслуживания. М.: ЛИБРОКОМ, 2012. 304 с.
7. Кемени Д. Дж., Снелл Дж. Л. Конечные цепи Маркова. М.: Наука,
1970. 271 с.
8. Хинчин А. Я. Работы по математической теории массового
обслуживания / Под редакцией Б. В. Гнеденко. М.: Физматгиз, 1963.
236 с.
26
Приложение
Приложение №1
Приложение №2
27
Отзывы:
Авторизуйтесь, чтобы оставить отзыв