
- •Системы массового обслуживания.
- •Формирование реализации случайных потоков однородных событий
- •Одноканальная система.
- •Простейшая многоканальная система.
- •Точность и вероятность в имитации смо
- •Алгоритм имитации работы смо
- •Описание Процедур и Функций.
- •Текст программы.
- •Результат работы программы.
- •Список использованной литературы.
- •«Моделирование сложных систем» н. П. Бусленко
- •«Исследование Операций » е. С. Вентцель
Одноканальная система.
Моделированию процессов функционирования систем массового обслуживания мы уделяем серьезное внимание по двум соображениям. Во-первых, многие элементы и подсистемы различных сложных систем хорошо описываются как системы массового обслуживания. Поэтому модели типичных систем массового обслуживания представляют непосредственный интерес. Кроме того, приемы моделирования, характерные для систем массового обслуживания, широко используются при построении моделей для сложных систем других типов.
Мы начинаем изучение методики моделирования систем массового обслуживания с простейшего случая системы с одним обслуживающим устройством (каналом).
Итак, рассмотрим
одноканальную систему массового
обслуживания, в которую поступают
заявки, образующие ординарный поток
однородных событий с заданным законом
распределения. Время занятости
канала
(длительность обслуживания) является
случайной величиной, не зависящей от
«предыстории» процесса обслуживания,
с законом распределения
.
Заявки в системе обслуживаются в порядке
очереди (в том порядке, в котором они
поступили в систему). Если поступившая
заявка застает канал занятым, то она
ожидает освобождения канала, но не
более чем
после
чего получает отказ. Величина
представляет собой случайную величину
с законом распределения
.
Для различных заявок величины
независимы.
В результате моделирования желательно получить характеристики качества обслуживания: долю обслуженных заявок, долю заявок, получивших отказ, среднее время ожидания и т. д.
Процесс функционирования системы массового обслуживания будем рассматривать в интервале времени [0, Т]. Это значит, что заявки, появившиеся в момент tj >T, в модели не рассматриваются. Кроме того, обслуженными считаются только те заявки, для которых время окончания обслуживания
Если для данной
заявки время начала обслуживания
,
а время окончания обслуживания
,
то заявка считается получившей
отказ.
Для построения алгоритма, моделирующего процесс функционирования такой системы массового обслуживания, нам потребуются следующие операторы:
Ф1 - формирование случайных значений моментов tj поступления очередной заявки в систему (формирование реализации потока заявок);
Р2 - проверка условия tj < T, где Т — граница интервала времени [0,T], на котором изучается функционирование системы;
Р3
- проверка
условия
,
где
момент освобождения канала от
обслуживания предыдущей заявки;
Ф4 - формирование случайных значений длительности ожидания в соответствии с законом распределения ;
А5
- вычисление
верхней границы
интервала
[
,
]
ожидания
заявки в очереди;
Р6 - проверка условия <
F7 - формирование момента начала обслуживания j-и заявки:
F8— формирование момента начала обслуживания j-и заявки:
Ф9
- формирование
случайных значений длительности
обслуживания
(времени занятости канала) в соответствии
с законом распределения
.
A10
-
вычисление момента
окончания обслуживания j-и заявки
(момента освобождения канала);
Р11 — проверка условия <= T;
K12 — счетчик количества m обслуженных заявок;
A13—вычисление
длительности
ожидания обслуживания (времени
пребывания в очереди) для j-и заявки;
K14 — счетчик числа заявок m, получивших отказ;
K15 — счетчик числа реализации N при моделировании;
P16 — проверка условия N < N* , где N* — заданное число реализации, необходимое для обеспечения требуемой точности расчета;
F17 — переход к очередной реализации;
A18—обработка результатов моделирования;
Я19 — окончание вычислений и выдача результатов. Теперь можно записать операторную схему алгоритма, моделирующего процесс функционирования рассматриваемой одноканальной системы массового обслуживания. Она имеет следующий вид:
(5.69)
Перед началом моделирования должны быть заданы начальные условия, соответствующие практической сути дела. Например, если при t = 0 канал свободен и заявки в систему еще не поступили, то начальные условия будут иметь вид
t0=0, =0, m=0, m=0, N=0 (5.70)
В качестве исходных данных для решения задачи должны быть указаны граница интервала Т исследования процесса, закон распределения потока заявок, законы распределения и , а также число реализации N*, обеспечивающее заданную точность.
Для наглядности на рис. 5.1 представлена блок-схема моделирующего алгоритма, соответствующая операторной схеме (5.69).
Остановимся кратко на работе алгоритма и его основных операторах.
Оператор Ф1 формирует случайные числа, которые имитируют поток однородных событий tj в соответствии с заданным законом распределения и правилами, рассмотренными в предыдущем параграфе. Оператор Р2 проверяет условие tj < T. Если
Рис. 5.1.
это условие выполнено, то заявка, появившаяся в момент tj, поступает в систему и рассматривается как претендент на обслуживание. Поэтому по стрелке с индексом 1 управление передается оператору Р3 Для дальнейшего оперирования над заявкой. Если же условие, проверяемое оператором P2, не выполнено, то заявка в систему в пределах интервала (0,Т) не поступает, и тогда по стрелке с индексом 0 управление передается оператору K15 для подсчета числа реализации.
Оператор Р3
проверяет условие
или, другими
словами, определяет, занят или
свободен канал в момент поступления
j-и заявки. Если
(в момент поступления заявки канал
занят), то управление от оператора Р3
по стрелке с индексом
1 передается
оператору Ф4. Рассмотрим сначала эту
ветвь алгоритма (Ф4—F77)
Оператор Ф4 формирует случайные значения
длительности ожидания
,
оператор А5 вычисляет
,
а оператор Р6 сравнивает величины
и
.
Если
<=
то
имеется возможность обслужить заявку,
причем момент начала обслуживания
совпадает с моментом освобождения
канала (оператор
F7). Если
же
<
,
то заявка не может быть обслужена, и
тогда от оператора Р6 по стрелке с
индексом
1 управление
передается оператору К14 Для подсчета
количества отказов.
Возвратимся к
оператору Р3. Пусть теперь
в момент
поступления заявки канал свободен
(условие, проверяемое оператором Рз,
оказывается невыполненным). Тогда от
оператора Р3 по стрелке с индексом
0 управление
передается оператору
F8.
Поскольку
в момент
tj
поступления заявки канал свободен,
обслуживание может быть начато
немедленно:
=
tj
Теперь переходим
к работе операторов Ф9 и A10 Они имитируют
сам факт обслуживания заявки (работу
обслуживающего канала над заявкой
номер
j).
Одним из операторов
F7 или
F8 уже
определен момент начала операции
Оператор Ф9 формирует случайное
значение длительности обслуживания
а оператор A10 определяет время освобождения
канала (момент окончания обслуживания)
.
На этом, собственно, заканчивается рассмотрение основной части моделирующего алгоритма. Далее рассматриваются операторы, хотя и не имеющие отношения к имитации работы обслуживающего канала, но играющие существенную роль при моделировании.
Оператор Р11 проверяет условие <= T. Если это условие выполнено, то весь интервал времени, в течение которого продолжалось обслуживание заявки, принадлежит интервалу [0, Т].Поэтому рассматриваемую заявку можно считать обслуженной. От оператора Р11 по стрелке с индексом 1 управление передается оператору К12 для подсчета количества обслуженных заявок. Далее вступает в строй оператор A13, который вычисляет для рассматриваемой обслуженной заявки время ее пребывания в системе (время ожидания в очереди). Эта величина может оказаться необходимой для формирования одной из искомых величин (например, среднего времени ожидания при обработке результатов моделирования (оператор А18)).
От оператора А13 управление передается оператору Ф1 для формирования момента поступления новой заявки.
Если же > T (возвращаемся к оператору Р11), то окончание обслуживания не помещается в интервале [0,T], и мы должны считать, что заявка получает отказ. В связи с этим от оператора Р11 по стрелке с индексом 0 управление передается оператору K14 для подсчета числа отказов и, поскольку история данной заявки закончилась, далее оператору Ф1 для формирования момента поступления новой заявки.
В связи с
рассмотрением работы оператора Р3
мы уже отмечали, что при невыполнении
условия
очередная
заявка на обслуживание не поступает,
заканчивается соответствующая реализация
процесса обслуживания, и управление
от оператора Р2
(по стрелке
с индексом
0) передается
оператору К15. Оператор
К15 прибавляет
единицу к количеству обследованных
реализаций процесса. Полученное
число
N сравнивается
(оператор P16)
с N*,
и если
N < N*,
то моделирование продолжается (операторы
F17, Ф1
b т.д. ),
в противном случае моделирование
заканчивается (операторы
A18 и Я19).
Обработка результатов моделирования предусматривает использование сведений, накопленных счетчиками К12 (число обслуженных заявок), K14 (число отказов), а также оператором А13 (длительность пребывания заявки в системе), для оценки искомых величин (вероятность отказа, среднее время ожидания и т. д.).
Иногда требуется знать вероятностные характеристики длины очереди (числа заявок в очереди). В рассмотренном нами моделирующем алгоритме не предусмотрена фиксация такой информации, которая позволила бы оценить эти характеристики. Однако модификация алгоритма, обеспечивающего фиксацию такой информации, оказывается несложной. Для этого достаточно фиксировать следующие события: поступление новой заявки в систему, начало обслуживания очередной заявки и уход из системы заявки, получившей отказ.