- •Тема: Основные понятия языка моделирования 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. Моделирование многоканальных устройств
Устройство
Рис.3.1. Структура моделируемой системы с двумя типами транзактов
На рис. 3.2. показана блок-схема модели парикмахерской с двумя типами клиентов. Она включает два независимых сегмента, моделирующих обслуживание клиентов. Первый сегмент соответствует только стригущимся клиентам, а второй – стригущимся и бреющимся. В каждом сегменте пара блоков QUEUE –DEPART описывает одну и ту же очередь, поэтому по транзактам, проходящим в каждом сегменте, обеспечивается совместный сбор статистики. Таким же образом пара блоков SEIZE-RELEASE в каждом из сегментов описывает одно и то же устройство и моделирует самого парикмахера. За единицу времени принята одна минута.
На рис.3.3. приведена соответствующая программа на языке GPSS, а на рис.3.4. – результаты одного прогона этой модели. Эти результаты показывают, что парикмахер был занят всего 19 раз (количество входов в устройство Master). При этом не делается различий, сколько клиентов относились к типу только стригущихся, а сколько к другому типу. Аналогично поведение очереди к парикмахеру описывается также в обобщенном (агрегированном) виде.
GENERATE
35,10
GENERATE
60,20
Приход
стригущихся
и бреющихся клиентов
Присоединение к
очереди
QUEUE
QMaster
QUEUE
QMaster
Присоединение к
очереди
Переход в
кресло парикмахера
Master
Переход в
кресло парикмахера
SEIZE
SEIZE
Master
DEPART
QMaster
Уход из очереди
DEPART
QMaster
Уход из очереди
ADVANCE 18,6
Стрижка у
парикмахера
ADVANCE 18,6
Стрижка у
парикмахера
RELEASE
Master
ADVANCE 10,2
Бритье у
парикмахера
Освобождение
парикмахера
TERMINATE
Уход из
парикмахерской
RELEASE
Master
Освобождение
парикмахера
TERMINATE
Уход из
парикмахерской
1-й сегмент модели
2-й сегмент модели
GENERATE 480
TERMINATE
1
3-й сегмент модели (сегмент таймера)
Рис.3.2. Блок-схема модели парикмахерской с двумя типами клиентов
* Модель парикмахерской с клиентами двух типов
*
* 1-й сегмент модели
*
GENERATE 35,10 ;Приход только стригущихся клиентов
QUEUE QMaster ;Присоединение к очереди
SEIZE Master ;Переход в кресло парикмахера
DEPART QMaster ;Уход из очереди
ADVANCE 18,6 ;Стрижка у парикмахера
RELEASE Master ;Освобождение парикмахера
TERMINATE ;Уход из парикмахерской
*
* 2-й сегмент модели
*
GENERATE 60,20 ;Приход стригущихся и бреющихся клиентов
QUEUE QMaster ;Присоединение к очереди
SEIZE Master ;Переход в кресло парикмахера
DEPART QMaster ;Уход из очереди
ADVANCE 18,6 ;Стрижка у парикмахера
ADVANCE 10,2 ;Бритье у парикмахера
RELEASE Master ;Освобождение парикмахера
TERMINATE ;Уход из парикмахерской
* 3-й сегмент модели
*
GENERATE 480 ;Приход транзакта-таймера
TERMINATE 1 ;Завершение прогона
Рис.3.3. Программа модели парикмахерской с двумя типами клиентов
Рис.3.4. Фрагмент отчета для одного прогона модели парикмахерской с клиентами двух типов
Допустим, необходимо собрать статистику ожидания обслуживания как отдельно по каждому типу клиентов, так и по обоим типам вместе. Для этого нужно ввести по одной дополнительной очереди в каждый сегмент (1 и 2). Напомним, что введение объекта “очередь” в модель не означает образование новой очереди ожидающих транзактов, а служит для сбора статистики по уже существующим очередям. Соответствующая программа на языке GPSS приведена на рис.3.5. Дополнительные очереди Type1 и Type2 введены соответственно в сегмент 1 и в сегмент 2. Когда транзакт входит в сегмент 1, он сначала регистрируется в очереди QMaster, а затем в очереди Type1. Далее он пытается занять устройство. Если попытка успешна, то транзакт регистрирует уход из очередей Type1 и QMaster, и начинается обслуживание блоком ADVANCE. Таким образом, при ожидании обслуживания только стригущиеся клиенты одновременно имеют запись в двух очередях. То же самое можно сказать о втором типе клиентов, моделирование которых осуществляется в сегменте 2. Результаты прогона этой модели приведены на рис.3.6. Хотя статистика регистрируется по трем очередям, реально существует только одна очередь к обслуживающему устройству (парикмахеру). Анализируя эти результаты, можно сказать, что из 19 клиентов, ожидавших в очереди, 11 клиентов были первого типа (только стригущиеся), а 8 – второго типа (стригущиеся и бреющиеся).
* Модель парикмахерской с клиентами двух типов Сбор статистики по каждому типу
*
* 1-й сегмент модели
*
GENERATE 35,10 ;Приход только стригущихся клиентов
QUEUE QMaster ;Присоединение к очереди агрегированной статистики
QUEUE Type1 ;Присоединение к очереди разделенной статистики
SEIZE Master ;Переход в кресло парикмахера
DEPART Type1 ;Уход из очереди разделенной статистики
DEPART QMaster ;Уход из очереди агрегированной статистики
ADVANCE 18,6 ;Стрижка у парикмахера
RELEASE Master ;Освобождение парикмахера
TERMINATE ;Уход из парикмахерской
*
* 2-й сегмент модели
*
GENERATE 60,20 ;Приход стригущихся и бреющихся клиентов
QUEUE QMaster ;Присоединение к очереди агрегированной статистики
QUEUE Type2 ; Присоединение к очереди разделенной статистики
SEIZE Master ;Переход в кресло парикмахера
DEPART Type2 ;Уход из очереди разделенной статистики
DEPART QMaster ;Уход из очереди агрегированной статистики
ADVANCE 18,6 ;Стрижка у парикмахера
ADVANCE 10,2 ;Бритье у парикмахера
RELEASE Master ;Освобождение парикмахера
TERMINATE ;Уход из парикмахерской
* 3-й сегмент модели
*
GENERATE 480 ;Приход транзакта-таймера
TERMINATE 1 ;Завершение прогона
Рис.3.5. Программа модели с дифференцированным сбором статистики по ожиданию клиентов различных типов
Рис.3.6. Фрагмент отчета для модели дифференцированного сбора статистики по ожиданию клиентов двух типов
Задание 3.1.
Из папки Примеры загрузите модель Пример 31.gps. Выполните один прогон модели и изучите отчет.
Модифицируйте модель, чтобы статистика по ожиданию в очереди регистрировалась отдельно по каждому типу клиентов. Получите отчет и сравните его с отчетом из п.1.
