Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
моделирование информационных систем железнодоро...doc
Скачиваний:
28
Добавлен:
03.05.2019
Размер:
4.58 Mб
Скачать

2.5. Моделирование сетей массового обслуживания,

Рассмотрим сеть массового обслуживания, состоящую из многолинейных систем (узлов) с ожиданием. В - ом узле имеется обслуживающих приборов, . Входящий поток является рекуррентным. В начальный момент сеть свободна. Требования поступают в моменты , величины = независимы в совокупности и обладают одним и тем же законом распределения . При поступлении требования в сеть оно с вероятностью направляется на обслуживание в - ый узел, =1. Длительности обслуживания требований в - ом узле - независимые в совокупности случайные величины с распределением . После окончания обслуживания требования - ом узле оно с вероятностью направляется на обслуживание в - ый узел и с вероятностью покидает сеть, = 1. Предполагаем, что последовательности ( ) и ( ), , взаимно независимы. Обозначим через число требований в - ом узле в момент . Необходимо найти нестационарное распределение вектора = ( , …, ), т.е. = , …, = = .

Пусть в момент =0 = (0,…,0). С поступлением первого требования в момент становится ненулевым вектором. Обозначим через первый момент времени, когда снова станет нулевым вектором. Интервал ( , ) также называется периодом занятости сети, периоды времени, когда = (0,…,0), являются свободными периодами. За свободным периодом следует период занятости, затем снова свободный период, затем период занятости и т.д.

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

Начинается период занятости с периода увеличения вектора , к = (0,…,0) , например, к - ой компоненте прибавляется 1. Реализуется время обслуживания . Реализуются также случайные величины . Обозначим вектор (0,…,0, ,0,…, 0) через . Если , то в счетчик длительностей интервалов записывается вектор ( = (0,…, 0) + , ), где - длина интервала, на котором = 1, и ) = . На этом период увеличения заканчивается.

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

Осуществим моделирования перехода состояния векторного процесса из момента времени в . Для этого введем векторный марковский процесс = ( , , где - время с момента до момента поступления следующего требования, - время с момента до момента окончания обслуживания требования на - ом канале в - ом узле, которое обслуживалось на нем в момент времени , . Величина = 0, если - ый канал в - ом узле в момент времени был свободен.

Для моделирования поведения процесса отводим + 1 + ячеек для хранения в них значений компонент процесса , т.е. , . Изменения процесса рассматриваем только в моменты времени .

Пусть в момент времени имеем

= ( , . .

Опишем процедуру перехода к состоянию процесса в момент времени , т.е. процедуру нахождения значения процесса в момент времени , а именно,

= ( , .

Имеет место следующий алгоритм перехода к состоянию процесса в момент времени .

  1. Находим ( . .

  2. Если ( . = то модельное время увеличивается на величину в ячейку для заносится величина интервала до момента поступления следующего требования , с вероятностями , , разыгрывается номер узла, куда направляется следующее поступившее требование. Пусть, для примера это будет узел . Тогда в ячейку для заносится величина +1, величины ,…, уменьшаются на величину . Если , то в канал с номером +1 заносится длительность обслуживания для нового требования, которое сразу начинает обслуживаться. Таким образом,

= ( ,

будет равен = ( = + , , . Кроме того, в - ом узле в канал с номером +1 заносится длительность обслуживания для нового требования. В счетчик длительностей интервалов заносится пара ( ,

3. Если ( . = , то модельное время увеличивается на величину в ячейку для заносится величина - в ячейку для заносится величина -1, величины ,…, уменьшаются на величину в ячейку для заносится величина времени обслуживания следующего требования, которое является первым требованием в очереди, если , и 0 в противном случае. С вероятностями , , разыгрывается номер узла, куда направляется обслужившееся в - ом узле требование и с вероятностью оно покидает сеть, = 1. Таким образом,

= ( ,

будет равен = ( = - + ), - …, …, )+0 (1- )), ) )). В счетчик длительностей интервалов заносится пара ( , .

4. В счетчике числа скачков прибавляется 1 и по циклу переходим к п. 1.

Кончается период занятости уменьшением до (0,...,0).

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