Изменение маршрута движения транзактов
Блок TRANSFER(передавать) предназначен для передачи входящего в него транзакта в другой блок модели. Он имеет формат:
TRANSFER [A],[B],[C],[D]
Операнды В и С являются метками блоков, куда направляется транзакт. Операнд А задаёт режим выбора блока, к которому направляется транзакт, существует 9 режимов:
§ , – безусловный режим;
§ . – статистический, выбор одного из двух с заданной вероятностью;
§ BOTH – последовательный выбор одного из двух блоков;
§ ALL – последовательный выбор одного из нескольких блоков;
§ PICK – выбор одного из нескольких случайным образом;
§ FN – функциональный режим, выбор по заданной функции;
§ Р – параметрический;
§ SBR – подпрограммный;
§ SIM – одновременный.
В режиме безусловного перехода операнд А пуст и все транзакты отправляются к блоку, указанному в блоке В. Например,
TRANSFER ,MET1
В статистическом режиме значение операнда А, записываемое после точки как трёхзначное десятичное число, показывает вероятность (долю) транзактов, которые должны быть отправлены в блок с меткой С, остальные в блок В или к следующему блоку, если операнд Вопущен. Примеры:
TRANSFER .7,MET1,MET2;70 % идёт на метку MET2, 30 % – на MET1
TRANSFER .4,,MET2 ;40 % идёт на метку, 60 % – в блок ниже
Если блоки с меткой MET1, MET2заняты, то транзакт остаётся в блоке TRANSFER и повторяет попытку перехода в каждый следующий момент модельного времени.
В режиме BOTH транзакт проверяет два пути: сначала возможность войти в блок с меткой В, затем в С, если оба заняты, то ждёт.
В режиме ALL транзакт проверяет возможность войти в любой блок, начиная с блока, указанного в операнде В, и заканчивая блоком, указанным С. Операнд В определяет шаг изменения номера проверяемого блока.
В функциональном режиме вычисляется значение функции, имя которой указано в операнде В, берётся целая часть, полученное число складывается с С (может быть 0) и в блок с этим номером направляется транзакт.
Общая постановка задачи
Перед выполнением лабораторной работы изучите теоретическую часть, последовательно выполните все указанные в примере действия, выполните индивидуальные задания, оформите отчет, в соответствии с приведенными требованиями. Отчет должен содержать:
· титульный лист, вид которого прилагается.
· название лабораторной работы;
· цель лабораторной работы;
· формулировку заданий;
· каткое описание хода выполнения заданий;
· результаты выполнения индивидуальных заданий;
· выводы по работе.
Список индивидуальных заданий
Список индивидуальных заданий приведен в приложении 1.
Пример выполнения работы
Рассмотрим процесс разработки модели в GPSS. на конкретном примере:
В парикмахерской два зала: причёсок и маникюрный. В маникюрном зале один мастер, в зале причёсок 2 мастера. Около 60 % приходящих клиентов пришли сделать причёску, из них 25 % затем хотят сделать маникюр. Если очередь к мастерам более одного человека, то клиент уходит. Поток клиентов простейший со средним значением 10 мин , время обслуживания в маникюрном зале 30 ± 10 мин, в зале причёски 60 ± 10 мин
Построить модель, имитирующую работу салона в течение 12-ти часов. Определить коэффициенты загрузки мастеров и количество ушедших клиентов.
Для моделирования:
Установите свободно распространяемую студенческую версию GPSS World (как описано в теории). После установки GPSS/World в списке программ Пуск/Все программы/ GPSS World Student Version выберите GPSS World Student Version.
В результате откроется среда моделирования GPSS/World (рисунок 1).
Рисунок 1- Среда моделирования GPSS/World
Далее необходимо выбрать пункт меню File/New и в открывшемся диалоговом окне Новый документ – Создать Model. В результате будет открыто окно Untitled Model1, в котором необходимо набрать текст программы (рисунок 2). При наборе блоков удобно пользоваться окном Insert GPSS blocks (вставить блок), которое вызывается в меню Edit/Insert GPSS blocks (рисунок 3).Выбрав в нём нужный блок, заполняем последовательно поля ввода для каждого операнда. Здесь удобно вводить метки и комментарии.
SIMULATE
PRICH STORAGE 2 ;заводим 2 мастера причёсок
GENERATE (exponential(1,0,10)) ;генерируем клиентов
TRANSFER .6,Z_MAN,Z_PRICH ;60 % на причёску, 40 % – маникюр
Z_PRICH TEST L Q$OCHPRICH,2,NEOBS;длина очереди меньше двух?
QUEUE OCHPRICH ;становимся в очередь
ENTER PRICH ;занимаем мастера причёсок
DEPART OCHPRICH ;покидаем очередь
ADVANCE 60,10 ;обслуживаемся
LEAVE PRICH ;освобождаем мастера
TRANSFER .75,,VYIHOD ;75 % уходят, 25 % пошли на маникюр, ниже
Z_MAN TEST L Q$OCHMAN,2,NEOBS;проверяем очередь на маникюр
QUEUE OCHMAN
SEIZE MAN ;занимаем мастера по маникюру
DEPART OCHMAN
ADVANCE 30,10
RELEASE MAN ;освобождаем мастера
VYIHOD TERMINATE ;все обслуженные клиенты уходят
NEOBS TERMINATE ;здесь необслуженные клиенты
GENERATE 720 ;фиктивный блок времени
TERMINATE 1
START 1
Для моделирования простейшего потока воспользуемся встроенной библиотечной функцией exponential(a,b,c), задающей показательный закон распределения. Аргумент а означает номер генератора случайных чисел (любое число от 0 до 127), в определяет сдвиг, с – среднее значение. Для того чтобы различать клиентов, ушедших из-за очереди более 1 человека, введём два TERMINATE с разными метками. Для проверки очереди используем блок TEST и СЧА длины очереди Q$имя.
Рисунок 2- Окно с программой
Рисунок 3 - Окно Insert GPSS blocks
Файл с программой нужно сохранить в своей специально созданной для этой работы папке в файле с расширением .gps (пункты меню File/Save; File/Save As).
Для запуска программы на выполнение необходимо выбрать пункт меню Command/Create Simulation.
В среде моделирования различают объекты:
· модель – разрабатывается на языке GPSS, состоит из блоков, создаётся при помощи встроенного текстового редактора;
· процесс моделирования – результат трансляции модели, получаемый после командыCreate Simulation,при наличии ошибок транслятор выдаёт список сообщений об ошибках в окне JOURNAL;
· отчёт по моделированию – автоматически создаваемый файл, содержащий статистическую информацию об объектах, накопленную в процессе моделирования.