МОДЕЛИРОВАНИЕ МНОГОКАНАЛЬНЫХ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ. 

Дискретные функции.

В GPSS два типа вычислительных объектов: арифметические переменные и функции. В моделях на GPSS значения функций (FNj) - это часто используемые стандартные числовые атрибуты, так как многие соотношения в системах могут быть описаны в терминах функциональной зависимости между двумя переменными. Каждая функция GPSS связывает значение аргумента функции, который представляет собой независимую переменную, со значениями зависимой переменной функции (FNj).

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

имя функции        FUNCTION   A,B

Другим важным применением функций является генерация значений случайных чисел. Для таких функций распределения вероятности аргументом является случайное число 0RN<1, а значения зависимых переменных (FNj) являются случайными элементами переменных в моделях системы.

Имя функции должно записываться в поле метки оператора описания FUNCTION. Поле A оператора FUNCTION должно содержать аргумент (независимую переменную) функции. Аргументом может быть любой из стандартных числовых атрибутов или значение любой другой функции. Если в качестве аргумента функции используется случайное число RNj, то значениями аргумента будут числа, равномерно распределенные в интервале 0RNj<1. Следует отметить, что во всех других случаях использование случайных чисел RNj дает значение в диапазоне 0RNj<999. Запись в поле B определяет тип и число точек функции    X[i] и Y[i]. В этом поле для дискретных функций записывается символ D (признак дискретной функции) и целое число различных значений, которые может принимать случайная переменные. Далее следуют значения случайной переменной и соответствующие им значения функции распределения. Основной единицей информации записи значений функции является пара Xi, Yi, где Xi - это i-я суммарная частота, Yi - соответствующее значение случайной величины. Первый и второй элементы каждой основной единицы разделяются запятой. Последовательные основные единицы разделяются знаком "/". Основные единицы должны следовать по порядку так, чтобы суммарные частоты шли в возрастающем порядке. Например:

PRFT            FUNCTION    RN4, D5

.15,2/.35,5/.6,8/.85,9/1,12

 Функция имеет символическое имя PRFT. В качестве источника случайных чисел выступает  RN4. Случайная величина имеет пять различных значений. Суммарные частоты и соответствующие им пять значений записаны как пять пар чисел. При записи пар, описывающих распределение, можно не записывать десятичную точку, если данные имеют целые значения. Ниже на рисунке приведена графическая интерпретация функции PRFT.

Функция состоит из четырех ступенек, каждая из которых "замкнута" справа и "открыта" слева. Интерпретатор GPSS просматривает таблицу при определении значений дискретной функции и если аргумент функции по величине меньше или равным значению Xi, то значение функции Yi.

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

  1. Определяет функцию, описывающую соответствующее распределение интервалов времени.

  2. В качестве операнда A блока GENERATE определяет функцию, а операнд B либо определяется по умолчанию, либо задается равным нулю.

При необходимости вычислить в процессе моделирования очередное значение интервала прихода транзакта в блоке GENERATE интерпретатор определяет значение операнда A путем вычисления соответствующей функции. Это значение далее используется в качестве очередного интервала времени.

Способ определения функции в блоке зависит от того, как задано имя функции: в символическом или числовом виде. Если  имя числовое, то ссылка на функцию записывается как FNj, где j - номер функции. Если имя символическое, ссылка записывается в виде FN$имя. Например, ссылка на функцию 16 может быть записана в виде FN16, а ссылка на функцию с символическим именем PRFT записывается как FN$PRFT. Приведем пример использования функции в блоке GENERATE. В таблице представлены интервалы времени между соседними моментами поступления транзактов.

Интервалы поступления транзактов, мин Относительная частота
2 0,10
3 0,30
4 0,40
5 0,20

Для определения функции преобразуем таблицу:

Интервалы поступления транзактов, мин Относительная частота Суммарная частота
2 0,10 0,10
3 0,30 0,40
4 0,40 0,80
5 0,20 1,00

Тогда описание функции, которой пользователь присвоил имя PRFT имеет вид:

PRFT            FUNCTION    RN7, D4

.1,2/.4,3/.8,4/1,5

Использование функций в блоках ADVANCE аналогично использованию в блоках GENERATE. Например:

Интервалы поступления транзактов, мин. Относительная частота Суммарная частота
5 0,05 0,05
6 0,12 0,17
7 0,28 0,45
8 0,30 0,75
9 0,18 0,93
10 0,07 1,00

Тогда описание функции, которой пользователь присвоил имя TFRP имеет вид:

TFRP           FUNCTION    RN3, D6

.05,5/.17,6/.45,7/.75,8/.93,9/1,10

Ниже приведен пример простейшей модели, использующей описанные функции в блоках GENERATE и ADVANCE. Единица модельного времени - 1 минута.

PRFT      FUNCTION    RN7,D4

.1,2/.4,3/.8,4/1,5

TFRP      FUNCTION    RN3,D6

.05,5/.17,6/.45,7/.75,8/.93,9/1,10

          GENERATE  FN$PRFT         

          SEIZE     JOB             

          ADVANCE   FN$TFRP         

          RELEASE   JOB             

          TERMINATE                 

          GENERATE  480             

          TERMINATE 1               

Получен следующий результат моделирования за 8 часов

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                0.000            480.000     7        1          0

              NAME                       VALUE 

          JOB                         10002.000

          PRFT                        10000.000

          TFRP                        10001.000

 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY

                    1    GENERATE           129            65       0

                    2    SEIZE               64             0       0

                    3    ADVANCE             64             1       0

                    4    RELEASE             63             0       0

                    5    TERMINATE           63             0       0

                    6    GENERATE             1             0       0

                    7    TERMINATE            1             0       0

FACILITY         ENTRIES  UTIL.   AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

 JOB                 64    0.992       7.438  1       65    0    0     0     65

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

        
Hosted by uCoz