Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Имитационное моделирование систем массового обслуживания.doc
Скачиваний:
254
Добавлен:
02.05.2014
Размер:
147.46 Кб
Скачать

4.2. Действия по обработке основных событий

Наступление основных событий "прибытие заявки" и "окончание обслуживания" вызывают определенные, достаточно очевидные, изменения в системе и при моделировании эти изменения должны быть учтены. Приведем в начале очевидные действия, которые должны быть выполнены моделью при наступлении события "прибытие заявки".

  1. Планирование прихода следующей заявки.

  2. Проверка состояния обслуживающего прибора.

При этом:

а) если прибор свободен, то заявка поступает на обслуживание, что вызывает переход прибора из свободного состояния в занятое; планирование события "окончание обслуживания";

б) если прибор занят, то заявка присоединяется к очереди и длина очереди увеличивается на 1.

Действия по обработке основного события "окончание обслуживания":

1. Проверка состояния очереди. При этом:

а) если в очереди нет заявок, то перевести обслуживающий прибор из занятого состояния в свободное;

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

4.3. Определение ближайшего события

В выбранном нами способе коррекции таймера (способ с переменным шагом) модельное время каждый раз сдвигается на момент ближайшего события, а затем модель обрабатывает наступившее событие с учетом его типа. Возникает вопрос: как определить момент ближайшего события и его тип?

Одним из способов заключается в составлении списка всех основных событий в порядке возрастания моментов времени, в которые они запланированы, и с указанием типа соответствующего события. Ясно, что ближайшее событие в таком списке окажется в начале списка и, при очередной коррекции таймера, модельное время нужно сдвинуть на момент наступления этого события, а в зависимости от его типа выполнить соответствующие действия. Такой список для рассматриваемого нами примера моделирования СМО G/G/1 в общем случае может содержать три записи следующего вида:

[Tin, "прибытие заявки" ]; (присутствует всегда)

[Tout, "окончание обслуживания"]; (не всегда)

[T, "завершение моделирования"]; (всегда).

Здесь предполагается, что Tin Tout T.

Очевидно, что роль такого списка может быть отведена просто трем переменным Tin,Tout,T, а очередную коррекцию модельного времени выполнить согласно равенству:

.

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

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

Чтобы не отказаться от равенства для определения tMможно принять следующее решение: если прибор не занят обслуживанием, то ввести в список событий псевдо-событие "окончание обслуживания" с моментом наступления, например,. Очевидно, что такое псевдо-событие никогда не наступит (скорее наступит событие "окончание моделирования").

Изложенные здесь положения обобщены в блок-схеме алгоритма имитационной модели, которая представлена на рис.4.3.

Приведем необходимые пояснения по отдельным блокам.

Блок 1. Ввод исходных данных, в качестве которых рассматриваются функции распределенияA(t),B(t) и время моделированияТ.

Блок 2. В этом блоке обнуляются все переменные и массивы, которые предназначены для следующих целей:

F— задает состояние приборы:F= 0, если прибор свободен иF= 1, если занят.

Nin— счетчик входов (определяет число вошедших в модель заявок).

Nout— счетчик выходов.

Nq— текущая длина очереди.

Nqmax— максимальная длина очереди.

Tin— момент прихода заявки.

Tout — момент окончания обслуживания.

Stв, St, Stuпеременные для накопления суммарных значений времен обслуживания, ожидания и пребывания соответственно.

Mtq[...]массив, который фиксирует моменты становления заявок в очередь.

tм — модельное время.

N0— счетчик заявок, которые проходят очередь без ожидания.

Блок 3. Равенствоозначает розыгрыш случайной величины, распределенной по законуA(t), гдеA-1(x) — обратная функция.

Рис. 4.3. Блок-схема логики работы имитационной модели.