
- •Системы массового обслуживания.
- •Формирование реализации случайных потоков однородных событий
- •Одноканальная система.
- •Простейшая многоканальная система.
- •Точность и вероятность в имитации смо
- •Алгоритм имитации работы смо
- •Описание Процедур и Функций.
- •Текст программы.
- •Результат работы программы.
- •Список использованной литературы.
- •«Моделирование сложных систем» н. П. Бусленко
- •«Исследование Операций » е. С. Вентцель
Простейшая многоканальная система.
Обобщение методики построения моделирующих алгоритмов для случая простейших многоканальных систем не встречает принципиальных затруднений. В самом деле, пусть, например, речь идет о многоканальной системе массового обслуживания, содержащей n идентичных каналов. Заявки образуют ординарный поток однородных событий с заданным законом распределения и принимаются к обслуживанию в порядке очереди (в порядке поступления в систему) Если поступившая заявка застает все каналы занятыми, то она ожидает освобождения канала, но не более чем , после чего получает отказ. Время обслуживания - случайная величина. Для обслуживания заявок привлекаются свободные каналы в порядке очереди (прежде используется тот канал, который освободился ранее других).
Легко видеть, что рассматриваемая многоканальная система по своему характеру близка к той одноканальной системе, которую мы изучали в начале § 5.3. Поэтому при построении моделирующего алгоритма мы будем ориентироваться на алгоритм (5.69).
Заменим в операторах
Р3,
P6,
F7
алгоритма
(5.69) величину
на
min
,
под которой
будем понимать наименьшее время
освобождения одного из каналов системы.
Соответствующие операторы будем
обозначать в дальнейшем Р3,
P6,
F7.
Кроме
того, введем дополнительно новый
оператор А20
— выбор
min
наименьшего
из
.
В операторах А10 и Р11 (теперь они будут
обозначаться А10 и Р11) вместо
необходимо
иметь,
где индекс
k обозначает
номер линии.
Наконец, можно
записать операторную схему моделирующего
алгоритма. Она аналогична схеме
(5.69):
(5.75)
С точки зрения процесса работы алгоритм (5.75) также близок к (5.69). Поэтому на описании его мы останавливаться не будем.
Настоящим примером мы подтвердили сказанное выше о возможности обобщения методов моделирования на многоканальные системы массового обслуживания. Необходимо отметить, что структура моделирующего алгоритма зависит от тех предположений, которые сделаны относительно дисциплины очереди заявок и порядка выбора каналов для обслуживания. Рассмотренный выше пример относится к наиболее простым предположениям. Выбор заявки из очереди по наименьшему , как в случае. (5.72), в сочетании с другими правилами выбора каналов может привести к заведомо более сложному моделирующему алгоритму.
Во многих случаях под алгоритм, обеспечивающий выбор канала для обслуживания в соответствии с заданным правилом, может быть построен следующим образом.
Пусть Р31 — проверка условия i<n , где i — текущее, а n — максимальное значение номера обслуживающего канала;
R32 - счетчик числа каналов (реализует операцию i + 1);
P4 —
проверка условия
где
— момент
поступления очередной заявки, а
— момент
освобождения
i-ro канала;
F33 - запись в регистр , для которых справедливо условие, проверяемое оператором P4;
K34 - счетчик числа свободных каналов (реализует операцию nсв+1, где nсв - число свободных каналов);
Р35 - проверка условия nсв > 0, т. е. имеются ли свободные каналы в момент
F36- реализация заданного правила выборки канала для обслуживания.
Тогда под алгоритм приобретает следующий вид:
(5.76)
Здесь под операторами
Р2,
A2
и Ф8 условно
понимаются проверка условия
,
запоминание
и формирование
=
соответственно.
Более наглядно сущность работы под
алгоритма и его связь с другими частями
(операторами) моделирующего алгоритма
представлена на рис.
5.4.
Оператор F36 может реализовать практически любое правило выбора канала для обслуживания заявки, например: определить min если каналы используются в порядке очереди, выбрать канал по жребию, если они выбираются в случайном порядке, и т.д. В каждом конкретном случае под алгоритм (5.76) может иметь тот или другой вид. Например, для условий моделирования, принятых в начале настоящего параграфа, он значительно упрощается (сводится к одному оператору A20—выбору min ) и связывается с другими частями моделирующего алгоритма так, как показано в операторной схеме (5.75).
Рассмотрим еще один пример. Пусть имеется n-канальная система массового обслуживания со свойствами, аналогичными свойствам системы, которую мы рассматривали в начале настоящего параграфа (см. моделирующий алгоритм (5.75) и т. д.), за исключением порядка выбора каналов для обслуживания. Пусть теперь каналы выбираются в случайном порядке по жребию.
Операторная схема моделирующего алгоритма для этого случая имеет вид
(5,77)
Этот же алгоритм в виде блок-схемы представлен на рис. 5.5.
Мы не будем подробно описывать работу алгоритма (5.77), так как отдельные его подалгоритмы уже описаны выше. Сделаем некоторые замечания по его структуре. Будем сравнивать рассматриваемый моделирующий алгоритм (5.77) с алгоритмом (5.72), который был достаточно подробно описан в предыдущем параграфе.
Легко видеть, что часть алгоритма (5.77), состоящая из операторов fq, Фзо и т. д. вплоть до выдачи результатов (оператор Я30), полностью совпадает с соответствующей частью алгоритма (5.72) и в дополнительном описании не нуждается. То же самое можно сказать относительно части алгоритма (5.77), состоящей из операторов Р7 (при условии, что k > 0) и т. д. вплоть до оператора A19. Она тоже совпадает с соответствующей частью алгоритма (5.72). Это обстоятельство можно интерпретировать следующим образом. Если нет свободных каналов, а очередь заявок имеется (первый случай) или имеется очередь заявок при наличии одной свободной линии (второй случай), то алгоритм (5.77) работает совершенно аналогично алгоритму (5.72). Заметим, что, кроме отмеченных здесь первого и второго случаев, никаких других случаев быть не может (например, не может быть случая, когда одновременно имеется очередь заявок и очередь свободных каналов).
Отличие алгоритма
(5.77) от
(5.72)
начинается с оператора Р7
(когда
k=0). Однако
необходимо начать рассмотрение с
несколько более раннего этапа работы
алгоритма. Если
(оператор Р2),
то управление передается оператору
P31.
Операторы
P31
и K32
обеспечивают
просмотр всех каналов. Если условие
выполнено
(оператор Р4),
то данный канал занят в момент
tj
и управление передается оператору P3
для перехода
к следующему каналу. Если же
,
т. е. условие, проверяемое оператором
Р4
не выполнено: в момент
tj
данный {i-й)
канал свободен,
— то
управление передается оператору
P4. Если
k > 0
(оператор Р7), то работа алгоритма
продолжается по описанному ранее пути:
А9, Ф10 и т.д. При
k = 0 (очереди
заявок нет) имеется возможность
образования очереди
обслуживающих каналов. Управление передается оператору F33 для записи в регистр момента освобождения канала, способного обслуживать данную заявку. В связи с этим прибавляется единица к числу свободных каналов nсв. Таким образом, отбираются те каналы, которые оказываются свободными в момент tj. Оператор P35 проверяет наличие свободных каналов. Если таковых нет, то управление передается оператору A5 (аналогия с алгоритмом (5.72)—передача управления от оператора Р4 оператору A5, если }. Когда свободные каналы имеются, работает оператор Р36 (выбор канала по жребию), и управление передается оператору F8 (канал выбран, начинается обслуживание заявки).
Таким же образом могут быть построены моделирующие алгоритмы и для других условий работы многоканальных систем массового обслуживания.
Рис. 5.5.