В GPSS рассматриваются пять типов функций:
1) дискретная числовая (D),
2) непрерывная числовая (С),
3) табличная числовая (L),
4) дискретная атрибутивная (Е),
5) табличная атрибутивная (М).
Рассмотрим два первых типа функций.
Дискретная функция представляет собой кусочно-постоянную функцию, которая состоит из горизонтальных ступеней (рис. 4.2).
Непрерывная функция представляет собой кусочно-непрерывную функцию. Непрерывная функция в GPSS состоит из соединенных между собой прямых отрезков и представляет собой ломаную линию (рис. 4.3). Чтобы задать дискретную функцию, необходимо задать координаты крайних правых точек горизонтальных отрезков. Для непрерывной функции необходимо задать координаты всех точек, которые являются концами отрезков.
Действия, необходимые для определения дискретной и непрерывной GPSS-функции:
1. Присвоить функции имя. Имя может быть числовым либо символьным.
2. Задать аргумент функции. Аргументом могут быть:
1) ссылка на генератор случайных чисел, используемый для розыгрыша в соответствии с распределением, заданным функцией;
|
|
2) стандартный числовой атрибут;
3) ссылка на любую другую функцию.
В первом случае аргумент задается в виде RN j, j - целое число (номер генератора). В GPSS/PC j = 1,..., 7, т.е. возможно обращение к семи идентичным генераторам случайных чисел. При этом генераторы выдают случайные числа в диапазоне 0... 0,999. В GPSS World количество генераторов случайных чисел неограниченно, а выдаваемые ими значения 0... 0,999999.
3. Задать тип функции и число крайних точек функции.
4. Задать значения аргумента (переменной) и соответствующие значения функции (т.е. координаты крайних точек функции).
Три первых элемента информации указываются в операторе определения функции. Формат оператора представлен в таблице.
Таблица 4.21
Поле | Информация, задаваемая в поле |
Метка | Имя функции (числовое или символьное) |
Операция | FUNCTION |
Операнды А В | RNj 0 = 1,..., 7) или СЧА. Dn либо Сn, где D определяет дискретную функцию, С определяет непрерывную функцию; n - для дискретной функции - это число различных значений, получаемых функцией (количество горизонтальных отрезков), для непрерывной функции - это число, на единицу больше числа отрезков, составляющих функцию (количество точек) |
За каждым оператором описания FUNCTION следуют операторы задания координат точек функции (значений аргументов Xi и соответствующих им значений функции Yi) - это операторы описания координат функции. Их формат:
1) если координаты всех точек расположены в одной строке оператора описания функции:
Х1, Y1/X2, Y2/.../Xn, Yn
2) если координаты точек расположены в нескольких операторах описания функции:
|
|
Х1,Y1/X2,Y2/.../Xi, Yi,
Xi+1, Yi+1/Xi+2, Yi+2/.../Xk, Yk
…
Xm+1, Ym+1/Xm+2, Ym+2/.../Xn, Yn
где Xi Yi — координаты i-й точки функции (в случае моделирования случайной величины Xi является i-й суммарной (кумулятивной) частотой, Yi - соответствующим значением случайной величины).
Особенности оператора описания координат функции:
1) основной единицей информации оператора описания координат функции является пара значений Xi, Yi, (координаты точки /);
2) значения координат Xi и Yi, одной точки функции разделяются запятой;
3) последовательные наборы координат разделяются знаком «/»;
4) координаты Xi и Yi, относящиеся к одной точке, задаются одним оператором, т.е. пара координат одной точки не должна разрываться;
5) все строки описания координат функции должны начинаться с первой позиции;
6) во всех случаях значения аргумента должны удовлетворять следующим неравенствам:
Х1<Х2<...<Хi<...<Хn.
Значение функции является ее стандартным числовым атрибутом. Способ ссылки на этот атрибут зависит от того, как задано имя функции: в символьном или числовом виде. Если имя числовое, то к значению функции обращаемся через FNj (где j - номер функции), если имя символьное - через FN$<hmh функции>.
1. Аргументом функции может быть и значение какой-1ибо другой функции.
2. Каждая функция должна иметь, по крайней мере, две описанные точки.