Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонтрРаботыСМО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.49 Mб
Скачать

65

Контрольная работа по дисциплине «СМО»

GPSS World

Заочное обучение

Цель работы состоит в изучении системы GPSS World. Требуется установить её на свой компьютер и выполнить предложенные задания. При выполнении заданий свои действия фиксировать в отчёте, помещая скрин-шоты и текст необходимых пояснений и выводов.

Задание № 1

Изучение техники работы в системе имитационного моделирования GPSS World

Теоретические сведения

Модели GPSS состоят из последовательности выражений: Блоков, Команд или процедур PLUS. Они обозначают действия и задержки для входящих в них Транзактов.

Блоки – это операторы языка моделирования.

В Блоке происходят операции с Транзактами, механизмы которых скрыты от пользователя.

Каждый Блок имеет свое название (т.е. конкретный оператор языка), может снабжаться меткой и иметь список аргументов.

Названия операторов принято писать прописными буквами.

Аргументы могут отсутствовать. Имена аргументов обозначаются символами A, B, C, … Порядок следования аргументов важен, поэтому если какой-нибудь из них не указывается, а за ним следует еще аргумент, то вместо отсутствующего пишется «,» .

Метка оператора нужна для того, чтобы к оператору можно было возвратиться, и представляет собой имя – набор символов.

Блоки модели можно комментировать:

* в первой позиции текста модели означает строку комментариев,

; внутри строки с текстом означает, что далее следует комментарий.

GPSS предоставляет пользователю набор встроенных статистик, называемых Системными Численными Атрибутами (СЧА) - System Numerical Attributes (SNA).

Их набор дан в руководстве по GPSS World. Их можно использовать в Операндах и Выражениях, что упрощает составление программы.

В GPSS процесс моделирования представляет последовательность входов/выходов набора Транзактов в один или несколько Блоков.

Пользователь собирает набор Блоков так, чтобы поведение Транзактов было похоже на поведение реальной системы.

После запуска GPSS World появляется главное окно.

Каждый объект системы (модель на языке моделирования, результаты моделирования и т.п.) отображается в своем окне. Окна располагаются каскадом или вертикально друг за другом.

Горячие клавиши GPSS World

[Ctrl] + [Alt] + [S] – Создать модель

[Ctrl] + [Alt] + [R] – Создать заново

[Ctrl] + [Alt] + [L] – Повторить последнюю команду

[Ctrl] + [Alt] + [C] – CONTINUE (Продолжить)

[Ctrl] + [Alt] + [H] – HALT (Прервать)

[Ctrl] + [Alt] + [1] – STEP 1 (Выполнить 1 шаг)

[Ctrl] + [O] – Открыть Файл

[Ctrl] + [S] – Сохранить Файл

[Ctrl] + [P] – Распечатать Файл

[Alt] + [F6] – Следующая панель

[Shift] + [F6] – Предыдущая панель

Можно назначить действия функциональным клавишам: в окне настроек модели, (команда Edit/Settings, вкладка Function Keys). Необходимое действие записывается в текстовое поле рядом с функциональной клавишей.

Заранее назначенные команды функциональным клавишам:

[F1] – Справка

[F2] – CONTINUE

[F3] – EXIT

[F4] – HALT

[F5] – STEP 1

[F6] – STOP

[F7] – Stop ,,Off

Окно Модели

Чтобы появилось окно модели, надо либо создать новую модель, либо открыть уже готовую модель.

Для этого используются команды File/New или File/Open.

Меню File используется для создания, открытия, сохранения модели.

Создадим новую модель: File/New, далее в окне диалога выберем Model.

Теперь главное окно GPSS содержит окно Модели:

В окне модели вводят программу на языке моделирования GPSS.

По умолчанию модель называется Untitled Model 1.

Сохраним модель (пока еще пустую): File/Save с именем MyBarb.

Файл с моделью будет иметь расширение .gps.

Для составления модели удобно использовать специальное окно Insert GPSS Blocks into Model Object, где представлены используемые Блоки.

Открывается окно по команде Edit/Insert GPSS Blocks Щелкнув по требуемому Блоку, получаем окно для ввода его параметров, метки и комментариев.

