Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример 2. Функции. В GPSSW рассматривается пять типов функций:




Пример 2.

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

GENERATE 20, 10   
ADVANCE   15, 15   
QUEUE         OCH       включение в очередь
SEIZE            KASS     обращение к кассиру
DEPART        OCH      выход из очереди
ADVANCE   20, 5   
RELEASE      KASS   
TERMINATE   
GENERATE  1440       таймер 
TERMINATE 1  
START          1  
END   

В этой модели момент включения каждого транзакта в очередь ОСН совпадает с моментом его обращения к оператору SEIZE, т. к. оператор QUEUE выполняется в модельном времени мгновенно. Каждый транзакт находится в очереди до тех пор, пока не займет устройство КАSS. Момент занятия устройства совпадает с моментом выхода транзакта из очереди. В данный момент очередь ОСН имеет естественную интерпретацию как очередь посетителей к кассиру, а длина очереди интерпретируется как число посетителей в очереди.

Функции

В GPSSW рассматривается пять типов функций:

1. Дискретная числовая (D);

2. Непрерывная числовая (C);

3. Табличная числовая (L);

4. Дискретная атрибутивная (E);

5. Табличная атрибутивная (M).

Формат оператора FUNCTION:

Метка (имя функции) FUNCTION A, B

В поле метки данного оператора стоит имя функции. В операнде  оператора FUNCTION указывается аргумент функции (СЧА или один из восьми датчиков RN, равномерно распределенных в интервале [0, 1[ RNj, j = 1, 8), а в операнде — тип функций, количество пар аргументов и значений.

Существует два типа функций:  и . Функция типа  — непрерывная (кусочно-линейная), типа  — дискретная (кусочно-ступенчатая). Например, 12 означает, что функция непрерывна и для ее описания будет использоваться 12 пар аргументов-функций.

Операторы описания и задания функции располагаются в начале программы, перед первым оператором GENERATE.

За описанием функции FUNCTIONвсегда следует задания функции, в котором задаются координаты и значения функции. Каждая пара чисел координата-значение отделяется друг от друга слэшем (/), пробелы недопустимы. В паре аргумент отделяется от значения функции запятой.

Дискретная функция представляет собой кусочно-постоянную функцию, которая состоит из горизонтальных ступеней. Чтобы задать дискретную функцию, необходимо задать координаты крайних правых точек горизонтальных отрезков.

Непрерывная функция представляет собой кусочно-непрерывную функцию. Непрерывная функция в GPSS состоит из соединенных между собой прямых отрезков и представляет собой ломанную линию. Чтобы задать непрерывную функцию, необходимо задать координаты всех точек, которые являются концами отрезков.

Примеры: 1) Задание дискретной функции (Рис. 1. 1): SERV FUNCTION RN4, D5                . 2, 2/. 4, 5/. 6, 8/. 8, 9/. 1, 12 2) Задание непрерывной функции (Рис. 1. 2): FUNC2 FUNCTION RN2, С2           0, 2/1, 6

Рис. 1. 1

Рис. 1. 2.

 

Исключением является использование функции в качестве модификатора в поле B операторов GENERATE и ADVANCE. Здесь округление до целого происходит после умножения значения соответствующей функции на содержание поля A этих операторов.

В языке GPSSW количество генераторов случайных чисел неограниченно, а выделяемые ими значения 0…0, 999999 (RN1, RN8). Если датчик используется в качестве аргумента функции, то он выдает вещественные числа в диапазоне 0– 1.

Пример 3.

В аэропорту производится регистрация пассажиров перед посадкой в самолет. На регистрацию подходят отдельные пассажиры через каждые 20±10 сек., либо туристические группы через каждые 60±20 сек. При этом туристические группы обслуживаются вне очереди. Время обслуживания подчинено экспоненциальному закону и равно в среднем для отдельных пассажиров — 15 сек., для туристических групп — 25 сек. Промоделировать работу отдела регистрации, изучив статистику по очереди за 2 часа.

SIMULATE  
EXP FUNCTION RN1, C6  
0, 0/. 1,. 1/. 2,. 2/. 5,. 69/. 8, 1. 6/1, 8  
GENERATE 20, 10                   приход отдельных пассажиров (через каждые 20±10 сек)
QUEUE     LIN                      включение в очередь
SEIZE        REG  
DEPART   LIN                      выход из очереди
ADVANCE 15, FN$EXP         регистрация пассажира (обращение к ранее объявленной функции EXP)
RELEASE  REG  
TERMINATE                             уход пассажира
GENERATE 60, 20,,, 1              приход туристической группы через каждые 60±20 сек (запятыми отделены не объявленные операнды)
QUEUE      LIN  
SEIZE         REG  
DEPART    LIN  
ADVANCE 25, FN$EXP         регистрация группы
RELEASE  REG  
TERMINATE                             уход группы
GENERATE 720                      таймер
TERMINATE 1  
START       1  
END  

Здесь отдельные пассажиры и туристические группы встают в одну и ту же очередь и обслуживаются одним регистратором. Внеочередность обслуживания групп в модели обеспечивается заданием приоритета для транзактов, имитирующих туристические группы.

В программе — три самостоятельных сегмента, каждый из которых начинается оператором GENERATE и заканчивается оператором TERMINATE. Они могут быть поставлены в программе в любом порядке. При этом процесс моделирования останется неизменным: все операторы GENERATE работают параллельно.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...