Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Создание имитационной модели
Используя диалоговое окно Новый документ, можно создать новый файл для моделирования с помощью пункта Model с расширением *.gps и текстовый файл с помощью пункта Text File с расширением *.txt. После двойного щелчка мышью по требуемому типу файла или щелчка по кнопке ОК при выделенном нужном файле появится соответствующее окно: для ввода моделируемой системы – Без названия модель 1 – или для создания текстового файла – Без названия текстовый файл 1.
В качестве примера рассмотрим задачу, где системой массового обслуживания (СМО) является парикмахерская: интервал прихода клиентов в парикмахерскую с одним парикмахером имеет равномерное распределение 18±6 мин. Время обслуживания клиентов равномерно распределено в интервале 16±4 мин. Промоделировать работу парикмахерской по обслуживанию 50 клиентов.
На рисунке 2 представлена концептуальная модель простейшей СМО.
Рис. 2. Простейшая СМО
Где:
- источник заявок (требование) – элемент СМО, выполняющий фиктивную операцию ожидания заявки, которая завершается генерацией (созданием) заявки;
- накопитель – это очередь заявок, ожидающих выполнения;
- прибор (канал, линия обслуживания) – элемент СМО, выполняющий реальные операции по обработке заявок.
Охарактеризуем каждое событие, возникшее в СМО:
1. Появление требования (клиента) в СМО (парикмахерской) (блок Generate – Генерировать).
2. Вход требования (клиента) в очередь (Queue – Очередь).
3. Определение занятости канала обслуживания (парикмахера) (Seize – Занять). Если канал занят, то требование остаётся в очереди, если свободен, то входит в канал обслуживания.
4. Выход требования (клиента) из очереди (Depart – Выйти).
5. Обслуживание требования (клиента) в канале обслуживания (парикмахера) (Advance – Задержать).
6. Освобождение канала обслуживания (парикмахера) (Release – Освободить).
7. Выход требования (клиента) из системы (парикмахерской) (Terminate – Завершить).
Эта программа в окне модели системы GPSSW будет выглядеть так, как показано на рис. 3.
Рис. 3. Окно Модель без названия 1 с введённой в него моделью одноканальной разомкнутой СМО (парикмахерская)
Рис. 4. Диалоговое окно Вставить блок GPSS в модель
Рис. 5. Диалоговое окно Информация для ввода в блок с шаблоном блока Generate
Использованные в программе операторы полностью соответствуют содержанию и логике моделируемой системы. Справа от операторов пишутся параметры (признаки, переменные), которые характеризуют данное событие. Так, в операторе Generate первая цифра – 18 – определяет средний интервал времени между поступлениями требований (клиентов) в систему (парикмахерскую) на обслуживание, а вторая – 6 – максимально допустимое отклонение от среднего времени. В операторах Queue и Depart цифра 1 определяет имя очереди, в которую вошло и из которой собирается выйти требование (клиент). В операторах Seize и Release символы PAR определяют символическое имя канала обслуживания (парикмахера), в который собирается войти требование (клиент), если он освободился, и выйти – если требование (клиент) уже в нём обслужилось. В операторе Advance первая цифра – 16 – определяет среднее время обслуживания требования (клиента), а вторая – 4 – максимально допустимое отклонение от среднего времени. Оператор Terminate выполняет удаление требования (клиента) из системы (парикмахерской). Цифра 50 в операторе Start означает число требований (клиентов), которые необходимо пропустить через систему (парикмахерскую).
Каждый оператор языка GPSS должен находиться на одной строке текста и включать в совокупности с другими элементами не более 250 символов. Он структурно состоит из нескольких полей. Выделяют следующие поля оператора:
номер строки (необязательное поле);
метка (необязательное поле);
имя оператора;
операнды (зависят от введённого оператора);
комментарий (необязательное поле).
Поле – переменное число печатаемых символов, за которыми следует незаполненное пространство или разделитель.
Номера строк, если они используются, должны вводиться с первой позиции (столбца). Однако номера строк в системе GPSSW игнорируются транслятором. Номер же строки, данный в сообщениях об ошибках, – это число, обозначающее место строки в программе, а не указанный пользователем номер строки.
Поле метки – это поле, в котором может быть введено имя данного оператора – числовое или символьное – для обращения к нему из другого места программы.
Поле оператора – это поле, в котором записывается один из операторов языка имитационного моделирования GPSS.
Поле операндов – это поле ввода требуемых для данного процесса моделирования операндов (аргументов оператора). Большинство операторов имеют один или несколько операндов. Поля оператора часто называют полями переменных. Традиционно операнды разделяются запятыми. Допускается пропускать в операторах некоторые операнды – так называемые необязательные операнды. В поле переменных выделяют подполя, разделяемые при записи запятыми и служащие для указания числовых значений переменных, стандартных числовых атрибутов, числовых и символьных меток и т.п. Подполя могут быть пустыми.
Поле комментария – это поле размещения комментария, относящегося к используемому оператору. Существует два основных вида комментария: входные и промежуточные. Первый вид комментария начинается с символов; (точка с запятой) и * (звёздочка), а далее идёт любой текст.
Во входном комментарии можно указать, что делает программа, какую систему моделирует, какие требуются входные данные, что получается в результате моделирования. Входные комментарии оформляются по определённым правилам. В первой позиции (колонке) ставится знак * или;. Далее с любой позиции (колонки) пишется необходимая поясняющая информация.
Промежуточные комментарии пишутся в поле переменных (операндов), отделяются знаком;. Промежуточные комментарии целесообразно писать с одной и той же позиции (колонки), например 30 или 35. Они должны указывать цель действия или объяснять логику моделирования при использовании того или иного оператора.
Трансляция модели
Программу, находящуюся в окне модели, можно оттранслировать и получить искомый результат. Для этого важно, чтобы окно модели было активным. Загрузить программу на транслирование и выполнение можно следующим образом:
щёлкните мышью по пункту Команда главного меню. Появится выпадающее меню;
щёлкните мышью по пункту Создать выполняемую модель выпадающего меню. Если программа без ошибок и в ней присутствует управляющая команда (оператор) Start, которую не сопровождают символы NP (Not Print – Не печатать), то результаты моделирования появятся в окне Report (Отчёт).
В результате вышеуказанных действий появится окно Journal (Журнал), с сообщением даты и времени начала и окончания проведения трансляции, такое, как на рисунке 6. Файл, содержащий окно Journal (Журнал), сохраняется с расширением *.sim.
Окно Journal (Журнал) служит также и для отображения диагностических сообщений об ошибках в программе.
Рис. 6. Окно Journal (Журнал)
Рис. 7. Окно Journal (Журнал) с указанием ошибки
В окне Journal (Журнал) указывается номер строки (Line 6) и позиция в строке (Col 8), где сделана ошибка. Ниже приводится некорректная строка программы:
Adance 16,4; Обслуживание клиента в интервале [12-20] мин.
Ещё ниже даётся сообщение:
**** Model Translation Aborted **** (Трансляция исходной модели прервана)
Чтобы быстро перейти на строку, где сделана ошибка, можно использовать пункт главного меню Поиск. Для этого:
щёлкните по пункту Поиск главного меню. Появится выпадающее меню;
щёлкните по пункту Перейти к строке выпадающего меню. Появится диалоговое окно Введите номер строки;
введите в текстовом поле номер строки, в которой сделана ошибка.
Каждый этап моделирования сопровождается указанием даты и времени выполнения, включая и этапы диагностики ошибок.
Перетранслировать программу можно следующим образом:
щёлкните по пункту Команда главного меню. Появится выпадающее меню;
щёлкните по пункту Перетранслировать выпадающего меню.
Выполнение модели и создание отчёта
Затем оттранслированная программа может быть запущена на выполнение. Для этого:
щёлкните по пункту Команда главного меню. Появится выпадающее меню;
щёлкните по пункту Пуск выпадающего меню. Появится диалоговое окно Start Command.
После щелчка по кнопке ОК появятся результаты моделирования. Файл, содержащий окно Report (Отчёт), сохраняется с расширением *.gpr. На рисунке 8 показан фрагмент результатов моделирования задачи с парикмахерской в окне Report (Отчёт).
В верхней строке окна Report (Отчёт) указываются:
Start Time (Начальное время) – 0.000;
End Time (Время окончания) – 958.138;
Blocks (Число блоков) – 7;
Facilities (Число каналов обслуживания) – 1;
Storages (Число накопителей) – 0.
Ниже перечисляются блоки модели и количество входов в них требований (клиентов). При этом каждый блок имеет свой числовой номер.
Рис. 8. Фрагмент результатов моделирования задачи с парикмахерской в окне Report (Отчёт)
Ещё ниже указываются результаты моделирования канала обслуживания под назначенным именем Par:
Entries (Число входов в прибор) – 51;
Util. (Коэффициент использования) – 0.843;
Ave. Time (Среднее время обслуживания) – 15.843;
Avail. (Доступность) – 1;
Owner (Возможное число входов) – 0;
Pend – 0;
Inter – 0;
Retry (Повтор) – 0;
Delay (Отказано) – 0.
Ещё ниже указываются результаты моделирования очереди с присвоенным именем 1:
Max (Максимальное содержимое) – 1;
Cont. (Текущее содержимое) – 0;
Entry (Число входов) – 51;
Entry (0) (Число нулевых входов) – 31;
Ave. Cont. (Среднее число входов) – 0.086;
Ave. Time. (Среднее время) – 1.609;
Ave. (-0) – 4.104;
Retry – 0.
До того как оттранслированная программа будет запущена на выполнение, можно установить содержимое будущего отчёта. Для этого:
щёлкните по пункту Правка главного меню. Появится выпадающее меню;
щёлкните по пункту Настройки… выпадающего меню. Появится диалоговое окно Settings (Установки) с пятью вкладками.
щёлкните по вкладке Сообщения и установите требуемое содержание отчёта. Например, как показано на рис. 9.
Рис. 9. Диалоговое окно Settings (Установки) с открытой вкладкой Сообщения для модели с парикмахерской.
Дата публикования: 2015-04-07; Прочитано: 891 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!