Имитационное моделирование СМО, реализованные на базе общецелевой системы имитационного моделирования GPSSW
Аналитические модели были получены лишь для немногих СМО, для остальных систем они не были получены. Наличие такой проблемы мотивирует использование для определения характеристик СМО имитационного моделирования.
Имитационная модель представляется в виде программы, состоящей из набора операторов (блоков), каждый из которых записывается в отдельной строке. Операторы имеют структуру, состоящую следующих полей:
- поле номера оператора (не обязательное для заполнения),
- поле метки оператора (обязательно только для некоторых операторов),
- поле имени оператора,
- поле переменных, включает от 1 до 8-ми подполей, разделенных запятыми,
- поле комментариев (не обязательное для заполнения).
Поля отделяются друг от друга пробелами.
С помощью оператором в имитационной модели реализуются объекты большинства других категорий и типов.
В имитационной программе объекты располагаются, как правило, в порядке их использования в модели.
Порядок прохождения требованиями блоков: от первого блока, где они были сгенерированы, последовательно до последнего, где они будут уничтожены, если не задан иной порядок прохождения блоков.
Для тех же самых СМО, для которых были приведены аналитические модели, рассмотрим имитационные модели, представленные на языке имитационного моделирования GPSS и реализованные в одноименной программной системе.
n-канальная разомкнутая СМО с ограниченной очередью на обслуживание требований.
Создание имитационной модели на языке GPSS
В имитационной программе используются следующие объекты:
Накопитель с ограниченной емкостью требований, который реализуется с помощью следующего набора операторов:
STORAGE; задает емкость s_ накопителя с именем nakopitel
ENTER; поступившее в этот блок требование, занимает одну единицу емкости (значение задано по умолчанию) накопителя с именем nakopitel
LEAVE; поступившее в этот блок требование, освобождает одну единицу емкости накопителя с именем nakopitel
Источник заявок (генератор), который реализуется оператором
GENERATE (Exponential(1,0,tз)); имитирует поступление требований в систему через интервалы времени, распределенные по экспоненциальному закону со средним значением времени tз,
Объект статической категории – очередь, который имитируется с помощью набора операторов
QUEUE otchered; при поступлении требования в этот блок длина очереди с именем otchered увеличивается на 1 (значение по умолчанию).
DEPART otchered; при поступлении требования в этот блок длина очереди с именем otchered уменьшается на 1 (значение по умолчанию).
Объект аппаратной категории – одноканальное устройство, которое имитируется с помощью набора операторов
SEIZE stanok 1; имитирует поступление требования на канал обслуживания с именем stanok 1.
ADVANCE (Exponential(1,0,tоб)); имитирует временную задержку требования на обслуживание, распределенную по экспоненциальному закону со средним значением времени tоб.
RELEASE stanok 1; имитирует освобождение канала обслуживания с именем stanok 1 требованием.
Если система содержит n каналов, то необходимо добавить в программу n таких фрагментов.
Маршруты требований в системе
TRANSFER all, stanok 1, stanok n,5; задает ряд по которому определяется последовательность прохождения блоков, начиная с блока с меткой stanok 1, заканчивая блоком с меткой , stanok n с шагом 5 блоков.
Во втором – в безусловном режиме перехода.
TRANSFER, term; требование поступившее на этот блок направляется к блоку с меткой term.
Если накопитель требований заполнен не полностью, то требование направляется в него (блок ENTER). Если накопитель полностью заполнен, то требование должно направлять на выход из системы (блок TERMINATE). Таким образом, необходимо осуществить переход требования по условию, который реализуется с помощью оператора TEST.
TEST NE S$nakopitel,s_,term ;сравнивает текущее содержимое накопителя с его емкостью s_, если они не равны (символ NE) то требование направляется к следующему по порядку блоку, в противном случае – к блоку с меткой term.
Полный текст программы для исследования n-канальной разомкнутой СМО с ограниченной очередью на обслуживание требований выглядит следующим образом
nakopitel STORAGE s_
GENERATE (Exponential(1,0,tз))
TEST NE S$nakopitel,s_,term
ENTER nakopitel
QUEUE otchered
TRANSFER all,stanok_1,stanok_n,6
stanok_1 SEIZE stanok1
LEAVE nakopitel
DEPART otchered
ADVANCE (Exponential(1,0,tоб))
RELEASE stanok1
TRANSFER ,term
SEIZE stanok2
LEAVE nakopitel
DEPART otchered
ADVANCE (Exponential(1,0,tоб))
RELEASE stanok2
TRANSFER ,term
…
stanok_n SEIZE stanokn
LEAVE nakopitel
DEPART otchered
ADVANCE (Exponential(1,0,tоб))
RELEASE stanokn
term TERMINATE 1
Реализация имитационной модели в программной системе GPSSW
Запуск программы.
Программа находится по адресу C:\Program Files\Minuteman Software\GPSS World Student Version\GPSSW.exe. После запуска загрузочного файла появится главное окно программы (рис. 1).
Рисунок 1. Главное окно программной системы GPSSW.
Создание нового проекта.
Выбрать в меню File пункт New (можно непосредственно на панели инструментов навести курсор на ярлык , и нажать левой клавишей мыши). Появится диалоговое окно (рис. 2) предлагающее создать новый документ одного из двух типов: Model – файл для записи моделей и сохраняемый с расширением .gps; Text file – текстовый файл, сохраняемый с расширением .txt. После выбора пункта Model появится окно (рис. 3).
Рисунок 2. Создание нового документ Рисунок 3. Окно Model
Ввод имитационной программы.
В окне Model необходимо ввести программу, состоящую из последовательности блоков. Каждый блок вводится с новой строки. Блоки можно вводить набором вручную, а можно использовать шаблоны (рисунок 4), которые находится в меню Edit пункт Insert GPSS Bloks. Например, при выборе шаблона GENERATE появится окно (рисунок 5), которое содержит имя блока, его символическое обозначение, подполя переменных (A, B, C, D, E, F, G, H), поле метки блока (Label) и поле комментария (Comment). После заполнения подполя А и нажатия клавиши OK в окно Model будет введена соответствующая строка. Чтобы продолжить ввод программы нужно выбрать следующий шаблон блока, заполнить необходимые данные и выполнить ввод и т. д. до тех пор, пока не будет введена вся программа.
Рисунок 4. Шаблоны GPSS блоков Рисунок 5. Шаблон GENERAT
Рисунок 6. Ввод имитационной программы
Трансляция имитационной программы.
Чтобы оттранслировать программу необходимо выбрать в меню Command пункт Create Simulation. После запуска этой команды появится журнал отчета, в котором будет сообщение об успешной завершении трансляции или о допущенных в программе ошибках.
Редактирование файла выходной статистики.
Прежде чем осуществить запуск программы необходимо отредактировать файл выходной статистики. Для этого нужно активировать окно с программой, выбрать в меню Edit пункт Settings, открыть вкладку Reports и оставить флаги только напротив тех объектов, которые используются в модели, например, одноканальные устройства (Facilities), многоканальные устройства (Storages) и очереди (Queues) (рисунок 7).
Рисунок 7. Редактирование выходной статистики в окне Settings вкладка Reports.
Выполнение программы.
Для выполнения программы необходимо выбрать в меню Command команду START, в результате появится диалоговое окно с текстовой строкой, в которой набрана команда START 1 (рис. 8). Вместо единицы нужно ввести требуемое число и нажать кнопку OK.
Рисунок 8. Ввод команды START
В результате выполнения программы будет создан файл стандартной выходной статистики, с расширением .gpr, в котором находятся все необходимые данные для оценки характеристик системы.
Результат программы при обработке 1000 деталей.
GPSS World Simulation Report - Untitled Model 1.2.2
Wednesday, April 27, 2011 14:42:33
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 11889.968 23 3 1
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
STANOK1 414 0.697 20.011 1 0 0 0 0 0
STANOK2 333 0.563 20.097 1 1001 0 0 0 0
STANOK3 239 0.440 21.899 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OTCHERED 3 0 986 700 0.227 2.734 9.427 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAKOPITEL 3 3 0 3 986 1 0.227 0.076 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 11891.856 1001 15 16
1002 0 11928.725 1002 0 1
Результат программы при обработке 10000 деталей.
GPSS World Simulation Report - Untitled Model 1.2.3
Wednesday, April 27, 2011 14:43:58
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 122693.280 23 3 1
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
STANOK1 4149 0.672 19.858 1 10001 0 0 0 0
STANOK2 3274 0.541 20.267 1 0 0 0 0 0
STANOK3 2393 0.391 20.067 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OTCHERED 3 0 9816 7401 0.207 2.590 10.527 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAKOPITEL 3 3 0 3 9816 1 0.207 0.069 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10002 0 122715.328 10002 0 1
10001 0 122757.862 10001 9 10
Результат программы при обработке 100000 деталей.
GPSS World Simulation Report - Untitled Model 1.2.4
Wednesday, April 27, 2011 14:44:25
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 1206035.524 23 3 1
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
STANOK1 40676 0.678 20.113 1 0 0 0 0 0
STANOK2 32776 0.547 20.123 1 99999 0 0 0 0
STANOK3 24313 0.403 19.992 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OTCHERED 3 0 97765 72221 0.229 2.821 10.799 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAKOPITEL 3 3 0 3 97765 1 0.229 0.076 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
100002 0 1206040.545 100002 0 1
99999 0 1206062.032 99999 15 16