- QUEUE – захват (вход в очередь);
- DEPART – выход из очереди.
Очереди имеют следующие СЧА:
Q $ j – длина j-ой очереди;
QM $ j – максимальная длина j-ой очереди;
QA $ j – средняя длина очереди;
QT $ j – среднее время ожидания ТА в очереди с учётом транзитных ТА, то есть которые не задерживались;
4. Функции с помощью этого объекта устанавливается функциональная зависимость между СЧА. В основном это законы распределения случайной величины.
Функции бывают: - непрерывные – C;
- дискретные – D.
Функция задаётся набором пар точек, определяющих координаты кривой распределений.
Операторы GPSS
Формат операторов:
Метка…Операция…Операнды…Комментарии
Метка – это символьный адрес перехода. Символьный адрес должен занимать не более 5 знаков. Метка обязательно начинается с буквы. Первый символ всегда устанавливается в 1-ом столбце поля. Начиная с 6-го столбца, записывается операция, состоящая из названия программного блока. В названии должно быть не менее 4-х символов. Далее через пробел записываются операнды. В качестве операндов фигурируют СЧА, численные значения функции, соотношения. Если операндов несколько, между ними ставится запятая. После операндов пишутся комментарии. Поле операндов от комментария отделяется точкой с запятой.
Описание операторов GPSS
Операторы GPSS делятся на 2 класса:
1) Операторы управления типа SIMULATE, END, EQU.
2) Функциональные операторы, реализующие устройства очереди, правила обслуживания, потоки.
1. SIMULATE (моделировать).
Устанавливается в начале модели и необходим для запуска модели на исполнение.
Формат: SIMU [LATE].
2. EQU(эквивалентность).
Устанавливается в начале алгоритма и необходим для присвоения символам численного значения.
Формат: symbol EQU num
Символов не должно быть больше 5.
3. FUNCTION (функция).
Программный блок-функция устанавливается в начале модели. С помощью функции записывается функциональная зависимость между параметрами или СЧА. В основном используется для задания закона распределения случайной величины.
Формат: символ (номер или имя) FUNC A, B ,
где в поле A устанавливается аргумент функции. Если это аргумент случайной функции, то в поле A устанавливается: A = RN $.
В поле B записывается тип функции (C, D), где C-непрерывная, D-дискретная. За буквой C или D записывается количество пар точек. Далее перечисляются координаты точек по формату: x1, y1/x2, y2/x3, y3/…/xn, yn.
При записи пар точек необходимо соблюдать следующие условия:
1. x (аргумент) должен обязательно возрастать;
2. совпадения значений x не допускаются.
4. GENERATE (генерировать).
Программный блок предназначен для создания ТА с соответствующим набором атрибутов. Программный блок не имеет входа, а имеет только выход.
Формат: GENE A, B, C, D.
В поле A записывается математическое ожидание интервала следования транзактов (). Здесь и в дальнейшем значения записываются только в виде целого числа.
В поле B записывается величина отклонения случайной величины от математического ожидания (). По умолчанию отклонение равно 0. Так записывается поле B в случае равномерного закона распределения. Если закон отличается от равномерного, в поле B записывается закон распределения, установленный выше блоком функция.
В поле C устанавливается время появления на выходе генератора 1-го транзакта, (t1).
В поле D записывается число транзактов, которое должен сформировать генератор.
Примечание:
Если в поле B записана не функция, а интервал , то генератор выдаёт числа с равномерным законом распределения в интервале (A-B, A+B).
Если в поле B записана функция FN$ (имя функции или номер), то генератор выдаёт случайные числа, равные (A*FN$), где A – мат. ожидание.
5. TRANSFER (передать).
Предназначен для имитации правил и условий обслуживания. С помощью этого оператора ТА можно передавать в различные программные блоки модели.
Формат: TRAN A, B, C, D.
В поле A устанавливается условие (режим) передачи.
В поле B указывается номер следующего блока по условию. В поле C указывается номер блока, в который должен перейти ТА, если блок, указанный в поле B, занят. В поле D записывается индекс, используемый в условии «ALL».
Описание условий в поле A:
ü «Пробел» (в поле A ничего не стоит). По этому условию ТА передаётся в блок, указанный в поле B, (безусловный переход). Если блок занят, ТА остаётся в предыдущем блоке (вTRANSFER ).
ü «’’» - по этому условию внутри апострофа записывается вероятность, с которой ТА будет переходить в блок, указанный в поле C.
ü «ALL» - ТА пытается войти в цепочку блоков: B, B+D, B+2D и т.д. до C. По этому условию ТА пытается войти в блок B, если он занят, то в B+D, если тот занят, то в B+2D и т.д. до C.
ü «BOTH» - ТА пытается войти в блок B, если он занят, то в блок C, если блок C занят, то остаётся в предыдущем блоке (TRANSFER).
6.SEIZE (занять).
С помощью этого оператора (блока) производится ввод ТА в устройство, имитирующее обслуживание.
Формат: SEIZ A.
В поле A указывается номер устройства.
7. ADVANCE (задержать).
Блок имитирует обслуживание путём выделения транзакту определённого времени нахождения в блоке.
Формат: ADVA A, B.
В поле A – математическое ожидание времени обслуживания. В поле B – разброс времени обслуживания (аналогично блоку GENERATE).
8. ASSIGN (присвоить, изменить).
С помощью этого оператора параметрам ТА присваиваются значения.
Формат: ASSI A, B.
В поле A записывается имя параметра. Далее могут быть установлены +(-). В поле B – новое значение параметра или изменённое значение.
Примечание: если в поле A после имени параметра не указаны знаки +(-), параметр принимает значение, указанное в поле B; если после имени параметра стоит «+», то параметр принимает значение (A+B); если «-»,то (A-B).
9. QUEUE (встать в очередь).
Оператор имитирует постановку ТА в очередь.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.