ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2019
Просмотров: 542
Скачиваний: 4
Лекция №1. (15.02.2018)
GPSS World
Язык моделирования GPSS ориентирован на моделирование дискретных систем. Моделируемая система может рассматриваться как галоп взаимодействующих сущностей каждая из которых в общем случае независима от других. Наиболее подходящей областью использования GPSS является моделирование систем массового обслуживания (СМО). В любой системе массового обслуживания предлагается, что имеется некоторый входной поток сущностей, именуемых требования и для этого потока задаются временные характеристики они показывают интервалы времени между поступлением в систему.
Возникающие в системе требования должны пройти некоторую процедуру обработки. Обработкой занимается некоторое фиксированное количество приборов. Они могут располагаться параллельно, а могут последовательно. Поскольку обслуживание каждого требования требует некоторого времени, то из приходящих требований может создаваться очередь ожидания обслуживания.
Цель
моделирования систем массового
обслуживания состоит в получении
статистических характеристик, касающихся
возникающих очередей. Основная цель
этих характеристик — это среднее
значение. Обычно это средне время
ожидания в очереди и среднее количество
требований.
В языке GPSS выделяют два
вида сущностей:
-
Транзакты. Являются аналогами требований систем массового обслуживания.
-
Приборы. Соответствуют обслуживающим устройствам.
В ходе работы модели транзакты перемещаются по заданному маршруту от прибора к прибору, задерживаясь на обслуживании прибора, либо в очереди перед ним. Когда транзакт подходит к свободному прибору он "захватывает" его, то есть делает недоступным для других транзактов. Обычно прибор некоторое время обслуживает транзакт, после чего освобождается, и транзакт продолжает своё движение по маршруту, а прибор освобождается и может обслуживать следующий транзакт. Если транзакты подошли к "захваченному" прибору, то они встают в очередь ожидания, а затем обслуживаются в соответствии с определенными правилами. Эти правила определяют дисциплину очереди.
Дисциплина в очереди
FIFO
LIFO - последний пришедший обслуживается первым (очередь в стек).
Кроме этого возможны очереди с приоритетом, в этой ситуации каждому транзакту приписывается число - приоритет, и транзакты с более высоким приоритетом обслуживаются раньше транзактов с низким приоритетом. Временные приоритеты, как между моментами появления требований, так и время обслуживания транзактов обычно бывают случайными.
В
языке GPSS World
имеется большое количество разнообразных
стандартных законов получения случайных
чисел. Кроме того, возможно создание
своих законов получения случайных
значений. Чаще всего используются два
случайных закона: равномерное распределение
на некотором заданном интервале и
экспоненциальное распределение.
Модель
на языке GPSS визуально выглядит как набор
блоков, соединенных между собой линиями.
Каждое действие, описываемое в моделях,
имеет свой вид блока. Коме того, модель
одной системы может быть набором
сегментов, отражающих параллельно
проникающие процессы. Синхронизация
достигается за счёт использования в
различных сегментах одних и тех же
приборов.
Блоки GPSS
Каждый блок имеет имя, используемое при запись-модели и набор параметров. Часть параметров имеют значения по умолчанию и при написании могут быть опущены, однако занятые, разделяющие их значения должны быть записаны.
Параметр GENERATE
Параметры
A и B определяют закон распределения
времени между поступлением двух
транзактов, если A и B числа, то закон
распределения равномерный:
;
;

