logo
Обработка данных / Томашевский_Имитационное моделирование в среде GPSS_2003

4.4. Внесение транзактов в модель. БлокGenerate

Блок GENERATE (ГЕНЕРИРОВАТЬ) – это блок, через кото­рый транзакты входят в модель. Не существует ограничений на коли­чество разных блоковGENERATE в одной модели.

Интервал времени между последовательными появлениями транзактов из блока GENERATEназываютинтервалом поступле­ния. Когда транзакт входит в модель через блокGENERATE. интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числаcсоответствующим распределением интервалов поступления на время, равное текущему значению ЧАСОВ плюс разыгранное значение. При достижении этого значения модельного времени следующий транзакт вводится в модель через блокGENERATE и т.д.

Разработчик должен задать функцию распределения интервалов поступления транзактов в блоке GENERATE.

Все возможные виды случайных распределений интервалов по­ступления транзактов в GPSSделятся на равномерное распределение и другие виды распределений. В нашем случае специально рассматривают самое простое из всех случайных нетривиальных распределе­ний – равномерное распределение. Использование других видов рас­пределений требует задания функций, которые описаны ниже (см. параграф 4.13).

Формат блока:

GENERATE [A],[B],[C],[D],[E]

Ta6лица 4.2

Операнд

Значение

Значение по умолчанию*

А

Средний интервал времени (число, СЧА)

0

В

Половина поля допуска равномерно распределенного интервала (число, CЧА)

0

С

Смещение интервалов

Смещение от­сутствует

D

Ограничитель транзактов

Е

Уровень приоритета транзакта. Возможные значения 0 – 127

0

* Если опущено поле операнда, транслятор проставляет значения по умолчанию или выдает ошибку.

Значение операндов:

А– среднее значение интервала поступления;

В– величина разброса возможных значений относительно сред­него значения. (Если операндВне задается, то интервал времени по­ступления – детерминированная величина);

C– момент времени, в который в блокеGENERATE должен появиться первый транзакт. (После этого первого прихода все ос­тальные приходы транзактов возникают в соответствииcраспределе­нием, заданным операндами А иВ);

D– ограничитель общего числа транзактов, которое может вой­ти в модель через данный блокGENERATE на протяжении времени моделирования. (Если это число достигнуто, данный блокGENER­ATEперестает быть активным);

Е– уровень или класс приоритета каждого из транзактов. кото­рые вводятся в модель через данный блокGENERATE. (Всего суще­ствует 128 разных уровней, которые задаютсяcпомощью чисел от 0 до 127. Чем больше число, тем выше приоритет).

1. Транзакты не могут входить в блок GENERATE, так как он сам их генерирует.

2. Если в модели GPSS/PCвстречаются подряд два или больше блоковGENERATE, то последний блок пере­определяет операнды предыдущих блоков. ВGPSSWorldтранслятор выдает ошибку.

3. Операнды не могут быть отрицательными числами.

Операнды А, В, C целочисленные (вGPSSWorldмогут быть действительными числами).

Пример 4.1

1. Задание равномерного закона распределения:

GENERATE 6,4

Операнды: A = 6, В = 4. Интервал времени поступления является случайным числом со средним значением 6 и полем допуска 8, то есть он может приобретать только одно из девяти разных значений: 2, 3,4,5,6,7,8,9, 10.

2. Задание детерминированного значения интервалов поступле­ния:

GENERATE 10

Операнды: A= 10,В= 0 (по умолчанию). Транзакты входят в модель каждые 10 единиц модельного времени.

3. Генерирование одного транзакта.

GENERATE ,,,1

Операнды: A = В = C= 0 (по умолчанию),D= 1. В нулевой мо­мент в модель входит один транзакт.

Блоки GENERATE являются основными средствами создания фанзактов и ввода их в модель. Кроме блокаGENERATE, для ввода гранзактов в модель используется также блокSPLIT, который созда­ст заданное число копий транзактов, вошедших в блок.