Окно модели представляет текстовый редактор, в котором используется обычная техника работы.

Ускоряют работу пользователя следующие сочетания клавиш.

[Ctrl] + [Alt] + [B] – Следующая закладка

[Ctrl] + [Alt] + [G] – Перейти к строке

[Ctrl] + [Alt] + [N] – Следующая ошибка

[Ctrl] + [Alt] + [P] – Предыдущая ошибка

[Ctrl] + [Alt] + [F] – Найти / Заменить текст

[Ctrl] + [Z] – Вставить строку

[Ctrl] + [D] – Удалить строку

[Ctrl] + [I] – Отменить

[Ctrl] + [C] – Скопировать в буфер обмена

[Ctrl] + [X] – Вырезать в буфер обмена

[Ctrl] + [V] – Вставить из буфера обмена

[Ctrl] + [Ins] – Скопировать в буфер обмена

[Shift] + [Del] – Вырезать в буфер обмена

[Shift] + [Ins] – Вставить из буфер обмена

Текст программы в окне Model должен быть транслирован для создания объекта Simulation. Для этого выполняется команда Command/Create Simulation.

Далее следует запустить процесс работы модели по команде START.

Если есть ошибки в тексте, то они будут описаны в специальном окне – Journal в виде журнала; а также и в строке состояния.

Например

В Journal будут записываться любые взаимодействия и сообщения, генерируемые системой GPSS World.

Методическая часть

Мы уже создали новую модель и сохранили под именем MyBarb.

С помощью окна заготовок блоков (Insert GPSS Blocks into Model Object) наберем следующий текст:

* Barber Shop Simulation

*

GENERATE 300,100 ;Создать очередного клиента

QUEUE Barber ;Начало времени ожидания в очереди

SEIZE Barber ;Ожидание обслуживания

DEPART Barber ;Время ожидания в очереди закончилось

ADVANCE 400,200 ;стрижка некоторое время

RELEASE Barber ;мастер освободился

TERMINATE 1 ;1 клиент ушел обслуженным

Этот пример имитирует обслуживание 1 парикмахером клиентов. В модели клиенты прибывают каждые 300+-100 секунд модельного времени. У парикмахера, в среднем, уходит 400 +-200 секунд на клиента.

Создадим объект Simulation:

Command / Create Simulation

Модель транслируется в объект Simulation. Если в модели есть синтаксические ошибки, они определяются, их надо исправить.

Теперь все готово для моделирования.

Откроем окно Blocks, в котором удобно отслеживать по шагам работу модели:

Window / Simulation Window / Blocks Window

Это окно будет динамически обновляться в процессе моделирования.

Вид окна можно изменить (сократить выводимую информацию) с помощью команды меню View

View / Entity Details

Еще раз выполнив View / Entity Details, вернемся к развернутой информации в окне Blocks и проследим за процессом моделирования.

Чтобы модель заработала, введем команду START 300:

Command / START

и в диалоговом окне START заменим 1 на 300, подтвердим, нажав OK.

Надо сделать активным окно Blocks, чтобы видеть, как работает модель.

Все Команды, за исключением HALT, SHOW и INCLUDE, помещаются в упорядоченную очередь Команд, когда объект Simulation получает их. Они выполнятся в порядке их получения. Эти Команды называются Командами в очереди.

HALT и SHOW называются немедленными Командами. Они выполняются вне зависимости от того, что происходит.

Команда HALT прерывает любую работающую модель, а также удаляет еще не выполненные Команды в очереди.

Рисование графиков

Система создает объект Model в текстовом редакторе, но не запустит сама моделирование. Создается объект Simulation путем трансляции

Command / Create Simulation

Подготовим график в окне Plot.

На графике отобразим атрибут SNA, отражающий состояние парикмахерской, например, Q$BARBER SNA, являющийся счетчиком очереди.

Заготовки графика:

Window / Simulation Window / Plot Window

Появится диалоговое окно. Введите в текстовые поля информацию, представленную на нижеприведенном рисунке.

*Не нажимайте клавишу [Enter] для перемещения от поля к полю. Клавиша [Enter] означает, что вся информация была введена. Данный график будет отображать очередь в парикмахерской в процессе моделирования.

