Лекция №5. (09. 04. 2018)
Моделирование параллельного обслуживания нескольких заявок одним устройством
Для моделирования указывания ситуаций в языке GPSS предусмотрены многократные устройства (МКУ). При их определении указывается количество каналов обслуживания, которые могут быть одновременно закрыты обслуживанием поступивших требований. МКУ должны быть определены в самом начале описания модели до первого блока GENERATE. В терминах языка GPSS МКУ называют STORAGE. Каждое МКУ имеет своё имя (по аналогии с прибором). Описание имеет следующий вид: имя STORAGE A (A – количество каналов в нём), например: BENZ STORAGE 3.
Для моделирования обслуживания транзактов в МКУ используется пара блоков: ENTER_имя МКУ. Подойдя к этому блоку транзакт определяет имеются ли свободные каналы обслуживания, если они имеются, то транзакт проходит данный блок и количество свободных каналов данного МКУ уменьшится на единицу. Блок LEAVE_имя МКУ, пройдя через блок LEAVE транзакт освобождает один канал данного МКУ, т.е. количество свободных каналов увеличиться на единицу. Если транзакт подойдя к блоку ENTER обнаруживает, что все каналы заняты (количество свободных каналов равно 0), то но останавливается перед этим блоком, ожидая освобождения хотя бы одного канала.
Пример:
Имеется АЗС с тремя бензоколонками, каждая из которых представляет один и тот же набор вида бензина. Время обслуживания автомобиля подчиняется равномерному закону распределения (8;10) минут, интервалы времени между пребыванием автомобиля распределяется по экспоненциальному закону со средним значением 4 минуты. Составить модель данной АЗС, собрав сведенья о характерах очереди ожидания.
Решение:
AZS STORAGE 3
GENERATE (EXPONENTIAL (1,0,4))
QUEUE OCH
ENTER AZS
DEPART OCH
ADVANCE 9,1
LEAVE AZS
TERMINATE 1
START 1000
Пример 2:
На АЗС имеется пара колонок с обычным бензином и пара с классом премиум, 20 приезжающих авто заправляются бензином класса премиум – остальные обычным бензином. Составить модель со сбором статистики обслуживания очередей ожидания каждого класса бензина.
Решение:
OBYCH STORAGE1
PREM STORAGE2
GENERATE (EXPONENTIAL (1,0,4))
TRANSFER .2,BP,BO
BP QUEUE OCHP
ENTER PREM
DEPART OCHP
ADVANSE 9,1
LEAVE PREM
TERMINATE 1
BO QEUEU OCHO
ENTER OBYCH
ADVANCE 9,1
LEAVE OB
TERMINATE 1
START 1000
Пример 3:
В парикмахерскую приходят клиенты двух видов: мужчины и женщины, при этом в парикмахерских работают трое парикмахеров Клиенты первого вида приходят в интервале 10-20 минут и обслуживаются 30-40. Клиенты второго вида приходят в интервале 40-60, а обслуживаются 20-24. Построить модель и собрать статистику по очереди ожидания обслуживания.
PAR STORAGE 3
GENERATE 15,5
QUEUE OCH
ENTER PAR
DEOART OCH
ADVANCE 40,10
LEAVE PAR
TERMINATE
GENERETE 50,10
QUEUE OCH
ENTER PAR
DEPART OCH
ADVANSE 22,2
LEAVE PAR
TERMINATE 1
START 1
Лекция №6. (23. 04. 2018)
Изменение приоритетов транзактов
Стандартно приобретет транзактам принимается в блоке GENERATE при их порождении. В то же время в ходе функционирования модели у некоторых транзактов их приобретет идёт потребовать изменения. Например, при моделировании процесса, когда человек, подойдя к клерку, получив документ для заполнения, отходит, а потом, заполнив их возвращается, он должен быть обслужен вне очереди. Для моделирования такого рода ситуаций (для изменения приоритетов) используется блок PRIORITY A. Значение параметра A указывает номер приоритета, присваиваемый, проходящем через блок транзакты.
Пример:
В поликлинике при посещении кардиолога часть поциентов направляется на снятие электрокардиограммы, после чего они повторно идут к каталогу повторно вне очереди. Время прихода – 12+-2, время обслуживания – 9+-3, вероятность, что клиент будет направлен на ЭКГ – 0,1. Время меду приходом внешних пациентов на ЭКГ – 10+-3, время снятия ЭКГ – 6+-1.
Решение:
GENERATE 12,2
QUEUE OCHKAR
SEIZE KAR
DEPART OCHKAR
ADVANCE 9,3
RELEASE KAR
TRANSFER .1, EXP, KABEKG,
KABEKG QUEUE OCHEKG
SEIZE EKG
DEPART OCHEKG
ADVANCE 6,1
RELEASE EKG
PRIORITY 1
QUEUE OCHKAR
SEIZE KAR
DEPART OCHKAR
ADVANCE 9,3
RELEASE KAR
Пример 2:
При заказе такси часть клиентов успело заказать такси за 150 руб., после повышения стоимости такси стало стоить 200 руб. и обслуживалась та часть клиентов, которые платили больше.
Монтируется ситуация на улицах города. У машин, едущих по второстепенной дороге приоритет меньше, чем едущих по главной.