Технология Технология GPSS GPSS Транзактно-ориентированное моделирование
Jan 16, 2016
Технология Технология GPSSGPSSТранзактно-
ориентированное моделирование
Особенности Особенности GPSS GPSS WorldWorld
Модель описывается в терминах транзактов – элементов потока обслуживания.Симулятор и другое ПО GPSS World:•Обеспечивает заданный маршрут продвижения транзактов;•Планирует события, происходящие в модели, путем регистрации времени наступления каждого события и выполнения их в нарастающей временной последовательности;•Регистрирует статистическую информацию;•Обеспечивает продвижение модельного времени.
Классификация Классификация объектовобъектов
• Динамические объекты – транзакты (создаются, перемещаются по блокам, уничтожаются);
• Операционные блоки – задают логику функционирования модели системы и определяют пути следования транзактов;В блоках могут происходить события: 1) создание и уничтожение транзактов;
2) изменение числового атрибута объекта; 3) задержка транзакта на определенный период времени; 4) изменение маршрута движения транзакта.
Классификация Классификация объектовобъектов
• Объекты аппаратной категории – элементы оборудования, которые управляются транзактами (одноканальные, многоканальные, логические ключи);
• Объекты вычислительной категории;• Запоминающие объекты;• Группирующие категории
Операторы Операторы GPSSGPSS - - GENERATEGENERATE
Ввод транзактов в модель – блок GENERATEGENERATE [A],[B],[C],[D],[E]
A – средний интервал времени;В – половина поля допуска равномерно распределенного интервала;С – смещение интервалов;D – ограничитель транзактов;E – уровень приоритета транзактов.
Операторы Операторы GPSSGPSS - - GENERATEGENERATE
Примеры.1)Транзакт входит в модель каждые 12 минут с отклонением в 4 минуты: GENERATE 12,42)Приход в модель через каждые 20 минут с отклонением 3 минут 5 транзактов:
GENERATE 20,3,,5
Операторы Операторы GPSSGPSS - - GENERATEGENERATE
Другие распределения – используются функции типовых распределений вероятностей:
GENERATE Exponential(1,0,10) 1 – номер генератора случайных чисел;0 – смещение;10 – среднее значение.
GENERATE Normal(1,10,3) 1 – номер генератора случайных чисел;10 – среднее значение;3 – стандартное отклонение.
Операторы Операторы GPSSGPSS - - TERMINATETERMINATE
Вывод транзактов из модели – блок TERMINATE
TERMINATE [A]A – величина уменьшения счетчика завершения.Работает вместе с блоком START, который задает величину счетчика транзактов. Блок TERMINATE уменьшает счетчик транзактов на величину A.
Операторы Операторы GPSSGPSS – – одноканальное устр-одноканальное устр-
вово• Такое устройство может обслуживать только одно
требование;• Требование обслуживается с определенной задержкой.Устройства могут иметь имена – числовые или
символические.Занять устройство.
SEIZE AA – имя занимаемого устройства. Транзакт не может занять устройство, если оно
обслуживает другой транзакт. Команда выполнится, когда устройство будет освобождено.
Освободить устройство.RELEAZE A
A – имя освобождаемого устройства.
Операторы Операторы GPSSGPSS – – задержка по временизадержка по времениЗадержка продвижения транзакта – блок ADVANCE.
ADVANCE A,BA – среднее время задержки на обслуживание;В – половина поля допуска равномерно распределенной случайной величины.
Классическая последовательность блоков:SEIZE – ADVANCE - RELEASE
Операторы Операторы GPSSGPSS – – захват устройствазахват устройства
При захвате устройства происходит приоритетное начало обслуживания определенного транзакта или прерывание предыдущих операций - блок PREEMPT.
PREEMPT AA – имя устройства.Освобождение устройства осуществляет блок RETURN
RETURN AA – имя устройства.
Пример 1 - Пример 1 - парикмахерскаяпарикмахерская
*LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY
; простой проект с одним парикмахером и ; без отслеживания параметров транзактовGENERATE 8,5 ; генерация прихода клиентаSEIZE Master ; проверка занятости мастера; и начало обслуживания, если мастер свободенADVANCE 15,8 ; обслуживание клиентовRELEASE Master ; освобождение парикмахераTERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Пример 1 – запуск Пример 1 – запуск моделимодели
Пример 1 – запуск Пример 1 – запуск моделимодели
Стандартный отчет содержит следующую информацию:•Начальное (START TIME) и конечное (END TIME) модельное время;•Число блоков модели (BLOCKS);•Число устройств (FACILITIES и STORAGES);•Информация о именах;•Информация о канале обслуживания;•Список текущих событий;•Список будущих событий.
Пример 1 – запуск Пример 1 – запуск моделимодели
Информация об устройстве:•Имя FACILITY;•Количество фактов занятия устройства ENTRIES;•Коэффициент использования канала обслуживания UTIL;•Среднее время обслуживания заявки AVE.TIME;•Состояние устройства в момент окончания моделирования AVAIL;•Номер транзакта, который занимает устройство OWNER;•Количество транзактов, которые ожидают отбработки PEND.
Параметры Параметры устройстваустройства
Параметры устройства можно получить и в процессе моделирования:•F – состояние устройства;•FC – счетчик обслуженных заявок;•FR – коэффициент использования;•FT – среднее время использования устройства одним транзактом;•FV – состояние доступности и пр.
Обратиться к параметру можно: Имя_пар$Имя_устр
Сбор статистикиСбор статистикиОсновные статистические параметры обычно связаны с параметрами ожидания, т.е. нужна очередь.
QUEUE A, [B]A – имя очереди;B – число единиц, на которое увеличивается очередь.Выход из очереди:
DEPART A, [B]A – имя очереди;B – число единиц, на которое увеличивается очередь.
Сбор статистикиСбор статистикиОб очередях можно узнать следующую информацию:•Q – текущая длина очереди;•QA – средняя длина очереди;•QC – общее число входов в очередь;•QM – максимальная длина очереди;•QT – среднее время пребывания в очереди (с учетом нулевых входов);•QX – среднее время пребывания в очереди (без учета нулевых входов);•QZ – число входов транзактов, время нахождения которых в очереди равно 0.
ТабулированиеТабулированиеДля наглядного показа параметров можно создавать таблицу:•Определить таблицу:
Имя TABLE A, B, C, DA – аргумент, который будет табулироваться;B – верхний предел первого интервала;C – ширина интервала;D – число интервалов.•Собственно запись в таблицу:
TABULATE AA – имя таблицы.
Пример – добавление Пример – добавление очередиочереди
*LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARYTab_Q TABLE QX$QU,10,10,20GENERATE 8,5 ; генерация прихода клиентаQUEUE QU ; клиент встает в очередьSEIZE Master ; проверка занятости мастера DEPART QU ; начало обслуживанияTABULATE Tab_Q ; табулирование параметра ADVANCE 15,8 ; обслуживание клиентовRELEASE Master ; освобождение парикмахераTERMINATE 1 ; уход клиентаSTART 100 ; запуск модели для 100 клиентов
Пример – просмотр Пример – просмотр таблицытаблицы
Пример – просмотр Пример – просмотр таблицытаблицы
Многоканальные Многоканальные устройстваустройства
Многоканальное устройство управляется следующим образом:•Задается устройство и его емкость:
Имя STORAGE AA – имя многоканального устройства;•Занятие канала на обслуживание:
ENTER A,[B]A – имя занимаемого устройства;B – число занимаемых приборов.•Освобождение канала:
LEAVE A,[B]A – имя освобождаемого устройства;B – число освобождаемый приборов.
Многоканальные Многоканальные устройстваустройства
Отчет содержит следующую информацию о многоканальном устройстве:•REM – число каналов, свободных при окончании моделирования;•MIN – минимальное число каналов, которые использовались при моделировании;•MAX – максимальное число каналов, которые использовались при моделировании;•AVL – состояние устройства в момент окончания моделирования;•AVE.C. – среднее число занятых каналов;•UTIL – коэффициент использования устройства.
Многоканальные Многоканальные устройстваустройства
В процессе моделирования доступны параметры устройства:•R – число свободных каналов;•S – текущее содержимое;•SA – среднее содержимое;•SC – счетчик числа входов;•SE – занятость;•SF – степень заполнения;•SM – максимальное содержимое;•SR – коэффициент использования;•ST – среднее время задержки на единицу емкости.
Пример – Пример – 3 парикмахера3 парикмахера
Masters STORAGE 3 ; 3 мастераTab_Q TABLE QX$QU,2,2,10GENERATE 8,5QUEUE QUENTER MastersDEPART QUTABULATE Tab_QADVANCE 20,8LEAVE MastersTERMINATE 1START 100 ; запуск модели для 100 клиентов
Параметры Параметры транзактовтранзактов
Транзакты могут иметь параметры, значения которых можно им назначать:•Pj – значение j-ого параметра активного транзакта;•XN1 – номер активного транзакта;•PR – приоритет активного транзакта;•MPj – время прохождения некоторого участка;•M1 – время пребывания в модели активного транзакта.Назначить значение параметра:
ASSIGN A,BA – номер модифицируемого параметра;B – величина параметра.
Модификация Модификация потоков транзактовпотоков транзактов
Переход транзакта к любому блоку обеспечивает блок:TRANSFER [A], [B], [C], [D]
A – способ перехода.Остальные параметры зависят от параметра A.
Например, безусловный переход:TRANSFER ,B
B – метка блока, куда должен перейти транзакт.Вероятностный переход:
TRANSFER A,[B],CA – вероятность передачи транзакта в блок С (в долях тысячи);B – метка блока, куда перейдет транзакт с вероятностью 1-А;С - метка блока, куда перейдет транзакт с вероятностью А.
Модификация Модификация потоков транзактовпотоков транзактов
Режим BOTH – транзакт пытается перейти к блоку, метка которого указана в операнде B. Если этот блок занят, то он пытается перейти к блоку C.
TRANSFER BOTH, B, C,Режим ALL – проверяется блок, указанный в блоке B. Если он занят, то последовательно проверяются все блоки, пока не будет достигнут блок, заданный в операнде С. Местоположение каждого проверяемого блока определяется с помощью шага, заданного в параметре D.
TRANSFER ALL, B, C, DИ другие режимы.
Условный переходУсловный переход
Для формирования условного блока используется:TEST X A,B,[C]
X – операция отношения (G,L, GE, LE, NE, E);A, B – операнды отношения;С – метка блока, куда переходит транзакт, если ответ отрицательный.
Пример – обеденные Пример – обеденные перерывы (версия 1)перерывы (версия 1)
Tab_Q TABLE QX$QU,5,5,10Tab_T TABLE P1,1,1,3GENERATE 8,5 ; генерация прихода клиентаQUEUE QU ; клиент встает в очередь MARK 2 ; в P2 сохраняется модельное времяTEST GE P2,180,ServeAll ;если время до 12, то
;работают 3 парикмахераTEST LE P2,270,ServeAll ;если время после 13.30, то
;работают 3 парикмахера TEST GE P2,210,Serve1 ; если после 12 до 12.30 –
;обедает парикмахер 1TEST GE P2,240,Serve2 ; если после 12.30 до 13.00 –
; обедает парикмахер 2
Пример – обеденные Пример – обеденные перерывы (версия 1)перерывы (версия 1)
TRANSFER BOTH,Mast1,Mast2Serve1 TRANSFER BOTH,Mast2,Mast3Serve2 TRANSFER BOTH,Mast1,Mast3 ServeAll TRANSFER ALL,Mast1,Mast3,8Mast1 SEIZE Master1 ; клиент пытается попасть к
;парикмахеру 1DEPART QUTABULATE Tab_Q
ASSIGN 1,1 TABULATE Tab_T ADVANCE 15,8
Пример – обеденные Пример – обеденные перерывы (версия 1)перерывы (версия 1)
RELEASE Master1 TRANSFER ,ExitTran
; аналогично задаются группы блоков Master2 и Master3 . . .ExitTran TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Пример – обеденные Пример – обеденные перерывы (версия 1)перерывы (версия 1)
RELEASE Master1 TRANSFER ,ExitTran
; аналогично задаются группы блоков Master2 и Master3 . . .ExitTran TERMINATE 1 ; уход клиента
START 100 ; запуск модели для 100 клиентов
Обслуживание Обслуживание заявокзаявок
Пример – обеденные Пример – обеденные перерывы (версия 2)перерывы (версия 2)
Версия 1 показывает, что в заданные временные интервалы к отдельным парикмахерам не направляются клиенты. Версия 2 предполагает, что обеденный перерыв – это внеочередной клиент, который более приоритетен по сравнению с другими клиентами. Начало версии 2 похоже (без проверок на время) Tab_Q TABLE QX$QU,5,5,10 Tab_T TABLE P1,1,1,3 Tab_D TABLE P3,240,2,100 GENERATE 8,5 ; генерация прихода клиента QUEUE QU ; клиент встает в очередь ServeAll TRANSFER ALL Mast1,Mast3,8
Пример – обеденные Пример – обеденные перерывы (версия 2)перерывы (версия 2)
Mast1 SEIZE Master1 DEPART QU
TABULATE Tab_Q ASSIGN 1,1 TABULATE Tab_T ADVANCE 15,8
RELEASE Master1 TRANSFER ,ExitTran; аналогично по Mast2 и Mast3
Пример – обеденные Пример – обеденные перерывы (версия 2)перерывы (версия 2)
GENERATE 240,,,1 ;3 группыDinner1 TEST E F$Master1,0,loop1 PREEMPT Master1 MARK 2 ASSIGN 3,P2 TABULATE Tab_D ADVANCE 30 RETURN Master1 TERMINATE 1 TRANSFER ,gen2 ;переход к блоку для 2 мастера loop1 ADVANCE 5 TRANSFER ,Dinner1
Пример – обеденные Пример – обеденные перерывы (версия 2)перерывы (версия 2)
TERMINATE 1 TRANSFER ,EX loop3 ADVANCE 5 TRANSFER ,Dinner3
EX START 103 ; запуск модели для 100 клиентов
ЗаданияЗаданияВ качестве усложнения модели можно предложить следующие:
1.Предусмотреть приход клиентов для получения различных услуг (из заданного списка) (не все мастера могут предоставить каждую услугу);2. Согласно квалификации мастеров и оказанным услугам рассчитать стоимость оказания услуг.