Обязательно надо нажать кнопки Plot и Memorize после заполнения двух полей: Label и Expression.

Кнопка Memorize сохранит параметры, определяющие данный график.

Система GPSS World отреагирует на полученные команды, отрисовав оси графика в окне Plot. График будет построен, когда начнется моделирование.

Запускаем модель

Command / START

В диалоговом окне заменим 1на 100

На протяжении некоторого времени следим за графиком и прерываем моделирование по [F4].

Можно не прерывать моделирование, т.к. моделирование работы парикмахерской занимает несколько секунд.

После нормального завершения моделирования система GPSS World сигнализирует с помощью сообщения «The Simulation has Ended» в статусной строке внизу главного окна.

Выведем время моделирования:

Command / SHOW

и далее введем C1.

Значение C1 показывает модельное время в тот момент, когда процесс моделирования завершился.

Выведем максимальное значение объекта Очередь (Queue) под названием Barber:

Command / SHOW

и введем QM$Barber.

Результаты видны в журнале и строке состояния.

Откроем окно Expression для отображения значений времени, длины очереди клиентов и количества активных Транзактов:

Window / Simulation Window / Expression Window

Отредактируем окно Expression

Рядом с Label ввести Clock,

и для Expression AC1.

Затем нажать кнопки View и Memorize.

Аналогично сделать для числа активных Транзактов и очереди.

В поле Label: Act Trans, в поле Expression: XN1

В поле Label: Barber, в поле Expression: Q$Barber

В окне Expressions выведется требуемая информация.

Запускаем моделирование: Command / START, меняем значение 1 на 100000.

Теперь наблюдаем за изменением важнейших статистических показателей в соответствии с состоянием системы и за интересующими значениями в окне Expression.

На рисунке представлено еще одно окно: Facility. Его открываем по команде

Window / Simulation Window / Facilities Window

В окне показан наш парикмахер Barber.

Пошаговое моделирование

Оно похоже на пошаговую отладку, например, в Delphi.

Чтобы выполнять моделирование по шагам, надо в каком-то Блоке поставить точку останова.

Откроем окно Blocks:

Window / Simulation Window / Blocks Window

Поместим в Блок условие Stop и поймаем Транзакт.

Выберем Блок DEPART для остановки Транзакта.

Остановка моделирования влечет за собой очистку всех невыполненных Команд в очереди. В нашем случае, в очереди отсутствовали Команды, подлежащие удалению.

Если бы они были, то они пропали бы навсегда.

Чтобы продолжить прерванное моделирование, достаточно выполнить команду CONTINUE, которая сама по себе является Командой в очереди.

Создадим условие Stop в окне Blocks:

Щелкаем на иконке Блока DEPART,

Щелкаем на иконке Place в верхней части окна

Теперь перезапускаем моделирование - [F2], или Щелкаем на иконке Continue, расположенной на панели управления Debug в верхней части окна.

Моделирование прекратится, когда следующий Транзакт попытается войти в Блок DEPART.

Одновременно наблюдаем за двумя окнами: Journal и Blocks. Возможно, придется изменить размеры окна.

Теперь задаем трассировку:

Command / Custom

и в диалоговом окне вводим Trace

Эта команда приведет к переводу индикатора Trace в состояние Active Transaction.

Теперь переход Транзакта в каждый Блок будет сопровождаться записью отладочного сообщения в окно Journal.

Уберем условие Stop:

Щелкаем на Блоке DEPART в окне Blocks,

Щелкаем на иконе Remove в верхней части окна.

Также можно убрать одно или несколько условий STOP, используя команду:

Window / Simulation / Snapshot / User Stops.

Затем отправим команду CONTINUE модели: [F2] или [Ctrl] + [Alt] + [C]

Это позволит следить за отладочными сообщениями по мере их появления в процессе моделирования.

В любой момент можно распечатать журнал, сделав окно Journal активным и выбрав команду Print из меню File.

В любой момент можно сформировать отчет, если моделирование не закончено:

Command / Custom

В диалоговом окне ввести Report.

Это приведет к немедленной генерации стандартного отчета, даже если процесс моделирования не был завершен.

Если моделирование закончено, то отчет Report формируется автоматически.