Пример 4.62 CLEAR [A]

INITIAL X88,12000

Значение 12000 записывается в сохраняемую величину с номе­ром 88.

INITIAL MX3(2,4),33

Значение 33 записывается в элемент (2, 4) матрицы 3.

INITIAL X$Quote,"Now is the time... "

Этот оператор назначает строчную константу сохраняемой ве­личине Quote.

INITIAL MX$Inventory(Part_39,Stockleve]),200

Значение 200 записывается в строку Part_39 столбца Stocklevel матрицы Inventory. Именам Part_39 и StockJevel должны быть пред­варительно назначены соответствующие целые числа в командах EQU.

INITIAL MainResult,UNSPECIFIED

Предварительно определяется матрица для экспериментов с именем MainResult, которая может не иметь данных.

Команда RESET. Сбрасывает в ноль статистику и СЧА систе­мы, но не удаляет транзакты из модели. Она используется для по­вторных экспериментов с моделью и сброса статистических данных переходного периода имитационного процесса. Имеет такой формат:

RESET

Действия команды RESET:

1) значение относительного модельного времени (С1) устанав­ливается в ноль;

2) значение абсолютного модельного времени (АС1) остается без изменений;

3) все датчики псевдослучайных чисел остаются неизменными;

4) значения сохраняемых величин и матриц, а также состояния логических ключей не изменяются;

5) счетчики числа входов в блоки (Nj) сбрасываются в ноль;

6) временные интегралы* устройств устанавливаются в ноль;

7) временные интегралы содержимого МКУ** устанавливаются в ноль;

8) счетчики числа входов в МКУ (SCj) и максимального содер­жимого МКУ (SMj) остаются неизменными;

9) временные интегралы всех очередей*** сбрасываются в ноль,

счетчики вхождений в очередь (QCj) и максимального содержимого очереди (QMj) устанавливаются равными текущей длине очереди;

10) в таблицах стираются накопленные статистические данные;

11) временные интегралы СП устанавливаются в ноль, счетчики числа вхождений в списки (CCj) и максимального содержимого спи­сков (CMj) устанавливаются равными текущей длине списка.

Команда CLEAR. Сбрасывает всю накопленную статистику, удаляет все транзакты из модели и устанавливает отсчет (нумерацию) транзактов, сгенерированных блоками GENERATE, начиная с еди­ницы.

Формат записи команды CLEAR:

CLEAR [A]

Действия команды CLEAR:

1) все транзакты удаляются из модели;

2) содержимое всех блоков устанавливается в ноль;

3) текущие счетчики блоков (Wj) сбрасываются в ноль;

4) общие счетчики блоков (Nj) сбрасываются в ноль;

5) системное время (С1 и АС1) устанавливается в ноль;

6) устройства становятся незанятыми и доступными;

7) МКУ становятся свободными и доступными;

8) временные интегралы устройств, МКУ, очередей и СП устанавливаются в ноль;

9) максимальные значения содержимого очередей, СП и МКУ устанавливаются равными их текущему значению;

10) состояние датчиков псевдослучайных чисел не изменяется;

11) внутренний счетчик транзактов, генерируемых в блоках GENERATE, устанавливается в ноль;

12) из всех числовых групп удаляются их члены;

13) содержимое всех сохраняемых величин и матриц принимает нулевое значение;

14) логические ключи сбрасываются.

Если используется CLEAR OFF, выполняется все перечисленное выше за исключением последних двух пунктов. То есть, если операнд A=OFF, то логические ключи, сохраняемые величины и матрицы остаются без изменений.

После выполнения всех названных операций команды CLEAR GPSS-модель просматривается интерпретатором в поиске блоков GENERATE. В каждом выявленном

______________________

* Временной интеграл устройства - сумма длин всех интервалов времени, на протяжении которых Устройство было занято.

** Временной интеграл содержимого МКУ рассчитывается так. В начале моделирования его значение Равно нулю. При выполнении подпрограммы блоков ENTER и LEAVE вычисляются интервал вре­мени, на протяжении которого содержимое МКУ не менялось, и соответствующее этому интервалу значение содержимого МКУ. Текущее значение временного интеграла содержимого МКУ увеличива­ется на значение произведения этих величин.

*** Временной интеграл очереди расчитывется так. В начале моделирования его значение равно нулю. При выполнении подпрограммы блоков QUEUE и DEPART вычисляется интервал времени, на про­тяжении которого содержимое очереди не менялось, и соответствующее этому интервалу значение содержимого очереди. Текущее значение временного интеграла содержимого очереди увеличивается на значение произведения этих величин.

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

Команда RMULT. Моделирование часто требует нескольких различных последовательностей случайных чисел. Эти последовательности выдаются генераторами случайных чисел, которые дейст­вуют независимо друг от друга. При каждом запуске системы генера­торы выдают одну и ту же последовательность чисел. Команда RMULT позволяет изменять такую последовательность путем изме­нения начальных множителей.

В системе GPSS World генераторы случайных чисел создаются по мере необходимости, их явное определение не обязательно. Не­сколько генераторов случайных чисел используются GPSS World для блоков GENERATE, ADVANCE и TRANSFER. Они определяются в пункте меню Edit/Setting/Random Numbers (случайные числа) на­строек модели.

Формат команды RMULT:

RMULT [A],[B],[C],[D],[E],[F],[G]

В операнде А задается начальный множитель для первого гене­ратора случайных чисел RN1.

В операнде В задается начальный множитель для второго гене­ратора случайных чисел RN2.

В операнде С задается начальный множитель для третьего гене­ратора случайных чисел RN3.

В операнде D задается начальный множитель для четвертого ге­нератора случайных чисел RN4.

В операнде Е задается начальный множитель для пятого генера­тора случайных чисел RN5.

В операнде F задается начальный множитель для шестого гене­ратора случайных чисел RN6.

В операнде G задается начальный множитель для седьмого ге­нератора случайных чисел RN7.

Стандартный числовой атрибут, связанный с этой командой, - RN<номер генератора>. Он возвращает случайное целое число из интервала от 0 до 999.

Операнды должны быть положительными целыми числами. В этом операторе должен быть задан хотя бы один операнд.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: