80. Блоки GENERATE и ADVANCE содержат в поле A ссылки на соот-

ветствующие переменные, при этом поле B не используется, так как в

поле A содержится случайная величина, не нуждающаяся в модификации.

Большинство случайных величин не может быть получено через

случайную величину R с помощью арифметического выражения. Кроме то-

го, такой способ является достаточно трудоемким, так как требует

обращения к математическим функциям, вычисление которых требует

десятков машинных операций. Другим возможным способом является

использование вычислительных объектов GPSS/PC типа функция.

Функции используются для вычисления величин, заданных таблич-

ными зависимостями. Каждая функция определяется перед началом моде-

лирования с помощью оператора определения FUNCTION (функция), имею-

щего следующий формат:

 имя  FUNCTION A,B

Здесь  имя - имя функции, используемое для ссылок на нее; A –

стандартный числовой атрибут, являющийся аргументом функции; B -

тип функции и число точек таблицы, определяющей функцию.

 Существует пять типов функций. Рассмотрим вначале  непрерывные

  числовые функции, тип которых кодируется буквой C. Так, например,

в определении непрерывной числовой функции, таблица которой соде-

ржит 24 точки, поле B должно иметь значение C24.

При использовании непрерывной функции для генерирования слу-

чайных чисел ее аргументом должен быть один из генераторов случай-

ных чисел RNj. Так, оператор для определения функции показательного

распределения может иметь следующий вид:

EXP FUNCTION RN1,C24

Особенностью использования встроенных генераторов случайных чисел

RNj в качестве аргументов функций является то, что их значения в

этом контексте интерпретируются как дробные числа от 0 до 0,999999.

 Таблица с координатами точек функции располагается в строках,

следующих непосредственно за оператором FUNCTION. Эти строки не

должны иметь поля нумерации. Каждая точка таблицы задается парой Xi

(значение аргумента) и Yi (значение функции), отделяемых друг от

друга запятой. Пары координат отделяются друг от друга символом "/"

и располагаются на произвольном количестве строк. Последователь-

ность значений аргумента Xi должна быть строго возрастающей.

Как уже отмечалось, при использовании функции в поле B блоков

GENERATE и ADVANCE вычисление интервала поступления или времени за-

держки производится путем умножения операнда A на вычисленное зна-

чение функции. Отсюда следует, что функция, используемая для гене-

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

описывать зависимость y=-ln(x), представленную в табличном виде.

Оператор FUNCTION с такой таблицей, содержащей 24 точки для обеспе-

чения достаточной точности аппроксимации, имеет следующий вид:

EXP FUNCTION RN1,C24

0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

Вычисление непрерывной функции производится следующим образом.

Сначала определяется интервал (Xi;Xi+1), на котором находится теку-

щее значение СЧА-аргумента (в нашем примере - сгенерированное зна-

чение RN1). Затем на этом интервале выполняется линейная интерполя-

ция с использованием соответствующих значений Yi и Yi+1. Результат

интерполяции усекается (отбрасыванием дробной части) и используется

в качестве значения функции. Если функция служит операндом B блоков

GENERATE или ADVANCE, то усечение результата производится только

после его умножения на значение операнда A.

 Использование функций для получения случайных чисел с заданным

распределением дает хотя и менее точный результат за счет погреш-

ностей аппроксимации, но зато с меньшими вычислительными затратами

(несколько машинных операций на выполнение линейной интерполяции).

Чтобы к погрешности аппроксимации не добавлять слишком большую пог-

решность усечения, среднее значение при использовании показательных

распределений должно быть достаточно большим (не менее 50). Эта ре-

комендация относится и к использованию переменных.

Функции всех типов имеют единственный СЧА с названием FN, зна-

чением которого является вычисленное значение функции. Вычисление

функции производится при входе транзакта в блок, содержащий ссылку

на СЧА FN с именем функции.

 Заменим в примере на рис. 4 переменные TARR и TSRV на функцию

EXP (рис. 5).

 Поскольку в обеих моделях используется один и тот же генератор

RN1, интервалы поступления и задержки, вычисляемые в блоках

GENERATE и ADVANCE, должны получиться весьма близкими, а может быть

и идентичными. При большом количестве транзактов, пропускаемых че-

рез модель (десятки и сотни тысяч), разница в скорости вычислений

должна стать заметной.

EXP FUNCTION RN1,C24

0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

GENERATE 100,FN$EXP

ADVANCE 80,FN$EXP

TERMINATE 1

Рис. 5

Особенностью непрерывных функций является то, что они принима-

ют "непрерывные" (но только целочисленные) значения в диапазоне от

Y1 до Yn , где n - количество точек таблицы. В отличие от них диск-

  ретные числовые функции, тип которых кодируется буквой D в операнде

B оператора определения функции, принимают только отдельные

(дискретные) значения, заданные координатами Yi в строках, следую-

щих за оператором определения FUNCTION. При вычислении дискретной

функции текущее значение СЧА-аргумента, указанного в поле A

