Определение функции в GPSS
Определение функции в GPSS
Она относится к управляющим операторам.
Формат: имя_функции FUNCTION A,B
А – либо генератор случайных чисел (ГСЧ), либо СЧА.
B – тип функции. (D – дискретная, С – непрерывная, L – табличная (числовая), Е – дискретная атрибутивная, М – табличная атрибутивная).
Дискретная функция (D) представляет собой кусочно непрерывную функцию, состоящую из горизонтальных ступенек.
Непрерывная функция (C) представляет кусочно-непрерывную, состоящую из соединенных между собой прямых отрезков. Получается ломаная линия.
Чтобы задать D-функцию необходимо задать координаты крайних точек горизотальных отрезков. Для C-функции необходимо задать координаты всех точек, которые являются концами отрезков.
Действия необходимые для определения функций.
- Присвоить функции имя. Имя либо числовое либо символьное.
- Задать аргумент функции. Аргументами могут быть:
- Ссылка на генератор случайных чисел, используемый для розыгрыша в соответствии с распределением заданной функции.
- СЧА
- Ссылка на любую другую функцию.
- Задать тип функции и число крайних точек функции.
- Задать значение аргумента и соответствующее значение функции.
Рекомендуемые материалы
За каждым оператором описания функции следуют операторы описания точек функции, т.е. значения точек x и y. Это операторы описания координат точек функции. Пишутся через запятую.
Особенности оператора описания:
- Основной единицей информации оператора описания координат функций является пара координат i-ой точки (xi, yi).
- Значение координат одной точки отделяются друг от друга знаком «,». Последовательные наборы координат отделяются знаком «».
- Все строки должны начинаться с первой позиции.
- Необходимо соблюдать соотношение: x1<x2< …<xn.
Самостоятельно:
Написать следующие типы функций в GPSS World.
1. Моделирование Пуассоновского потока.
2. Моделирование Гипер-экспоненциального распределения.
3. K-распределение Эрланга.
4. ? – распределение
5. Распределение Вейбулла.
6. Нормальный закон распределения
7. Беттономиальное, логистическое, лог-лаплассова, лог-нормальное. Обратно-гаусово и остальные…
См. в документе «Распределения.doc»
Моделирование Пуассоновского потока:
t = 2
GENERATE 2#100,FN$XPDIS //100 – потому, что округление до целого приводит к нарушению ордиарности потока: весь начальный отрезок получается на нуле.
Интервалы поступления заявок пуассоновского потока распределены по экспоненциальному закону. Согласно методу обратной функции можно получить ряд чисел, которые имеют экспоненциальное распределение, если для какого-то ряда случайных чисел ~R(0,1) преобразовать эти числа в соответствии с функцией, обратной к экспоненциальной. Т.е. мы получаем: , где t – разыгранный интервал времени.
Разработчиками GPSS была выполнения апроксимция этой функции при λ = 1 и функция была заменена 23 отрезками, которые преобразовали значение генератора в log от этого значения.
Пуассоновский входящий поток с интенсивностью λ ≠ 1, моделируется с помощью блока GENERATE следующим образом:
- В качестве операнда А используют среднее значение интервала времени
, где λ – интенсивность пуассоновского потока
- В качестве операнда В используют СЧА, а именно значение функции XPDIS.
Если необходимо моделировать задержку со средним значением 3, то выполняем масштабирование и т.д.: ADVANCE 300,FN$XPDIS
Задача: Необходимо решить какое число мест на стоянке для автомобилей, ожидающих мойки следуют предусмотреть, чтобы их грузить по максимуму. Поток автомобилей является Пуассоновским со значением среднего интервала равным 5 минутам. Время мойки автомобиля распределено экспоненциально со значением среднего 4 минуты. Если клиенты подъезжают и не застают свободного места, то они уезжают. Исследовать систему при использовании 1, 2 и 3 мест на стоянке. Моделировать работу в течение 8 часового рабочего дня.
Park STORAGE 1
GENERATE 300,FN$XPDIS
TRANSFER BOTH,,Bye_bye
ENTER Park ;заехали на стоянку
SEIZE Wash ;заняли мойку
В лекции "Саурские события 1978 г" также много полезной информации.
LEAVE Park ;выехали со стоянки
ADVANCE 240,FN$XPDIS ; экспоненциальный закон
RELEASE Wash
Bye_bye TERMINATE
GENERATE 28800
TERMINATE 1