Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_6_GPSS World_2014.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
187.84 Кб
Скачать

Лабораторная работа

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

В СРЕДЕ GPSS/World

Цель работы: изучение инструментальных средств языка GPSS для моделирования систем обслуживания с условием перераспределения заявок по разным направлениям; получение практических навыков; знакомство с основными элементами стандартного отчёта; анализ и обработка результатов моделирования в среде GPSS/World.

Теоретическая часть

Язык моделирования GPSS/PC (General Purpose Simulation System – общецелевая система моделирования) был разработан компанией Minuteman (США) изначально для моделирования дискретных систем и был предназначен для работы в операционной среде DOS. Язык получил широкое распространение и был включён в учебные курсы по моделированию систем у нас в стране и во многих университетах США и других стран. В последнее десятилетие появилась новая версия языка Gpss World, разработанная под Windows, в которой можно моделировать не только дискретные, но и непрерывные процессы. Эти возможности обеспечиваются как новыми объектами языка, так и включением в состав Gpss World языка PLUS – языка программирования низкого уровня, позволяющего взаимодействовать с другими приложениями и создавать собственные библиотеки процедур. Также эта среда обеспечивает высокую интерактивность и визуальное представление информации.

Студенческая версия GPSS/World бесплатная, имеет ограничения лишь на количество используемых в программе блоков (не более 170). Учебную версию можно получить бесплатно на портале www/minutemansoftware.com/download или по адресу http://gpss-world-student-version.software.informer.com/download/?df9a4a, выбрав файл gpss-world-student-version.

Основные блоки языка gpss

В отличие от PLUS-операторов, которые могут содержать несколько строк, операторы GPSS записываются в отдельной строке и имеют следующий вид:

[метка] имя блока[операнды] ;комментарии

Обязательным является только поле имя блока, остальные поля могут отсутствовать. Метка является именем-идентификатором блока, определяемым разработчиком. Имена должны начинаться с буквы, могут содержать цифры и символы подчёркивания. Имя метки не должно совпадать с ключевыми словами GPSS. GPSS присваивает меткам номера, начиная с 10 000. Количество обязательных операндов зависит от блока, они отделяются запятыми, для пропуска одного из подполей ставится подряд несколько запятых.

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

Поступление транзактов в модель

GENERATE (генерировать) – блок, в котором «рождаются» транзакты (заявки на обслуживание) и входят в процесс моделирования. В любой блок GENERATE не могут входить транзакты. Поэтому в простых программах это первый блок. Имеет формат:

GENERATE [A],[B],[C],[D],[E]

Скобки [ ] означают, что данный операнд является необязательным.

Операнд A задаёт средний интервал времени между моментами поступления последовательных транзактов в модель. Если этот интервал постоянен, то операнд B не используется. Если же интервал поступления является случайной величиной, то в операнде B указывается модификатор среднего значения, который может быть задан в виде модификатора-интервала или модификатора-функции. Модификатор-интервал позволяет задать равномерный закон распределения поступления транзактов. Запись GENERATE A,B означает, что время поступления транзактов будет распределено равномерно на отрезке [A–B, A+B]. Ясно, что В<А.

Например, блок GENERATE 100,40 создаёт транзакты через случайные интервалы времени, равномерно распределённые на отрезке [60;140]. Разыгрывается случайное число в этом интервале, например 78, рождается первый транзакт. Затем, разыгрывается новое случайное число в интервале [60;140], например 132, и второй транзакт попадает в модель в момент времени 78 + 132 = 210 и т. д.

Модификатор-функция используется, если закон распределения интервала поступления отличен от равномерного. В этом случае в операнде B должна быть записана ссылка на функцию (её СЧА), описывающую этот закон, и случайный интервал поступления определяется как целая часть произведения поля A (среднего значения) на вычисленное значение функции.

В операнде C задаётся момент поступления в модель первого транзакта. Если это поле пусто или равно 0, то момент появления первого транзакта определяется операндами A и B.

Операнд D задаёт общее число транзактов, которое должно быть создано блоком GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.

Операнд E задаёт приоритет, присваиваемый генерируемым транзактам. Число уровней приоритетов неограниченно, причём самый низкий приоритет – нулевой. Если поле E пусто, то генерируемые транзакты имеют нулевой приоритет.

Операнд F задаёт число параметров транзакта, по умолчанию 12.

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

Примеры.

  1. GENERATE 5;определяет время поступления транзактов ровно через

5 ед. времени;

2) GENERATE ,,,10;в момент времени 0 родится одновременно 10 транзактов;

3) GENERATE 2,,10,,1 ;первый родится в 10, затем в 12, 14 и т . д. с приоритетом 1.