Пакет имитационного моделирования GPSS.

Download Report

Transcript Пакет имитационного моделирования GPSS.

Технология GPSS

Транзактно-ориентированное моделирование

Особенности GPSS World

• • Модель описывается в терминах транзактов – элементов потока обслуживания.

• • Симулятор и другое ПО GPSS World: Обеспечивает заданный маршрут продвижения транзактов; Планирует события, происходящие в модели, путем регистрации времени наступления каждого события и выполнения их в нарастающей временной последовательности; Регистрирует статистическую информацию; Обеспечивает продвижение модельного времени.

• •

Классификация объектов

Динамические объекты – транзакты (создаются, перемещаются по блокам, уничтожаются); Операционные блоки – задают логику функционирования модели системы и определяют пути следования транзактов; В блоках могут происходить события: 1) создание и уничтожение транзактов; 2) изменение числового атрибута объекта; 3) задержка транзакта на определенный период времени; 4) изменение маршрута движения транзакта.

• • • •

Классификация объектов

Объекты аппаратной категории – элементы оборудования, которые управляются транзактами (одноканальные, многоканальные, логические ключи); Объекты вычислительной категории; Запоминающие объекты; Группирующие категории

Операторы GPSS GENERATE

Ввод транзактов в модель – блок GENERATE GENERATE [A],[B],[C],[D],[E] A – средний интервал времени; В – половина поля допуска распределенного интервала; равномерно С – смещение интервалов; D – ограничитель транзактов; E – уровень приоритета транзактов.

Операторы GPSS GENERATE

Примеры.

1) Транзакт входит в модель каждые 12 минут с отклонением в 4 минуты: GENERATE 12,4 2) Приход в модель через каждые 20 минут с отклонением 3 минут 5 транзактов: GENERATE 20,3,,5

Операторы GPSS GENERATE

Другие распределения – используются функции типовых распределений вероятностей: GENERATE Exponential(1,0,10) 1 – номер генератора случайных чисел; 0 – смещение; 10 – среднее значение.

GENERATE Normal(1,10,3) 1 – номер генератора случайных чисел; 10 – среднее значение; 3 – стандартное отклонение.

Операторы GPSS TERMINATE

Вывод транзактов из модели – блок TERMINATE TERMINATE [A] A – величина уменьшения счетчика завершения.

Работает вместе с блоком START, который задает величину счетчика транзактов. Блок TERMINATE уменьшает счетчик транзактов на величину A.

Операторы GPSS – одноканальное устр-во

• Такое устройство может обслуживать только одно требование; • Требование обслуживается с определенной задержкой.

Устройства могут иметь имена – числовые или символические.

Занять устройство.

SEIZE A A – имя занимаемого устройства.

Транзакт не может занять устройство, если оно обслуживает другой транзакт. Команда выполнится, когда устройство будет освобождено.

Освободить устройство.

RELEAZE A A – имя освобождаемого устройства.

Операторы GPSS – задержка по времени

Задержка продвижения транзакта – блок ADVANCE.

ADVANCE A,B A – среднее время задержки на обслуживание; В – половина поля допуска распределенной случайной величины.

равномерно Классическая последовательность блоков: SEIZE – ADVANCE - RELEASE

Операторы GPSS – захват устройства

При захвате устройства происходит приоритетное начало обслуживания определенного транзакта или прерывание предыдущих операций - блок PREEMPT.

PREEMPT A A – имя устройства.

Освобождение устройства осуществляет блок

RETURN

RETURN A A – имя устройства.

Пример 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 – запуск модели

• • • • • • • Стандартный отчет содержит следующую информацию: Начальное (START TIME) и конечное (END TIME) модельное время; Число блоков модели (BLOCKS); Число устройств (FACILITIES и STORAGES); Информация о именах; Информация о канале обслуживания; Список текущих событий; Список будущих событий.

Пример 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, D A – аргумент, который будет табулироваться; B – верхний предел первого интервала; C – ширина интервала; D – число интервалов.

• Собственно запись в таблицу: TABULATE A A – имя таблицы.

Пример – добавление очереди

*LINE-LOC OPERATION A,B,C,D,E,F,G COMMENTARY

Tab_Q TABLE QX$QU,10,10,20 GENERATE 8,5 QUEUE QU SEIZE Master DEPART QU

; генерация прихода клиента ; клиент встает в очередь ; проверка занятости мастера ; начало обслуживания

TABULATE Tab_Q ADVANCE 15,8 RELEASE Master TERMINATE 1 START 100

