Математическое моделирование

         

Блок задержки транзактов ADVANCE


Удобным средством моделирования различного рода обслуживания, длящегося некоторый промежуток времени, является задержка транзакта, которая выполняется в GPSS с помощью блока ADVANCE.

Транзакт занимает прибор (оператор SEIZE) для того, чтобы немедленно начать на нем обслуживание. В течение времени обслуживания транзакт должен прекратить двигаться по модели. Блок ADVANCE используется для задержки продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной переменной. Информация, необходимая для описания времени обслуживания и его распределения, задается операндами А и В.

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

SEIZE Sbor1

ADVANCE 30,5

RELEASE Sbor1

Такая запись означает, что для каждого транзакта, входящего в этот блок, возможные значения интервалов времени находятся в пределах 25-35 единиц времени включительно. Например, транзакт вошел в блок ADVANCE (то есть занял прибор обслуживания Sbor1) в момент времени, равный 134, а «разыгранным» значением из равномерного распределения 30±5 является 31. В подобном случае транзакт будет оставаться в блоке ADVANCE до момента времени, равного 134+31=165. В течение этого времени прибор Sbor1 будет оставаться в состоянии «занято».

По достижении модельного времени, равного165, транзакт покинет блок ADVANCE и войдет в следующий блок RELEASE, в результате чего прибор Sbor1 будет освобожден и в него поступит на обработку следующая заявка из очереди (если очередь перед прибором в данный момент не пуста). Аналогичным образом блок ADVANCE может использоваться и с операторами PREETMP / RETURN:

PREETMP Robot

ADVANCE 130

RETURN Robot

В соответствии с правилами GPSS, в блоке ADVANCE одновременно может находиться любое число транзактов. Очевидно, такая ситуация возможна лишь в тех случаях, когда оператор ADVANCE используется вне парных блоков SEIZE / RELEASE и PREETMP / RETURN, которые применяются для моделирования приборов, обслуживающих один транзакт в единицу времени.

Возможны и более сложные случаи использования оператора ADVANCE . Так, в micro?GPSS может быть построена программная конструкция, которая определяет случайную задержку, время которой распределено по закону, отличному от равномерного. В этом случае время задержки определяется умножением числа, заданного в поле А, на значение функции, указанной в поле В. Эта функция определяет требуемый закон распределения случайных чисел.



Содержание раздела