Параметр C определяет первого транзакта в модели. Параметр D определяет количество транзактов, которое может породить данный блок. По умолчанию D равно бесконечности. Параметр E определяет приоритет обслуживания, создаваемых транзактов (чем больше значение, трем выше приоритет). По умолчанию значение E равно 0 (самый низкий приоритет).
Параметр TERMINATE. A равно нулю.
При уничтожении транзактов значение специального счетчика завершения уменьшается на величину параметра A. Как только этот счетчик перестанет быть прекращается работа модели и выдается отчет о результатах моделирования. Любой сегмент модели на языке GPSS начинается блоком GENERATE и завершается блоком TERMINATE. Счетчик завершения записывается после самого последнего блока модели, имеет вид START A.
Лекция №2. (26.02.2018)
На языке GPSS имеется возможность использовать разнообразные законы распределения случайных величин. В GPSS World имеется 24 стандартные функции законов распределения. Для того, чтобы их использовать, например, в блоке GENERATE, их записывают в качестве параметра, взяв при этом в круглые скобки. Наиболее часто используется экспоненциальный закон распределения. Используемая функция имеет вид: EXPONENTIAL (A, B, C). Параметр A указывает датчик параметров чисел, используемого при генерации случайных значений. Параметр C задаёт среднее значение получаемых случайных значений. Это же значение определяет дисперсию (степень размаха) случайных значений. Параметр B задаёт сдвиг значений, то есть в итоге средне значение генерируемых случайных чисел будет равняется B + C.
В блоке GENERATE мы можем записать имя этой функции с конкретными аргументами, взятыми в круглые скобки, задав его сразу после имени блока. Если же мы запишет имя функции в старые параметры, а первым записываем некоторое число, то результатом будет.
Любой прибор задан своим уникальным именем и «общение» транзактов с приборами осуществляется двумя способами:
-
Блок захвата приборов SEIZE A. Суть захвата прибора состоит в том, что прибор становится недоступен для всех последующих транзактов и они выстраиваются перед этим блоком в очередь.
-
Блок освобождения прибора RELEASE A. Параметр A – это имя прибора.
Замечание: время необходимое транзактам для того, чтобы пойти через блок SEIZE или RELEASE равно нулю.
Блок задержки ADVANCE. Параметры A и B имеют тот же смысл и значения по умолчанию, что и в блоке GENERATE. Когда транзакт подходит к блоку ADVANCE, он прекращает свое перемещение по модели на случайное время, заканчивается параметрами A и B. Если у нас в модели меняется несколько сегментов (начинающихся блоком GENERATE и заканчивающихся блоком TERMINATE), то взаимодействие между ними можно задать, используя приборы с одинаковыми именами, указанными в блоках SEIZE и RELEASE.
Пример:
Составить модель обслуживания посетителей одним парикмахером. Предлагается, что обслуживание одного посетителя занимает случайное время, распределённое равномерно от 10 до 16 минут. Время между приходом двух посетителей так же случайно и равно от 10 до 20 минут.
Решение начинается с блока GENERATE:
GENERATE 15, 5
SEIZE PAR
ADVANCE 13, 3
RELEASE PAR
TERMINATE
GENERATE 480
TERMINATE 1
START 1
Усложним модель:
Имеются мужчины и женщины. Время обслуживания мужчины от 10 до 16 минут, женщины – от 60 до 120 минут. Мужчины приходят через интервал от 10 до 20 минут, женщины – от 5 до 13.
Решение:
GENERATE 9, 4
SEIZE PAR
ADVANCE 90, 30
RELEASE PAR
TERMINATE
GENERATE 48
TERMINATE 1
START 1
Лекция №3. (12.03.2018)
Блоки сбора статистики
Блоки сбора статистики предназначены для получения сведений о вероятностных характеристиках пребывания транзактов на определенном участке модели. К этим характеристикам относятся максимальное количество транзактов, одновременно находящихся на заданном участке, общее количество транзактов, прошедших через заданный участок, средне количество транзактов, находящихся на этом участке одновременно, среднее время пребывания одного транзактов на этом участке и др.
Блок присоединения к сбору статистики – QUEUE A. A - название накопителя статистики. Когда транзакты проходит через блок QUEUE сверления о времени похода и о самом транзакте записываются в хранилище информации.
Бок выхода из сбора статистики – DEPART A. При проходе через этот блок в хранилище записываются момент времени и сверления о транзакте.
По завершении работы модели собранные сведения подвергаются статистической обработке и её результаты (перечисленные выше) выдаются в стандартном отчёте. Если в модели имеется несколько сегментов, то можно объединить сверления их этих сегментов в одном хранилище статистики.
Пример:
Составить модель работы парикмахера, к которому имеется подток посетителей, между приходим которых время распределено равномерно на интервале (10;16). Обслуживание одного посетителя занимает время, распределенное экспоненциально с параметром (средне время) – 12. Собрать сведения об очереди ожидания обслуживания посетителя парикмахером.
Решение:
GENERATE 13,3
QUEUE OCH
SEIZE PARM
DEPART OCH
ADVANCE (EXPONENTIAL (1,0,12)
RELEASE PARM
TERMINATE 1
START 97
Пример 2:
В парикмахерской имеется два мастера – для мужской и для женской стрижки. Экспоненциальное время – 20 минут. Женщины приходят от 10 до 40 минут, время обслуживания – 33 минуты. Собрать сведения сколько требуется мест в фае ожидания. Моделирование провести для 102-х посетителей.
Решение:
GENERATE 35,5
QUEUE OCH
SEIZE PARF
DEPART OCH
ADVANCE (EXPONENTIAL (3,0,33)
RELEASE PARF
TERMINATE 1
START 102
Пример 3:
В парикмахерской происходит покраска волос в три стадии:
-
Нанесение краски от 10 до 30 минут – U (10;30);
-
Ожидание, 20-40 минут – U (20;30);
-
Смыв, 5-9 минут – U (5;9);
Посетители приходят в интервале (20;40). Смоделировать поход 121-го посетителя.
Решение:
GENERATE 30, 10
QUEUE FOYE
SEIZE PAR
DEPART FOYE
ADVANCE 20, 10
RELEASE PAR
QUEUE FOYE
ADVANCE 30, 10
SEIZE PAR
QUEUE FOYE
ADVANCE 7, 2
RELEASE PAR
TERMINATE 1
START 121
Лекция №4. (26. 03. 2018)
Блок изменения маршрута транзактов TRANSFER A, B. Работа данного блока зависит от значения параметра A. Параметры B и C представляют собой метки блоков моделей. В тексте моделей метка помечается перед именем помеченного блока, отделяясь от него пробелом.
Модификация блока TRANSFER:
-
Безусловный переход транзакта
Такой блок организует, если параметр A
опущен. Параметр C не пишется: TRANSFER ,B.
Транзакт, попавший в такой блок тут же переходит на блок с пометкой, соответствующей параметру B.
Пример:
Имеется цех с двумя станками, которые требуют периодического обслуживания. Эти станки обслуживает один работник. На обслуживание одного станка требуется время, определяемое равномерно на интервале (10;16). Интервал времени в точках, в которых станок может работать автономно тоже (10;16). Считается, что в начале смены рабочий находится возле станка №1. Смоделировать работу цеха в течении 8-часоваго рабочего дня.
Решение:
GENERATE 0,0,0,1
SEIZE STANOK1
ADVANCE 13,3
RELEASE STANOK1
SEIZE STANOK2
ADVANCE 13,3
RELEASE STANOK2
TRANSFER POS1
GENERATE 480
TERMINATE 1
START 1
-
Блок статистического изменения маршрута
Данная модификация применяется тогда, когда транзакт должен случайным образом выбрать один из двух маршрутов. В этом случае параметр A записывается как положительное число, меньшее единицы.
При прохождении транзактом такого блока TRANSFER он с вероятностью P = A перейдёт на блок с меткой равной параметру B, а с вероятностью 1-A в блок с пометкой C. Если параметр B опущен, то по умолчанию это следующий блок модели.
Пример:
Приходящие в магазин покупатели с P = 0,3 идут в первый отдел, а с вероятностью 0,7 во второй. Составить модель такого магазина, если обслуживание в первом отделе длится случайное время (10;16), во втором отделе (15;25). А покупатели приходят так что время между их приходом подчиняется экспоненциальному закону распределения со средним значением 14. Промоделировать обслуживание 1000 покупателей.
Решение:
GENERATE (EXPONENTIAL (1,0,14)
TRANSFER .3,OTD1,OTD2
OTD1
SEIZE OTDEL1
DEPART OTDEL1
ADVANCE 13,3
RELEASE OTDEL1
OTD2
QUEUE OTDEL2
SEIZE OTDEL2
DEPART OTDEL2
ADVANCE 20,5
RELEASE OTDEL2
TERMINATE 1
START 1000
-
Блок общей очереди
Для данной модификации параметр A блока TRANSFER записывается в виде слова BOTH, затем два параметра B и C. TRANSFER BOTH,B,C. Он работает так, когда транзакт подходит к блоку с меткой равной параметру B. Если этот блок занят, то транзакт пытается перейти к блоку с меткой равный параметру C, если же оба блока заняты, то транзакт останавливается перед блоком TRANSFER в ожидании, когда какой-нибудь из блоков (B/C) освобождается.
Пример:
Имеется справочная телефонная служба. Клиент звонит на общий номер и первый из освободившихся операторов отвечает на звонок. Если оба оператора заняты, то клиент остаётся на линии ожидания освобождения оператора. Время между звонками клиентов подчиняется экспоненциальному закону распределения со средним значением 5 минут. Первый оператор обслуживает клиента в течении времени, распределенного экспоненциально со средним значением 7 минут, а второй – 8. Собрать сведенья о статистических характеристиках времени ожидания клиентами ответа оператора, промоделировать системы в течении 12-ти часовой рабочей смены.
Решение:
GENERATE (EXPONENTIAL (1,0,5))
QUEUE OCH
TRANSFER BOTH, OP1, OP2
OP1
DEPART OCH
ADVANCE (EXPONENTIAL (2,0,7))
RELEASE OPER1
OP2
SEIZE OPER2
DEPART OCH
ADVANCE (EXPONENTIAL (2,0,7))
RELEASE OPER2
TERMINATE 1
GENERATE 720
TERMINATE 1
START 1
Лекция №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)
Изменение приоритетов транзактов