; табулирование параметра ; обслуживание клиентов ; освобождение парикмахера ; уход клиента ; запуск модели для 100 клиентов

Пример – просмотр таблицы

Пример – просмотр таблицы

Многоканальные устройства

• Многоканальное устройство управляется следующим образом: • Задается устройство и его емкость: Имя STORAGE A A – имя многоканального устройства; Занятие канала на обслуживание: • 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 парикмахера

Masters STORAGE 3 QUEUE QU ; 3 мастера Tab_Q TABLE QX$QU,2,2,10 GENERATE 8,5 ENTER Masters DEPART QU TABULATE Tab_Q ADVANCE 20,8 LEAVE Masters TERMINATE 1 START 100

; запуск модели для 100 клиентов

Параметры транзактов

• • • • • Транзакты могут иметь параметры, значения которых можно им назначать: Pj – значение j-ого параметра активного транзакта; XN1 – номер активного транзакта; PR – приоритет активного транзакта; MPj – время прохождения некоторого участка; M1 – время пребывания в модели активного транзакта.

Назначить значение параметра: ASSIGN A,B A – номер модифицируемого параметра; B – величина параметра.

Модификация потоков транзактов

Переход транзакта к любому блоку обеспечивает блок: TRANSFER [A], [B], [C], [D] A – способ перехода.

Остальные параметры зависят от параметра A.

Например, безусловный переход: TRANSFER ,B B – метка блока, куда должен перейти транзакт.

Вероятностный переход: TRANSFER A,[B],C A – вероятность передачи транзакта в блок С (в долях тысячи); 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)

Tab_Q Tab_T TABLE QX$QU,5,5,10 TABLE P1,1,1,3 GENERATE 8,5 QUEUE QU ; генерация прихода клиента ; клиент встает в очередь MARK 2 TEST GE P2,180,ServeAll ; в P2 сохраняется модельное время ;если время до 12, то ;работают 3 парикмахера TEST LE P2,270,ServeAll TEST GE P2,210,Serve1 TEST GE P2,240,Serve2 ;если время после 13.30, то ;работают 3 парикмахера ; если после 12 до 12.30 – ;обедает парикмахер 1 ; если после 12.30 до 13.00 – ; обедает парикмахер 2

Пример – обеденные перерывы (версия 1)

TRANSFER BOTH,Mast1,Mast2 Serve1 TRANSFER BOTH,Mast2,Mast3 Serve2 ServeAll TRANSFER BOTH,Mast1,Mast3 TRANSFER ALL,Mast1,Mast3,8 Mast1 SEIZE Master1 ; клиент пытается попасть к ;парикмахеру 1 DEPART QU TABULATE Tab_Q ASSIGN 1,1 TABULATE Tab_T ADVANCE 15,8

Пример – обеденные перерывы (версия 1)

RELEASE Master1 TRANSFER ,ExitTran .

; аналогично задаются группы блоков Master2 и Master3 .

.

ExitTran TERMINATE 1 START 100 ; уход клиента ; запуск модели для 100 клиентов

Пример – обеденные перерывы (версия 1)

RELEASE Master1 TRANSFER ,ExitTran .

; аналогично задаются группы блоков Master2 и Master3 .

.

ExitTran TERMINATE 1 START 100 ; уход клиента ; запуск модели для 100 клиентов

Обслуживание заявок

Пример – обеденные перерывы (версия 2)

Версия 1 показывает, что в заданные временные интервалы к отдельным парикмахерам не направляются клиенты. Версия 2 предполагает, что обеденный перерыв – это внеочередной клиент, который более приоритетен по сравнению с другими клиентами. Начало версии 2 похоже (без проверок на время) Tab_Q Tab_T TABLE QX$QU,5,5,10 TABLE P1,1,1,3 Tab_D TABLE P3,240,2,100 GENERATE 8,5 ; генерация прихода клиента QUEUE QU ServeAll ; клиент встает в очередь TRANSFER ALL Mast1,Mast3,8

Пример – обеденные перерывы (версия 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)

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)

TERMINATE 1 TRANSFER ,EX loop3 ADVANCE 5 TRANSFER ,Dinner3 EX START 103 ; запуск модели для 100 клиентов

Задания

В качестве усложнения модели можно предложить следующие: 1. Предусмотреть приход клиентов для получения различных услуг (из заданного списка) (не все мастера могут предоставить каждую услугу); 2. Согласно квалификации мастеров и оказанным услугам рассчитать стоимость оказания услуг.