Технология GPSS Транзактно-ориентированное моделирование.

Презентация:



Advertisements
Похожие презентации
Лекция 16 Основы моделирования систем на языке GPSS.
Advertisements

Использование пакета Microsoft Office Посредством написания макросов для Excel.
Язык моделирования GPSS Дисциплина «Имитационное моделирование экономических процессов» Специальность « Прикладная информатика (в экономике)»
Тема 7. Язык моделирования GPSS Дисциплина «Имитационное моделирование экономических процессов» Специальность « Прикладная информатика (в экономике)»
1 Лекция 4 Основы моделирования в системе GPSS Word.
СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ (СМО). СМО – это случайный процесс с дискретными состояниями и непрерывным временем 4 основных элемента: Входящий поток.
С ИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ понятие и структура СМО классификация СМО основные характеристики работы СМО имитационное моделирование в исследовании.
В общем виде вероятностный ( стохастический ) автомат ( англ. probabilistic automat) можно определить как дискретный потактный преобразователь информации.
Моделирование технических систем. Системы массового обслуживания.
1 Лекция 14 Моделирование в системе GPSS Word. 2 Вопросы лекции 1. Модель системы М/М/1 с отказами 2. Модель системы М/М/2 с отказами 3. Модель системы.
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
1 1. Понятие системы Система (греч. «составленное из частей», «соединение», от «соединяю, составляю») объективное единство закономерно связанных друг с.
Обнинский Институт Атомной Энергетики. МОДЕЛИРОВАНИЕИНФОРМАЦИОННЫХСИСТЕМ Гулина Ольга Михайловна Сopyright © 2001 by Nataly Pashkova.
Описание возможностей системы имитационного моделирования Arena 9.0.
Понятие оператора и программы 11 класс. Программирование.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Арбитры в мультипроцессорных системах. Арбитры Используются для разрешения конфликтных ситуаций на аппаратном уровне Арбитры принимают от процессоров.
Хранение таблиц По строкам По столбцам Строки нескольких таблиц группируются по общему атрибуту.
1 Лекция 2 Принципы статистического имитационного моделирования.
Транксрипт:

Технология 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 – запуск модели

Стандартный отчет содержит следующую информацию: Начальное (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; 3 мастера Tab_Q TABLE QX$QU,2,2,10 GENERATE 8,5 QUEUE QU 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 TABLE QX$QU,5,5,10 Tab_T TABLE P1,1,1,3 GENERATE 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 до – ;обедает парикмахер 1 TEST GE P2,240,Serve2 ; если после до – ; обедает парикмахер 2

Пример – обеденные перерывы (версия 1) TRANSFER BOTH,Mast1,Mast2 Serve1 TRANSFER BOTH,Mast2,Mast3 Serve2 TRANSFER BOTH,Mast1,Mast3 ServeAll 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 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) 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. Согласно квалификации мастеров и оказанным услугам рассчитать стоимость оказания услуг.