Представление имитационной модели
Для представления имитационной модели выполните следующие действия:
1.1. Щелкните по пункту File главного меню системы. Появится выпадающее меню;
1.2. Щелкните по пункту New (Создать) выпадающего меню. Появится диалоговое Окно Новый документ;
1.3 выделите пункт Model и щелкните по кнопке ОК. Появится окно модели, в котором введите данную программу. Это показано на рис. 1.
Чтобы вызвать окно для представления имитационной модели в системе GPSSW, можно также нажать комбинацию клавиш Ctrl+Alt+S.
Создание имитационной модели процесса
Для создание имитационной модели выполнить следующие действия:
2.1. В главном меню GPSS наберите заголовок с именем GPSS-модели, который может быть представлен, например, в таком виде который может быть представлен, например, в таком виде:
;GPSS World - PEREGOV_PUNKT.GPS
***************************************
* Моделирование переговорного пункта *
***************************************
Программу работы переговорного пункта можно представить в виде трех секторов и последовательности нескольких операторов.(рис 1)
2.2. Щелкните по пункту Edit (Правка) главного меню системы. Появится выпадающее меню;
2.3. Щелкните по пункту Insert GPSS Blocks ... (Вставить блоки GPSS) вызывает диалоговое окно, в котором можно выбрать щелчком мыши нужный блок GPSS
В первом секторе указывается вместимость переговорного пункта. Это можно выполнить с помощью оператора STORAGE (Накопитель):
Punkt STORAGE 4
В этом же секторе используем оператор TABLE для формирования таблицы с информацией об использовании посетителями переговорного пункта:
Transit TABLE Ml,.5,1,3
В операторе TABLE в поле операнда А используется стандартный числовой атрибут Ml, который фиксирует время прохождения требования, находящегося в стадии обслуживания.
Во втором секторе будем моделировать поток посетителей и работу переговорного пункта.
Моделирование потока посетителей будем выполнять с помощью оператора GENERATE (Генерировать). В нашем примере он будет выглядеть так:
GENERATE 1.85,1
В поле операнда А указывается средний интервал времени между прибытием в переговорный пункт двух идущих один за другим посетителей (требований, транзактов). В нашем примере среднее время прибытия требований составляет 1,85 мин. В поле операнда В дано отклонение времени поступления посетителей от среднего. В нашем примере оно составляет 1 мин.
Посетитель, пришедший на переговорный пункт, сначала определяет количество посетителей переговорного пункта. Если их в пункте уже три, то пункт занят, и новый посетитель ожидает его освобождения. Это действие можно промоделировать с помощью оператора GATE SNF (Storage Not Full - Накопитель не полон):
Povtor GATE SNF Punkt,Zanyt
Если накопитель под символьным именем Punkt не полон, то посетитель входит в переговорный пункт. Это моделируется оператором ENTER (Войти):
ENTER Punkt
Далее посетитель встает в очередь, если она есть, для оформления телефонного переговора. Это можно промоделировать оператором QUEUE (Очередь), который только в совокупности с соответствующим оператором DEPART (Выйти) собирает статистическую информацию о работе моделируемой очереди. В нашем примере оператор QUEUE будет выглядеть так:
QUEUE Ocher_kassir
В поле операнда А дается символьное или числовое имя очереди. Таких очередей в системе может быть очень много. В нашей задаче очереди дано имя Ocher_kassir. Желательно, чтобы присваиваемое имя отражало суть описываемого элемента системы. Посетитель может выйти из очереди только тогда, когда освободится кассир (канал обслуживания). Для этого вводится оператор SEIZE (Занять), который определяет занятость канала обслуживания, и при его освобождении очередное требование выходит из очереди и идет в канал на обслуживание. Это может выглядеть так:
SEIZE Kassir
В поле операнда А дается символьное или числовое имя канала обслуживания. Таких каналов обслуживания в системе может быть также много. В нашей задаче каналу дано имя Kassir. Желательно, чтобы присваиваемое имя отражало суть описываемого элемента системы.
Выход покупателя из очереди в кассу фиксируется оператором DEPART с соответствующим названием очереди. В нашем примере это будет выглядеть так:
DEPART Ocher_kassir
Далее должно быть промоделировано время оплаты переговора. Это время в нашем примере составляет 1,5±0,4 мин. Для моделирования этого процесса используется оператор ADVANCE (Задержать), который в нашей задаче будет выглядеть так:
ADVANCE 1.5,0.4
После обслуживания кассиром посетитель идет к телефону для ведения переговоров. Однако перед этим системе должно быть послано сообщение об освобождении канала обслуживания (кассира). Это делается с помощью оператора RELEASE (Освободить), который в нашей задаче записывается так:
RELEASE Kassir
Следует особо подчеркнуть, что парные операторы QUEUE и DEPART для каждой очереди должны иметь одно и то же, но свое уникальное имя. Это же относится и к операторам SEIZE и RELEASE.
После обслуживания в кассе посетитель направляется к телефонному аппарату. Это может быть промоделировано оператором ADVANCE:
ADVANCE 4.4,1.35
После проведения переговора посетитель (требование) освобождает телефонный аппарат (покидает систему). Это действие может быть представлено оператором LEAVE (Оставить):
LEAVE Punkt
После этого посетитель покидает систему - переговорный пункт. Это действие может быть промоделировано оператором TERMINATE:
TERMINATE
В третьем секторе определяется время моделирования системы. Этот процесс может быть представлен такой совокупностью операторов:
GENERATE 480
TERMINATE l
START 1
Первый оператор - GENERATE - в третьем секторе определяет время моделирования системы - 480 мин. Второй - TERMINATE - определяет уменьшение общего времени моделирования на 1 мин. Завершающим оператором в нашей задаче является управляющая команда START, позволяющая начать моделирование.
.
Рис.1. Окно имитационной модели переговорного пункта.