Доброй пятницы уважаемые читатели Хабра.
В данном посте я предлагаю вам бегло ознакомиться с возможностью создания имитационной модели процессов в программе GPSS-WORLD. Данный пост нельзя считать полноценным туториалом, но я поделюсь с Вами теми крупицами, что знаю и вполне возможно что уже через пол часа после прочтения статьи Вы проявив фантазию создадите свою собственную имитационную модель. Как говориться в народе: «Тяжело в учении легко в бою».
И пусть местами, данный «туториал» придерживается принципа: «битый не битого везет», но я всё же донесу до вас те знания, которые у меня есть, ну а вы уж сами вольны решать, стоить ли мне доверять или лучше проверять. В любом случае я буду рад аудиту кода от знатоков GPSS-WORLD. Все материалы статьи размещены на GItHub
Изучать самые азы будем сразу на живых примерах — доступных, понятных и близких сердцу многим сотрудникам проводящим свои законные 8 часов в офисах.
От конкретики перейдем к лирике, пятница традиционно располагает задаваться безумными вопросами, и в этот раз мы с моим коллегой DrZugrik задались вопросом: «Сколько нужно сотрудников тех поддержки, чтобы рассказать, как вкрутить лампочку?».
gpss 01 simple
За подробностями сего мысленного эксперимента прошу под кат.
Написание этого мини туториала вместе с разработкой моделей заняло 6 часов чистого времени.
буду признателен если статья доберется до потенциально заинтересованных читателей.
Во избежания вызова негативных эмоций первоначальная картинка заменена на кота с трубкой и спрятана под спойлер.
первоначальная иллюстрация
Для начала нам понадобиться сам GPSS-World.
Примеры решений в системе GPSS World
В этом разделе вы найдете бесплатные примеры решений задач и лабораторных работ, выполненные с применением языка GPSS и системы имитационного моделирования GPSS World Student. Используйте данные примеры или закажите свою работу профессионалам.
Лучшее спасибо — порекомендовать эту страницу
Решенные с помощью GPSS задачи онлайн
Лабораторная работа. Об обжиге детали в печи
Изготовление деталей определенного вида, включает длительный процесс сборки, который заканчивается коротким периодом обжига в печи. Поскольку эксплуатация печи обходится дорого, несколько сборщиков используют одну печь, в которой одновременно можно обжигать только одну деталь. Сборщик не может начать новую сборку, пока не вынет из печи предыдущую деталь. Таким образом, сборщик работает в следующем режиме:
1) собирает деталь ( собирает следующую деталь),
2) ожидает возможность использования печи, по принципу FIFO,
3) использовать печь для обжига детали.
4) возвращается к п.1, т.е. собирает следующую деталь.
Время, необходимое на выполнение различных операций:
Язык моделирования GPSS основные понятия и объекты. Имитационное моделирование лекция 2
1) сборка — ,
2) обжиг —
Необходимо построить GPSS-модель описанного процесса в течении 40 часов модельного времени.
Предполагается, что в течении рабочего дня нет перерывов. Рабочими днями являются все дни, без выходных. Построение модели в данном случае имеет 2 ограничивающих условия на пропускную способность системы:
1) наличие одной печи и некоторое фиксированное количество сборщиков, работающих в системе Для моделирования печи необходимо использовать понятие «устройств», а также отождествлять сборщиков с транзактами. Тогда можно считать, что сборщики циркулируют в системе периодически, осуществляя сборку и обжиг. Как видно из постановки задачи, модель представляет собой замкнутую СМО с одним устройством обслуживания.
В реальной системе сборщик после того, как вынимает из печи обожженную деталь, возвращается и начинает новый этап сборки. В модели транзакт после того, как завершает использование устройства( печь), должен быть перемещен с помощью блока «TRANSFER» в блок следующей сборки.
Для ограничения общего количества транзактов, циркулирующих в модели, необходимо использовать операнд «D» блока «GENERATE». «GENERATE» A, B,C, D,E, F, G, H, I (генерировать транзакты):
D – число выработанных транзактов, по умолчанию -бесконечность;
E – приоритет( по умолчанию -0).
В качестве единицы модельного времени принять минуту.
Элементами GPSS будут 1 сегмент: транзакты-сборщики, во втором – таймер.
Для вычисления прибыли, при заданных числе сборщиков, необходимо знать сколько готовых деталей они сделают на протяжении моделируемого периода. Это значение дает количество выходов из печи, т.к. процессе моделирования нас интересует эта величина. Найти величину прибыли, при числе сборщиков = 4 и при других значениях.
Вопросы:
1) определите максимальное число сборщиков, т.е. такое количество, которое дает наибольшую прибыль, при моделировании в течении 40 часов модельного времени;
2) в связи с понижением напряжения сети, время обжига возросло и стало = . Построить графики очереди к печи обжига при числе сборщиков = 3, 4, 5.
Лабораторная работа по имитационному моделированию. Кассовый зал
В круглосуточный зал кассового обслуживания приходят покупатели за небольшой покупкой каждые 14±5 мин, за средней – каждые 47±14 мин, за большой – каждые 76±29 мин. Покупатель уходит, если видит в очереди больше 2 человек для маленькой покупки, больше 3 – для средней покупки, больше 5 – для большой покупки.
Среднее время выбора маленькой покупки 4±2 мин, средней – 21±8 мин, большой – 49±13 мин. Если после выбора покупки клиент видит в очереди больше 2 человек для маленькой покупки, больше 4 – для средней, больше 7 – для большой, то он уходит. Среднее время обслуживания маленькой покупки 5±2 мин, средней – 13±7 мин, большой – 29±11 мин. Рассчитать для 1 дня и для 1 недели.
Лабораторная работа. МОДЕЛИРОВАНИЕ ОДНОКАНАЛЬНЫХ СМО
Цель работы: имитационное моделирование одноканальной системы массового обслуживания (СМО).
Содержание работы:
1. Изучение объекта моделирования (одноканальной СМО).
2. Предварительное аналитическое исследование СМО с применением Ms Excel.
3. Разработка и отладка имитационной модели СМО на GPSS World.
4. Выполнение имитационных экспериментов и анализ результатов.
Тип СМО $Е^4|R|1$, $M(tau) = 10$.
Источник: www.matburo.ru
4.11. Примеры построения gpss-моделей
Интервалы прихода клиентов в парикмахерскую с одним креслом распределены равномерно на интервале 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 мин
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
Категория запроса
Интервал времени прихода механиков, с
Время обслуживания, с
Порядок обслуживания механиков кладовщиком такой: запросы первой категории обслуживаются только в том случае, когда в очереди нет ни одного запроса второй категории. Внутри одной категории дисциплина обслуживания – «первым пришел – первым обслужился». Необходимо создать модель работы кладовой, моделирование выполнять в течение восьмичасового рабочего дня.
Дисциплина обслуживания «первый пришел – первый обслужился» для двух категорий запросов с соответствующим приоритетом изображена на рис. 4.1.
Построение модели
Эта система очень похожа на систему из примера 4.12. Есть два различных типа заявок, поступающих на обслуживание к одному устройству. Различаются распределения интервалов приходов и времени обслуживания для этих типов заявок. Трудность заключается в том, что один из типов имеет преимущество в обслуживании. Построить модель можно, используя тот же подход, что и в примере 4.12.
Но при этом необходимо использовать средство задания заявкам различных приоритетов.
Итак, запросы первой категории будем моделировать одним сегментом, а запросы второй категории – другим. Разные относительные приоритеты задаются путем использования для операнда Е блока GЕNЕRАТЕ запросов второй категории большего значения, чем для запросов первой категории.
Таблица 4.15 (Таблица определений)
Элементы GPSS
Интерпретация
В первом сегменте модели
Во втором сегменте модели
В третьем сегменте модели
Механики, делающие запрос первой категории
Механики, делающие запрос второй категории
Очереди, используемые для сбора статистики об ожидании механиков различных категорий
Единица модельного времени – 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
Операция
Необходимое время, мин
Необходимо построить на GPSS модель описанного процесса. Определить оптимальное число сборщиков, использующих одну печь, т.е. такое количество, которое дает наибольшую прибыль при моделировании в течение 40 часов модельного времени. Предполагается, что в течение рабочего дня нет перерывов, а рабочими днями являются все дни (без выходных).
Построение модели
В данном случае есть два ограничивающих условия, влияющих на пропускную способность системы: одна печь и некоторое фиксированное количество сборщиков, работающих в системе.
Естественно для моделирования печи использовать понятие «устройство», также естественно отождествлять сборщиков с транзактами. Тогда можно считать, что сборщики «циркулируют» в системе, периодически осуществляя сборку и обжиг. Аналогично и транзакты должны циркулировать в GPSS-модели системы. Как видно из постановки задачи, модель представляет собой замкнутую СМО с одним устройством обслуживания.
В реальной системе, после того, как сборщик вынимает из печи обожженную деталь, он возвращается и начинает новый этап сборки. В модели после того, как транзакт завершает использование устройства, он должен быть перемещен с помощью блока TRANSFER в блок следующей сборки. Для ограничения общего количества транзактов, циркулирующих в модели, необходимо использовать операнд D блока GЕNЕRАТЕ.
Для вычисления прибыли при заданном числе сборщиков необходимо знать, сколько готовых деталей они сделают на протяжении моделируемого периода. Это значение дает количество выходов из печи, т.е. в процессе моделирования нас интересует именно эта величина.
Таблица 4.17 (Таблица определений)
Элементы GPSS
Интерпретация
В 1 сегменте модели
Во 2 сегменте модели
Единица модельного времени – 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
Значение
Тип корабля
Источник: studfile.net