- •Тема: Основные понятия языка моделирования gpss. Введение
- •1.1. Пример моделируемой системы.
- •Устройство
- •1.2. События и таймер модельного времени.
- •Модельное время
- •56 Разыгранное значение времени обслуживания (15) 71
- •1.3. Основные объекты языка gpss.
- •1.4. Простейшие операторы gpss
- •1.4.1. Введение транзактов в модель
- •1.4.2. Удаление транзактов из модели
- •1.4.3. Управление устройствами.
- •1.4.4. Задержка транзактов во времени.
- •1.4.5. Сбор статистики при ожидании в очереди.
- •1.5. Модель работы парикмахерской
- •1.6. Расчет статистических характеристик объектов.
- •1.7. Задания для самостоятельной работы
- •Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Тема: Технология работы в системе gpss World
- •2.1. Работа с файлами
- •2.2. Ввод текста модели
- •2.3. Компиляция и исправление ошибок
- •2.4. Выполнение программы имитации
- •2.5. Структура стандартного отчета
- •2.6. Управляющие операторы gpss World
- •2.7. Задание для самостоятельной работы
- •Тема: Основные приемы программирования моделей
- •3.1. Организация обработки различных типов транзактов
- •Устройство
- •3.2. Использование приоритетов транзактов
- •Устройство
- •3.3. Изменение маршрутов движения транзактов
- •3.4. Моделирование многоканальных устройств
1.5. Модель работы парикмахерской
Рассмотрим теперь модель парикмахерской с одним креслом, которая описана в п.1.1. Блок-схема этой модели приведена на рис.1.5, а программа – рис.1.6.
*Модель работы парикмахерской
GENERATE 18,6 ;Приход клиентов (1)
QUEUE QMASTER ;Присоединение к очереди (2)
SEIZE MASTER ;Переход в кресло парикмахера (3)
DEPART QMASTER ;Уход из очереди (4)
ADVANCE 16,4 ;Обслуживание у парикмахера (5)
RELEASE MASTER ;Освобождение парикмахера (6)
TERMINATE ;Уход из парикмахерской (7)
GENERATE 480 ;Приход транзакта-таймера (8)
TERMINATE 1 ;Завершение прогона (9)
Рис.1.6. Модель работы парикмахерской с одним креслом.
Текст, расположенный после знаков ‘*’ или ‘;’, является комментарием и системой не обрабатывается. Номера блоков, записанные справа в скобках, не являются частью программы и даны для удобства ссылок на операторы блоков.
Для того, чтобы начать моделирование, должна быть подана команда START 1 (или включена в текст модели). Эта команда дает начальное значение, равное 1, счетчику числа завершений, и начинает процесс моделирования.
Итак, транзакты создаются блоком GENERATE (1) согласно равномерному распределению с интервалом 186. Транзакт моделирует клиента, приходящего в парикмахерскую. Созданный транзакт продвигается далее в блок (2), где регистрируется его присоединение к очереди QMASTER. Затем транзакт пытается занять устройство MASTER, имитирующее парикмахера (блок 3). Если ему это удается, то состояние устройства меняется на “занято”, а транзакт продвигается в блок (4), регистрирующий его уход из очереди QMASTER. В случае неудачи транзакт остается в блоке (3) и ожидает в очереди освобождения устройства. После регистрации выхода из очереди, транзакт поступает в блок (5), где моделируется обслуживание клиента парикмахером задержкой на время 164. Затем транзакт поступает на блок (6), который изменяет состояние прибора на “свободно”, и далее проходит в блок (7), где уничтожается без изменения счетчика завершений. Второй сегмент модели состоит из двух блоков (8) и (9). Блок (8) генерирует транзакт-таймер, который приходит в момент модельного времени, равный 480, и символизирует звонок к окончанию рабочего дня. Этот транзакт тут же уничтожается блоком (9), при этом значение счетчика завершений уменьшается на 1 и становится равным 0. Моделирование прекращается.
Очевидным недостатком этой модели является то, что моделирование прекращается резко, без всяких подготовительных процедур. Если бы эта ситуация происходила в реальной жизни, то клиент, находящийся в кресле парикмахера в момент “звонка к окончанию дня” остался бы не достриженным, а клиенты, ожидавшие в очереди, ушли бы, не получив обслуживания.
Таким образом, в модели неявным образом объявлено устройство с именем MASTER. Транзакты, ожидающие в очереди к этому устройству, скапливаются в блоке (3) SEIZE MASTER. По этой очереди регистрируется статистика под символическим именем QMASTER.
1.6. Расчет статистических характеристик объектов.
В системе GPSS автоматически собирается статистика по всем устройствам и очередям, для которых заданы блоки QUEUE-DEPART. Для лучшего понимания сути этих статистических характеристик, рассмотрим пример ручного расчета по устройству MASTER и очереди QMASTER в модели парикмахерской из п.5. Будем использовать исходные данных, приведенных в п.2 (интервалы времени между приходами транзактов 14, 13, 17, 15,…; а значения времени обслуживания клиентов18, 12, 14,…). Для данного примера была построена временная диаграмма в п.2 (см. рис.1.4.). Допустим, моделирование прервано в момент времени 60. Тогда рассчитанные в этот момент характеристики объектов будут следующие.
Характеристики очереди QMASTER:
Общее число входов в очередь равно 4. Каждый транзакт, поступающий в систему, проходит блок QUEUE, т.е. регистрируется в очереди. К моменту модельного времени 60 четыре транзакта пройдут этот блок.
Число нулевых входов равно 3. Те транзакты, которым не пришлось ожидать в очереди (т.к. в момент их прихода устройство было свободно), регистрируют выход из очереди через блок DEPART в тот же момент времени, когда они прошли блок QUEUE. Такие транзакты называются нулевыми входами в очередь. В нашем примере из 4 зарегистрированных в очереди транзактов три были нулевыми входами (первый, третий и четвертый).
Максимальное количество транзактов в очереди равно 1. Следует отметить, что система GPSS никогда не даст значение этой величины, меньшее 1. Даже тот транзакт, который не стоял фактически в очереди, в ней зарегистрирован. Если представить ситуацию, что ни один транзакт не ожидал в очереди (все были нулевыми входами), система все равно даст значение этого показателя, равное 1. Если же в процессе моделирования возникает ситуация одновременного прихода одного транзакта и освобождения устройства другим транзактом, то в силу последовательности обработки цепей событий в очереди может оказаться зарегистрировано на 1 больше транзактов, чем там действительно находилось. Таким образом, иногда система GPSS дает значение показателя “максимальное количество транзактов в очереди”, завышенное на 1.
Среднее значение количества транзактов в очереди равно 0,083. Для расчета этой величины нарисуем ось модельного времени до момента окончания моделирования (60) и отметим на ней количество транзактов, находившихся в очереди в течение каждого интервала времени (см. рис.1.7.). Найдем сумму всех временных интервалов, в которые наблюдалось одно и то же значение количества транзактов в очереди.
0 транзактов: (14-0)+(27-14)+(44-32)+(58-44)+(59-58)+(60-59)=55
1 транзакт: (32-27)=5
Чтобы найти среднее число транзактов в очереди, нужно каждое значение количества ожидающих транзактов умножить на долю времени, в течение которого наблюдалось это количество транзактов в очереди:
0
0
1
0
0
0
0
t2
0
14
27
32
44
58
59
60
Рис. 1.7. Количество транзактов в очереди в каждый момент времени
Среднее время пребывания в очереди равно 1,25. Найдем сумму времен ожидания каждого транзакта и разделим ее на количество транзактов.
=(0+5+0+0)/4=1,25
Среднее время пребывания в очереди без учета нулевых входов равно 5. При расчете среднего не учитываются транзакты, которым не пришлось ожидать.
=5/1=5
Характеристики устройства MASTER:
Число обслуживаний равно 4. Фактически число обслуживаний есть количество транзактов, выходивших из блока SEIZE. Таким образом, учитывается и тот транзакт, который находится на устройстве в момент окончания моделирования.
Коэффициент использования устройства равен 0,75. Эта величина есть отношение времени, в течение которого устройство было занято обслуживанием, к общему модельному времени. Общее модельное время равно 60. Устройство было занято на интервалах 14-58 и 59-60, т.е. (58-14)+(60-59)=45 ед. времени. Коэффициент использования устройства
Средняя продолжительность одного обслуживания равна 11,25. Разделим время, в течение которого устройство было занято обслуживанием, на число обслуживаний:
.
Таким образом, в расчете участвует и
тот транзакт, который в данный момент
находится на устройстве (Хотя при этом
его обслуживание только начато).
Правильнее было бы рассчитать время
обслуживания первых трех транзактов
и разделить на 3: (18+12+14)/3=14,67. Однако
в GPSS используется именно
первый способ расчета и полагается,
что при большом числе транзактов это
занижение времени обслуживания не
будет иметь значение.