оператора FUNCTION, сравнивается по условию <= последовательно со

всеми значениями упорядоченных по возрастанию координат Xi до

выполнения этого условия при некотором i. Значением функции ста-

новится целая часть соответствующего значения Yi.

Если последовательность значений аргумента таблицы с координа-

тами точек функции представляет числа натурального ряда

(1,2,3,...,n), то такую дискретную функцию с целью экономии памяти

и машинного времени удобно определить как списковую числовую функ-

  цию (тип L).

 Пусть в модели на рис. 5 заявки, моделируемые транзактами, с

 равной вероятностью 1/3 должны относиться к одному из трех классов

(типов) 1,2 и 3, а среднее время задержки обслуживания заявок каж-

дого типа должно составлять соответственно 70, 80 и 90 единиц мо-

дельного времени. Это может быть обеспечено способом, показанным на

рис. 6.

В блоке ASSIGN в параметр TYPE каждого сгенерированного тран-

закта заносится тип заявки, получаемый с помощью дискретной функции

CLASS. Аргументом функции является генератор случайных чисел RN1, а

координаты ее таблицы представляют собой обратную функцию распреде-

ления дискретной случайной величины "класс заявки" с одинаковыми

вероятностями каждого из трех значений случайной величины.

 Поле A блока ADVANCE содержит ссылку на списковую функцию

MEAN, аргументом которой служит параметр TYPE входящих в блок тран-

зактов. В зависимости от значений этого параметра (типа заявки)

среднее время задержки принимает одно из трех возможных значений

функции MEAN: 70, 80 или 90 единиц.

EXP FUNCTION RN1,C24

0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

CLASS FUNCTION RN1,D3

.333,1/.667,2/1,3

MEAN FUNCTION P$TYPE,L3

1,70/2,80/3,90

GENERATE 100,FN$EXP

ASSIGN TYPE,FN$CLASS

ADVANCE FN$MEAN,FN$EXP

TERMINATE 1

Рис. 6

Следует отметить, что в данном примере можно было бы не

использовать параметр TYPE и обойтись одной дискретной функцией,

возвращающей с равной вероятностью одно из трех возможных значений

среднего времени задержки. Однако использование параметров дает не-

которые дополнительные возможности, которые будут рассмотрены поз-

же.

 Транзакты могут входить в модель не только через блок

GENERATE, но и путем создания копий уже существующих транзактов в

блоке SPLIT (расщепить), имеющем следующий формат:

  имя  SPLIT A,B,C

 В поле A задается число создаваемых копий исходного транзакта

(родителя), входящего в блок SPLIT. После выхода из блока SPLIT

транзакт-родитель направляется в следующий блок, а все транзак-

ты-потомки поступают в блок, указанный в поле B. Если поле B пусто,

то все копии поступают в следующий блок.

Транзакт-родитель и его потомки, выходящие из блока SPLIT, мо-

гут быть пронумерованы в параметре, имя или номер которого указаны

в поле C. Если у транзакта-родителя значение этого параметра при

входе в блок SPLIT было равно k, то при выходе из блока оно станет

равным k+1, а значения этого параметра у транзактов-потомков ока-

жутся равными k+2, k+3 и т.д.

 Например, блок

SPLIT 5,MET1,NUM

создает пять копий исходного транзакта и направляет их в блок с

именем MET1. Транзакт-родитель и потомки нумеруются в параметре с

 именем NUM. Если, например, перед входом в блок значение этого па-

раметра у транзакта-родителя было равно 0, то при выходе из блока

оно станет равным 1, а у транзактов-потомков значения параметра NUM

будут равны 2, 3, 4, 5 и 6.


Информация о работе «Моделирование на GPSS»
Раздел: Информатика, программирование
Количество знаков с пробелами: 117295
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
113808
0
0

... , как в моделируемой СМО перемещаются заявки, соответствующие транзактам. В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования симулятор генерирует транзакты в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают модель в определенные моменты времени в ...

Скачать
13405
0
2

... возвращаются на ввод и во всех очередях обслуживаются первыми. Смоделировать работу вычислительного центра в течение 30 ч. Определить необходимую емкость буферов и функцию распределения времени обслуживания заданий. 1.1 Построение концептуальной модели объекта На первом этапе проведения моделирования необходимо построить концептуальную модель (Рис. 1), т.е. концептуальная (содержательная) ...

Скачать
36862
2
13

... в результате входа транзактов в блоки и выполнения блоками своих функций. В данной работе требуется с помощью пакета моделирования систем GPSS/PC исследовать модель заданной СМО. Задание На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин и имеет до ...

Скачать
8426
5
5

... А При входе в блок RELEASE освобождается устройство, номер которого указан в поле А. Устройство становится доступным для других транзактов. При моделировании работы устройств, когда новое требование пытается прервать обслуживание предыдущего, используются блоки PREEMPT (захватить устройство) и RETURN (вернуть устройство ранее прерванному требованию). Блок PREEMPT имеет следующий формат: ...

0 комментариев


Наверх