Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
370.doc
Скачиваний:
16
Добавлен:
30.04.2022
Размер:
3.06 Mб
Скачать

11.15. Переменные в gpss/pc

Переменные в GPSS/PC предназначены для вычислений арифметических и логических выражений. Имеются два основных вида переменных: арифметические и логические. Ниже рассматриваются арифметические переменные, предназначенные для вычисления числовых выражений. Логические переменные, принимающие значения 0 или 1, применяются значительно реже; они рассматриваются в документации по системе GPSS/PC.

Арифметические переменные объявляются в начале текста GPSS-моде ли (до первого оператора GENERATE) в следующей форме:

метка FVARIABLE выражение

Метка - это имя переменной, используемое для ссылок на нее.

Значение переменной - это значение указанного в ее объявлении выражения. В выражении могут указываться числа (только целые!), любые СЧА, ссылки на функции и на другие переменные. В выражении используются обычные математические операции: "+" - сложение, "-" - вычитание, "#" - умножение, "/" - деление, "^" - возведение в степень, "@" - деление по модулю. Разрешается использовать скобки. Если требуется использовать в выражении дробное число, то его следует записать в виде числителя и знаменателя (например, 3/10, а не 0.3).

Внимание! Для операции умножения используется знак "#", а не "*".

Ссылки на переменные в операторах GPSS/PC указываются в следующем виде: V$имя_переменной.

Важное (но не единственно возможное) применение переменных - имитация НСВ (переменные при этом используются совместно с функциями).

Пример (имитация НСВ, распределенной по закону Эрланга k-го порядка). НСВ, распределенная по закону Эрланга k-го порядка - это сумма k НСВ, каждая из которых распределена по пуассоновскому закону. Можно доказать, что для имитации НСВ X, распределенной по закону Эрланга k-го порядка, со средним значением (математическим ожиданием), равным m, может использоваться следующая формула: X = (m/k)* *(X1+X2+...+Xk), где X1,X2,...,Xk - экспоненциальные НСВ с математическим ожиданием, равным 1. Например, для имитации НСВ, распределенной по закону Эрланга 3-го порядка со средним значением m=6, можно использовать следующую переменную (совместно с функцией XPDIS, имитирующей экспоненциальную НСВ с математическим ожиданием, равным 1).

XPDIS FUNCTION RN1,C24

..... см. таблицу соответствия на стр.70. .....

ERL FVARIABLE 2#(FN$XPDIS+FN$XPDIS+FN$XPDIS)

Пример (имитация НСВ, распределенной по гауссовскому закону). Из теории вероятностей известно, что гауссовская НСВ с математическим ожиданием m и среднеквадратическим отклонением  может быть получена по формуле: X = m +  Xн, где Xн - НСВ, распределенная по гауссовскому закону с математическим ожиданием 0 и среднеквадратическим отклонением 1. Например, для имитации гауссовской НСВ с m=5 и  = 0,2 может использоваться следующая переменная (совместно с рассмотренной ранее функцией SNORM):

SNORM FUNCTION RN1,C25

GAUSS FVARIABLE 5+(2#FN$SNORM)/10

Пример. Имитируется работа управляющей ЭВМ, обрабатывающей сигналы от технологического оборудования. Поток сигналов, поступающих на ЭВМ, представляет собой поток Эрланга 2-го порядка; интенсивность потока сигналов - 0,1 сигнала/с (т.е. средний интервал времени между сигналами равен 10 с). Время обработки сигналов представляет собой НСВ, распределенную по гауссовскому закону; в среднем обработка одного сигнала занимает 8 с, среднеквадратическое отклонение - 0,4 с. Требуется разработать GPSS-модель для анализа работы управляющей ЭВМ в течение одного часа.

10 SIMULATE

20 SNORM FUNCTION RN1,C25

..... см. таблицу соответствия на стр.71 .....

30 GAUSS FVARIABLE 8+(4#FN$SNORM)/10

40 XPDIS FUNCTION RN1,C24

..... см. таблицу соответствия на стр.70 .....

50 ERL FVARIABLE 5#(FN$XPDIS+FN$XPDIS)

60 ;

70 GENERATE V$ERL

80 QUEUE 1

90 SEIZE COMP

100 DEPART 1

110 ADVANCE V$GAUSS

120 RELEASE COMP

130 TERMINATE

140 GENERATE 3600

150 TERMINATE 1

Приведем пример GPSS-модели, в которой используется переменная, не связанная с имитацией НСВ.

Пример На ВЦ поступают задачи четырех типов: A (20%), B (30%), C (15%), D (35%). Средний интервал времени между задачами составляет 2 часа  30 минут. Время решения задач - случайная величина, распределенная по экспоненциальному закону; в среднем решениe задачи типа A занимает 40 минут, B - 20 минут, C - 2 часа, D - 1 час 40 минут. На ВЦ имеется одна ЭВМ. За каждую минуту работы ЭВМ, затраченную на решение задачи, заказчик платит 5 денежных единиц. Требуется разработать GPSS-модель для анализа работы ВЦ в течение 100 часов. Предусмотреть подсчет задач каждого типа, а также величины прибыли от решения всех задач.

10 SIMULATE

20 TIP FUNCTION RN1,D4

0.2,1/0.5,2/0.65,3/1,4

30 SRED FUNCTION P1,D4

1,40/2,20/3,120/4,100

40 XPDIS FUNCTION RN1,C24

..... см. таблицу соответствия на стр.70 .....

50 VREMRESH FVARIABLE P2#FN$XPDIS

60 PRIB FVARIABLE P3#5

70 GENERATE 120,30

80 ASSIGN 1,FN$TIP

90 ASSIGN 2,FN$SRED

100 ASSIGN 3,FN$VREMRESH

110 QUEUE OCH

120 SEIZE COMP

130 DEPART OCH

140 ADVANCE P3

150 RELEASE COMP

160 SAVEVALUE SUMPRIB+,V$PRIB

170 SAVEVALUE P1+,1

180 TERMINATE

190 GENERATE 6000

200 TERMINATE 1

Устройство, имитирующее работу ЭВМ, обозначено как COMP, очередь к ЭВМ - OCH. В первый параметр транзакта, имитирующего задачу, записывается номер, обозначающий тип задачи (1,2,3,4 для типов A,B,C,D соответственно), а во второй - среднее время решения задачи данного типа.

Для расчета времени решения каждой конкретной задачи используется переменная VREMRESH: произведение значения 2-го параметра на величину функции XPDIS. Время решения задачи записывается в третий параметр транзакта (оператор 100). Для подсчета прибыли от решения каждой задачи введена переменная PRIB: произведение значения третьего параметра транзакта (т.е. времени решения данной задачи) на 5. Суммарная прибыль подсчитывается с помощью сохраняемой величины SUMPRIB.

Для подсчета количества задач каждого типа используется оператор SAVEVALUE P1+,1 (увеличение на единицу сохраняемой величины, номер которой записан в первом параметре транзакта). Таким образом, данный оператор создает ТРИ сохраняемых величины (с числовыми именами 1,2,3) .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]