- •3.4. Сбор статистических данных для получения оценок характеристик случайных величин
- •3.5. Определение количества реализаций при моделировании случайных величин
- •Глава 4. Система моделирования gpss
- •4.1. Объекты
- •4.2. Часы модельного времени
- •4.3. Типы операторов
- •4.4. Внесение транзактов в модель. Блок gеnеrате
- •4.5. Удаление транзактов из модели. Блок terminate
- •4.6. Элементы, отображающие одноканальные обслуживающие устройства
- •4.7. Реализация задержки во времени. Блок аdvance
- •4.8. Сбор статистики об ожидании. Блоки queue, depart
- •4.9. Переход транзакта в блок, отличный от последующего. Блок transfer
- •4.10. Моделирование многоканальных устройств
- •4.11. Примеры построения gpss-моделей
- •4.12. Переменные
- •4.13. Определение функции в gpss
- •4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки аssign, маrк, lоор
- •4.15. Изменение приоритета транзактов. Блок рriority
- •4.16. Организация обслуживания с прерыванием. Блоки рrеемрт и return
- •4.17. Сохраняемые величины
- •4.18. Проверка числовых выражений. Блок теsт
- •4.20. Косвенная адресация
- •4.21. Обработка транзактов, принадлежащих одному семейству
- •4.22. Управление процессом моделирования в системе gpss
- •4.23. Списки пользователей
- •Блоки управления потоками транзактов
4.11. Примеры построения gpss-моделей
Пример 4.11 [10]
Интервалы прихода клиентов в парикмахерскую с одним креслом распределены равномерно на интервале 18 ± 6 мин. Время стрижки также распределено равномерно на интервале 16 ±4 мин. Клиенты приходят в парикмахерскую, стригутся в порядке очереди:
«первым пришел – первым обслужился». Необходимо построить GPSS-модель парикмахерской, которая должна обеспечить сбор статистических данных об очереди. Промоделируйте работу парикмахерской в течение 8 часов.
Построение модели
Порядок блоков в модели соответствует порядку фаз, в которых клиент оказывается при движении в реальной системе:
1) клиент приходит;
2) если необходимо, ждет своей очереди;
3) садится в кресло парикмахера;
4) парикмахер обслуживает клиента;
5) клиент уходит из парикмахерской.
Таблица 4.12 (Таблица определений)
|
Элементы GPSS |
Интерпретация |
|
Транзакты В первом сегменте модели Во втором сегменте модели |
Клиенты Таймер |
|
Устройство ВАRВЕR |
Парикмахер |
|
Очередь ВАRВЕRQ |
Очередь, используемая для сбора статистики об ожидании клиентов |
Единица модельного времени – 1 минута.
Программа:
MODEL SEGMENT 1
GENERATE 18,6 ;Приход клиентов
QUEUE BARBERQ ;Присоединение к очереди
SEISE BARBER ;Переход в кресло парикмахера
DEPART BARBERQ ;Выход из очереди
ADVANCE 16,4 ;Обслуживание у парикмахера
RELEAZE BARBER ;Освобождение парикмахера
TERMINATE 0 ;Уход из парикмахерской
MODEL SEGMENT 2
GENERATE 480 ;Транзакт-таймер
TERMINATE 1 ;Завершение прогона
START 1
Пример 4.12 [10]
В парикмахерскую с одним креслом приходят клиенты двух типов. Клиенты первого типа желают только стричься. Распределение интервалов их прихода – 35±10мин. Клиенты второго типа желают постричься и побриться. Распределение интервалов их прихода – 60±20 мин. Парикмахер обслуживает клиентов в порядке «первым пришел – первым обслужился». Время, затраченное на стрижку, составляет 18±6мин, а на бритье – 10±2 мин. Написать GPSS-модель парикмахерской, обеспечив сбор данных об очереди клиентов.
Построение модели
Необходимо реализовать отличие в обслуживании клиентов, которые только стригутся, и клиентов, которые стригутся и бреются.
Такую систему можно промоделировать с помощью двух сегментов. Один из них моделирует обслуживание только стригущихся клиентов, а второй – стригущихся и бреющихся. В каждом из сегментов пара QUEUE – DEPART должна описывать одну и ту же очередь, Таким же образом пара блоков SEIZE – RELEASE должна описывать в каждом из двух сегментов одно и то же устройство и моделировать работу парикмахера.
Таблица 4.13 (Таблица определений)
-
Элементы GPSS
Интерпретация
Транзакты
В 1 сегменте модели
Во 2 сегменте модели
В 3 сегменте модели
Клиенты, которые только стригутся
Клиенты, которые бреются и стригутся
Таймер
Устройство
ВАRВЕR
Парикмахер
Очередь
ВАRВЕRQ
Очередь, используемая для сбора статистики об ожидании клиентов обоих типов
Единица модельного времени – 1 мин
Программа:
* HAIRCUT
GENERATE 35,10 ;Приход клиентов, которые только стригутся
QUEUE BARBERQ ;Присоединение к очереди
SEIZE BARBER ;Переход в кресло парикмахера
DEPARD BARBERQ ;Выход из очереди
ADVANCE 18,6 ;Стрижка у парикмахера
RELEASE BARBER ;Освобождение парикмахера
TERMINATE 0 ;Уход из парикмахерской
* HAIRCUT AND SHAVING
GENERATE 60,20 ;Приход клиентов, которые стригутся и бреются
QUEUE BARBERQ ;Присоединение к очереди
SEIZE BARBER ;Переход в кресло парикмахера
DEPARD BARBERQ ;Выход из очереди
ADVANCE 10,2 ;Бритье у парикмахера
ADVANCE 18,6 ;Стрижка у парикмахера
RELEASE BARBER ;Освобождение парикмахера
TERMINATE 0 ;Уход из парикмахерской
* TIMER – Сегмент таймера
GENERATE 480 ;Транзакт-таймер приходит в момент 480
TERMINATE 1 ;Завершение прогона
START 1
Пример 4.13 [10]
На фабрике в кладовой работает один кладовщик. Он выдает запасные части механикам, обслуживающим станки и устанавливающим эти части на испорченных станках. Запасные части довольно дорогие и, кроме того, их ассортимент слишком велик для того, чтобы каждый механик мог иметь все запасные части в своем ящике. Время, необходимое для удовлетворения запроса, зависит от типа запасной части. Запросы бывают двух категорий. Соответствующие данные приведены в табл. 4.14.
Таблица 4.14
|
Категория запроса |
Интервал времени прихода механиков, с |
Время обслуживания, с
|
|
1 |
420±360 |
300±90 |
|
2 |
360±240 |
100±30 |
Порядок обслуживания механиков кладовщиком такой: запросы первой категории обслуживаются только в том случае, когда в очереди нет ни одного запроса второй категории. Внутри одной категории дисциплина обслуживания – «первым пришел – первым обслужился». Необходимо создать модель работы кладовой, моделирование выполнять в течение восьмичасового рабочего дня.
Д
исциплина
обслуживания «первый пришел – первый
обслужился» для двух категорий запросов
с соответствующим приоритетом
изображена на рис. 4.1.
Рис. 4.1
Построение модели
Эта система очень похожа на систему из примера 4.12. Есть два различных типа заявок, поступающих на обслуживание к одному устройству. Различаются распределения интервалов приходов и времени обслуживания для этих типов заявок. Трудность заключается в том, что один из типов имеет преимущество в обслуживании. Построить модель можно, используя тот же подход, что и в примере 4.12. Но при этом необходимо использовать средство задания заявкам различных приоритетов.
Итак, запросы первой категории будем моделировать одним сегментом, а запросы второй категории – другим. Разные относительные приоритеты задаются путем использования для операнда Е блока GЕNЕRАТЕ запросов второй категории большего значения, чем для запросов первой категории.
Таблица 4.15 (Таблица определений)
-
Элементы GPSS
Интерпретация
Транзакты
В первом сегменте модели
Во втором сегменте модели
В третьем сегменте модели
Механики, делающие запрос первой категории
Механики, делающие запрос второй категории
Таймер
Устройство
STOCKMAN
Кладовщик
Очереди
QSTKM1
QSTKM2
Очереди, используемые для сбора статистики об ожидании механиков различных категорий
Единица модельного времени – 1 с.
Программа:
* MECHANICS OF TYPE 1
GENERATE 420,369,,,1 ;Приход механиков 1-й категории
QUEUE QSTKM1 ;Присоединение к очереди 1-й категории
SEIZE STOCKMAN ;Занятие кладовщика
DEPARD QSTKM1 ;Выход из очереди
ADVANCE 300,90 ;Обслуживание кладовщиком
RELEASE STOCKMAN ;Освобождение кладовщика
TERMINATE 0 ;Уход из кладовой
* MECHANICS OF TYPE 2
GENERATE 360,240,,,2 ;Приход механиков 2-й категории
QUEUE QSTKM2 ;Присоединение к очереди 2-й категории
SEIZE STOCKMAN ;Занятие кладовщика
DEPARD QSTKM2 ;Выход из очереди
ADVANCE 100,30 ;Обслуживание кладовщиком
RELEASE STOCKMAN ;Освобождение кладовщика
TERMINATE 0 ;Уход из кладовой
* TIMER – Сегмент таймера
GENERATE 28800 ;Приход транзакт-таймера
TERMINATE 1 ;Завершение прогона
START 1
Пример 4.14 [10]
Изготовление деталей определенного вида включает длительный процесс сборки, который заканчивается коротким периодом обжига в печи. Поскольку эксплуатация печи обходится очень дорого, несколько сборщиков используют одну печь, в которой одновременно можно обжигать только одну деталь. Сборщик не может начать новую сборку, пока не вытащит из печи предыдущую деталь.
Таким образом, сборщик работает в таком режиме:
1) собирает следующую деталь;
2) ожидает возможности использования печи по принципу FIFO;
3) использует печь;
4) возвращается к п. 1.
Время, необходимое на выполнение различных операций, приведено в табл. 4.16.
Таблица 4.16
-
Операция
Необходимое время, мин
Сборка
30±5
Обжиг
8±2
Необходимо построить на GPSS модель описанного процесса. Определить оптимальное число сборщиков, использующих одну печь, т.е. такое количество, которое дает наибольшую прибыль при моделировании в течение 40 часов модельного времени. Предполагается, что в течение рабочего дня нет перерывов, а рабочими днями являются все дни (без выходных).
Построение модели
В данном случае есть два ограничивающих условия, влияющих на пропускную способность системы: одна печь и некоторое фиксированное количество сборщиков, работающих в системе.
Естественно для моделирования печи использовать понятие «устройство», также естественно отождествлять сборщиков с транзактами. Тогда можно считать, что сборщики «циркулируют» в системе, периодически осуществляя сборку и обжиг. Аналогично и транзакты должны циркулировать в GPSS-модели системы. Как видно из постановки задачи, модель представляет собой замкнутую СМО с одним устройством обслуживания.
В реальной системе, после того, как сборщик вынимает из печи обожженную деталь, он возвращается и начинает новый этап сборки. В модели после того, как транзакт завершает использование устройства, он должен быть перемещен с помощью блока TRANSFER в блок следующей сборки. Для ограничения общего количества транзактов, циркулирующих в модели, необходимо использовать операнд D блока GЕNЕRАТЕ.
Для вычисления прибыли при заданном числе сборщиков необходимо знать, сколько готовых деталей они сделают на протяжении моделируемого периода. Это значение дает количество выходов из печи, т.е. в процессе моделирования нас интересует именно эта величина.
Таблица 4.17 (Таблица определений)
-
Элементы GPSS
Интерпретация
Транзакты
В 1 сегменте модели
Во 2 сегменте модели
Сборщики
Таймер
Устройство
OVEN
Печь
Единица модельного времени – 1 мин.
Программа:
GENERATE ,,,4 ;Определение количества сборщиков
BACK1 ADVANCE 30,5 ;Сборка следующей детали
SEIZE OVEN ;Занятие печи
ADVANCE 8,2 ;Использование печи
RELEASE OVEN ;Освобождение печи
TRANSFER ,BACK1 ;Переход к сборке следующей детали
GENERATE 2400 ;Моделирование 5 дней работы
TERMINATE 1 ;Уход из кладовой
START 1 ;Начало прогона модели
Пример 4.15 [10]
Морские судна двух типов прибывают в порт, где происходит их разгрузка. В порту есть два буксира, обеспечивающих ввод и вывод кораблей из порта. К первому типу судов относятся корабли малого тоннажа, которые требуют использования одного буксира. Корабли второго типа имеют большие размеры, и для их ввода и вывода из порта требуется два буксира. Из-за различия размеров двух типов кораблей необходимы и причалы различного размера. Кроме того, корабли имеют различное время погрузки-разгрузки. Исходные данные приведены в табл. 4.18.
Построить модель системы, в которой можно оценить время ожидания кораблями каждого типа входа в порт. (Время ожидания входа в порт включает время ожидания освобождения причала и буксира). Корабль, ожидающий освобождения причала, не обслуживается буксиром до тех пор, пока не будет предоставлен нужный причал. Корабль второго типа не займет буксир до тех пор, пока ему не будут доступны оба буксира.
Таблица 4.18
|
Значение |
Тип корабля | |
|
1 |
2 | |
|
Интервал прибытия, мин |
130 ± 30 |
390 ± 60 |
|
Время входа в порт, мин |
30 ±7 |
45 ± 12 |
|
Количество доступных причалов |
6 |
3 |
|
Время погрузки-разгрузки, час |
12 ±2 |
18 ±4 |
|
Время выхода из порта, мин |
20 ±5 |
35 ± 10 |
Программа:
PRCH1 STORAGE 6 ;6 причалов для кораблей первого типа
PRCH2 STORAGE 3 ;3 причала для кораблей второго типа
BUKS STORAGE 2 ;2 буксира
; CHIPS OF TYPE 1
GENERATE 130,30 ; Подход к порту
QUEUE TYPE 1
ENTER PRCH1 ;Получение причала
ENTER BUKS ;Получение буксира
DEPARD TYP1
ADVANCE 30,7 ;Буксирование до причала
LEAVE BUKS ;Освобождение буксира
ADVANCE 30,7 ;Погрузка-разгрузка
ENTER BUKS ;Получение буксира
LEAVE PRCH1 ;Освобождение причала
ADVANCE 20,5 ;Буксирование (отчаливание)
LEAVE BUKS ;Освобождение буксира
TERMINATE
; CHIPS OF TYPE 2
GENERATE 390,60
QUEUE TYPE 2
ENTER PRCH2
ENTER BUKS,2
DEPARD TYP2
ADVANCE 45,12
LEAVE BUKS,2
ADVANCE 1080,240
ENTER BUKS,2
LEAVE PRCH2
ADVANCE 35,10
LEAVE BUKS,2
TERMINATE 0
GENERATE 48000
TERMINATE 1
START 1
Среднее время ожидания кораблями каждого типа входа в порт получаем в конце моделирования из стандартной статистики об очередях: оно равно показателю AVERAGE TIME соответствующей очереди. (Эти же значения дают СЧА QT$TYPE1 и QT$TYPE2).
