
4. Логическая схема имитационной модели.
Используя изложенные выше положения, разработаем обобщенную логическую схему имитационной модели простейшей СМО типа G/G/1, которую затем, зная стандартные процедурные языки программирования, можно реализовать на компьютере. Разработку схемы будем вести при следующих условиях.
Заданы функции распределения A(t) иB(t) для интервалов поступления и длительностей обслуживания заявок, т.е. СМО полностью формализована.
В системе соблюдается условие существования стационарного режима, т.е. условие, что загрузка =b/a< 0, гдеаиb– средние значения соответственно интервалов поступления и длительностей обслуживания.
В начале моделирования система свободна.
Задано время моделирования Ти в общем случае, когда моделирование завершается, система может быть не свободна.
Дисциплиной обслуживания является дисциплина FIFO.
В результате моделирования определяются следующие характеристики функционирования СМО:
а) загрузка системы ;
б) среднее время ожидания ;
в) средняя длина очереди l;
г) среднее время пребывания u;
д) среднее число заявок в системе m;
е) максимальная длина очереди Nqmax.
4.1. Планирование основных событий
Для рассматриваемой системы G/G/1, как отмечалось ранее, основными событиями являются события "прибытие заявки" и "окончание обслуживания", которые "связаны" соответственно с интервалом поступления и длительностью обслуживания заявки. Ранее также отмечалось, что основные события можно планировать заранее. Что означает это утверждение?
Суть этого утверждения состоит в том, что:
а) зная функцию распределения A(t)интервалов поступления, при имитационном моделировании в момент прихода очередной заявки можно определить момент поступления следующей заявки;
б) аналогично, зная функцию распределения В(t)длительностей обслуживания, при имитационном моделировании в момент начала обслуживания заявки можно определить момент его окончания.
Планирование
основных событий производится в два
этапа. Рассмотрим эти этапы в начале на
примере планирования события "прибытие
заявки". Пусть в некоторый момент
модульного времени (напримерtM
=410)в модель поступила очередная
заявка (рис.4.1. а).
а) б)
Рис.4.1. Планирование прихода заявок.
Необходимо планировать приход следующей заявки. Для этого сначала нужно разыграть (первый этап) случайную величину в соответствии с функцией распределения A(t)интервалов поступления, используя метод обратной функции. Предположим, что выпало значениеа =100. Полученное значение принимается за интервал прихода следующей заявки. Тогда (второй этап) момент прихода следующей заявкиTinравны сумме текущего значения модельного времени и разыгранного интервала прихода:Tin=tM +а= 510 (рис.4.1, а).
Время прибытия следующей заявки, таким образом, определено, причем определено точно. Получается, что модель каждый раз в момент прихода очередной заявки узнает, когда появится следующая заявка, хотя в реальной системе момент появления следующей заявки, безусловно, неизвестен. Это необходимое допущение, принимаемое в имитационном моделировании, при длительном моделировании в статистическом смысле не влияет на адекватность модели реальной системе.
Следует отметить, что планирование прихода следующей заявки необходимо провести именно в момент прихода текущей заявки, не откладывая на "потом". Если отложить планирование прихода заявки на некоторое время t0(рис.4.1, б), а затем реализовать процедуру планирования, то фактическим интервалом прихода следующей заявки окажется величина, равнаяt0+a, а неа. Случайная величинаt0+ане распределена по законуA(t) и следовательно, такое отложенное планирование нарушает закон распределенияA(t) интервалов поступления заявок.
Таким образом, механизм планирования прихода заявок можно сформулировать следующим образом: каждый раз в момент прихода очередной заявки планировать приход следующей заявки, используя соответствующую процедуру планирования. При этом приход первой заявки в модель планируется в начале моделирования.
Очевидно, что в модели для системы G/G/1 в каждый момент времени будет присутствовать одно запланированное событие "прибытие заявки". Если моделируется СМО с неоднородной нагрузкой, когда в систему поступают заявкиНклассов, то, очевидно, что число запланированных в модели событий в каждый момент времени равно количеству классов заявок и моменты прихода заявок можно обозначить черезT1in, T2in,...,THin.
Рассмотрим
теперь планирование основного события
"окончание обслуживания", которое
полностью аналогично планированию
события "прибытие заявки". На первом
этапе разыгрывается случайное значение
длительности обслуживания в соответствии
с функцией распределенияB(t).
Пусть выпало значениев= 120 и это значение принимается за время
обслуживания заявки. Если предположить,
что заявка поступила на обслуживание,
когда модельное времяtM= 790, то в качестве моментаToutокончания обслуживания этой заявки
(второй этап) принимается сумма значенийtMив:
Tout =tM+в= 910 (рис.4.2).
Рис.4.2. Планирование окончания обслуживания.
Таким образом, имитационная модель в момент начала обслуживания заявки точно знает момент его окончания, хотя для реальной системы безусловно, это несправедливо.
Очевидно, что планирование события "окончания обслуживания" заявки необходимо провести именно в момент начала ее обслуживания. Планирование в любое другое время приведет к нарушению закона распределения длительностей обслуживания.
Другим очевидным фактом является то, что в модели системы G/G/1 событие "окончание обслуживания", в отличие от события "прибытие заявки", будет присутствовать не всегда, а только тогда, когда прибор занят обслуживанием.
Если моделируется многоканальная СМО с Nобслуживающими приборами, то количество запланированных событий "окончание обслуживания" совпадает с количеством занятых обслуживанием приборов и моменты окончания обслуживания можно задать в общем случае переменнымиT1out, T2out,...,TN out