Тема 7. Язык моделирования GPSS Дисциплина «Имитационное моделирование экономических процессов» Специальность « Прикладная информатика (в экономике)» Институт информатики, инноваций и бизнес систем Кафедра информатики, инженерной и компьютерной графики Старший преподаватель Кийкова Е.В.
СОДЕРЖАНИЕ 2 1. Ключевые 1. Ключевые понятия 2. Учебный материал 3. Вопросы для самопроверки 4. Рекомендуемая литература
КЛЮЧЕВЫЕ ПОНЯТИЯ 3 Язык GPSS Объекты языка GPSS Категории и типы Транзакт Стандартные числовые атрибуты Сохраняемые величины Списки пользователей
УЧЕБНЫЙ МАТЕРИАЛ 4 Основные задачи лекции Раскрыть основные понятия, связанные с языком имитационного моделирования GPSS. Ознакомить со средой моделирования GPSS/W. Рассмотреть основные блоки GPSS. Ознакомить с моделированием вероятностных функций распределения в GPSS/W.
УЧЕБНЫЙ МАТЕРИАЛ 5 Принципы построения имитационных программ Объекты языка GPSS подразделяют на категории и типы. Наименование категорий: операционная, аппаратная, динамическая, вычислительная, статистическая, запоминающая, группирующая.
УЧЕБНЫЙ МАТЕРИАЛ 6 Наименование типов объекта: блоки, сообщения, устройства памяти, логические ключи, арифметические и булевские переменные, функции, очереди, таблицы, ячейки, матрицы ячеек, группы, списки.
УЧЕБНЫЙ МАТЕРИАЛ 7 Блоки С объектами связаны определенные совокупности блоков, описываемых функционирование самой моделируемой системы либо содержащих дополнительную информацию о порядке моделирования.
УЧЕБНЫЙ МАТЕРИАЛ 8 Операционная категория Блоки и сообщения - два основных типа объектов языка GPSS. Практически все изменения состояния модели происходят в результате входа сообщений в блоки и выполнения ими своих функций. С блоками связаны операторы, управляющие процессом моделирования.
УЧЕБНЫЙ МАТЕРИАЛ 9 Оператор SIMULATE укладывает на необходимость проведения моделирования. При его отсутствии производится только трансляция программы. Оператор START указывает на получение исходных данных и начало моделирования. Окончание моделирование производится при обнулении счетчика количества вводимых сообщений, задаваемого в поле А, Поле С определяет интервал выдачи промежуточной статистики.
УЧЕБНЫЙ МАТЕРИАЛ 10 Аппаратная категория Язык GPSS оперирует тремя группами оборудования: устройствами; памятью; логическими ключами.
УЧЕБНЫЙ МАТЕРИАЛ 11 К группе устройств относятся блоки: SEIZE, RELEASE, PREEMPT, RETURN. Введение в моделирующую программу описания устройства позволяет автоматически регистрировать статистическую информацию.
УЧЕБНЫЙ МАТЕРИАЛ 12 Группу памятей образуют блоки: ENTER, LEAVE, карта описания памяти STORAGE. Введение в моделирующую программу памяти позволяет автоматически регистрировать статистическую информацию.
УЧЕБНЫЙ МАТЕРИАЛ 13 Для управления ключами используется оператор LOGIG. Предусмотрено три режима изменения ключа: сброс в «0»; установка в «1»; инвертирование изменения состояния ключа на противоположное.
УЧЕБНЫЙ МАТЕРИАЛ 14 Динамическая категория Динамические объекты - это сообщения (транзакты). В процессе моделирования они создаются и уничтожаются. Каждому сообщению соответствует набор параметров, количество которых может быть удовлетворено до 100. Если количество параметров не называется, то оно принимается равным 12. Сообщениям можно присваивать приоритет от 0 до 127; если приоритет не назван, то он принимается равным 0.
УЧЕБНЫЙ МАТЕРИАЛ 15 С динамической категорией объектов связаны блоки, основные из которых можно подразделять на пять групп: 1. Группа задержки состоит из единственного блока ADVANCE; 2. Группа создания - из блоков GENERATE, SPLIT, ASSEMBLE; 3. Группа уничтожения сообщений состоит из единственного блока TERMINATE;
УЧЕБНЫЙ МАТЕРИАЛ Группа изменения маршрутов сообщений - из блоков TRANSFER, LOOP, GATE, TEST. Блок TRANSFER имеет шесть основных режимов использования; 5. Группа синхронизации сообщений включает в себя блоки MATCH и GATHER. Сопряженные блоки MATCH не допускают продвижения сообщения, поступившего первым, пока не поступило второе сообщение.
УЧЕБНЫЙ МАТЕРИАЛ 17 Вычислительная категория В вычислительной категории используются объекты трех видов: арифметические переменные, логические (булевские) переменные, функции. Арифметические переменные описываются блоком VARIABLE в режиме целых чисел и FVARIABLE в режиме с плавающей точкой.
УЧЕБНЫЙ МАТЕРИАЛ 18 При вычислении используется пять алгебраических операций: "+" (сложение); "-" (вычитание); "*" (умножение); "/" (деление с отбрасыванием остатка); "_" (деление на модуль, при котором частное отбрасывается и сохраняется остаток, который считается положительным). Функции описываются с помощью блока FUNCTION. Основные типы функций - кусочно-линейная и кусочно-постоянная.
УЧЕБНЫЙ МАТЕРИАЛ 19 Статистическая категория В языке GPSS используется 2 типа статистических объектов: очереди; таблицы. Очередь выделяется блоками QUEUE и DEPART. Частоты попадания заданного СЧА регистрируются блоком TABULATE. Характеристики таблиц вводятся блоком TABLE.
УЧЕБНЫЙ МАТЕРИАЛ 20 Запоминающая категория Для сохранения в модели числовой информации отводятся специальные ячейки основной памяти SAVEVALUE. Совокупности ячеек можно организовать в матрицы. Для записи информации в ячейки служит блок SAVEVALUE, в матрицы – МSAVEVALUE. Матрица описывается с помощью оператора MATRIX. Присвоение начальных значений ячейкам и матрицам осуществляется блоком INITIAL, с помощью которого можно устанавливать также логические ключи в состояние «1».
УЧЕБНЫЙ МАТЕРИАЛ 21 Группирующая категория Из объектов группирующей категории рассмотрим блоки LINK и UNLINK, позволяющие переводить сообщения из списка текущих активных событий в списки пользователя неактивных событий и обратно. Использование списков пользователя позволяет моделировать различные дисциплины обслуживания сообщений.
УЧЕБНЫЙ МАТЕРИАЛ 22 Синтаксис элементов языка Алфавит. Алфавит языка GPSS состоит из латинских букв от А до Z; цифр от 0 до 9 и специальных символов. Русские буквы могут использоваться только в комментариях. Числа. В языке GPSS различают два типа чисел полные и действительны. Признаком действительного числа является десятичная точка. Числа могут занимать в памяти ЭВМ два байта (полусловные) и четыре байта (полнословные).
УЧЕБНЫЙ МАТЕРИАЛ 23 Идентификаторы. Они должны содержать не более пяти алфавитно-цифровых символов, причем первые три символа должны быть буквами. Идентификаторы используются для формирования имен объектов и блоков. Именование объектов в GPSS может выполняться двумя способами в виде числового имени, и в виде символического имени.
УЧЕБНЫЙ МАТЕРИАЛ 24 Стандартные числовые атрибуты В процесс моделирования GPSS автоматически регулирует и корректирует определенную информацию различных объектов, используемых в модели. Доступ к этой части информации осуществляется с помощью стандартного числового атрибута (СЧА).
УЧЕБНЫЙ МАТЕРИАЛ 25 Имя СЧА состоит из двух частей. Первая часть указывает групповое имя. Оно идентифицирует одновременно и тип элемента (т. е. прибор, многоканальное устройство, очередь) и тип информации (например, счетчик занятий прибора, нагрузку многоканального устройства). Вторая часть идентифицирует конкретного члена группы (т. е. какай прибор, какое многоканальное устройство).
УЧЕБНЫЙ МАТЕРИАЛ 26 Правила записи программы Формат GPSS-блоков такой: [Номер строки] [Метка] При описании формата квадратные скобки [ ] указывают на необязательность поля. Номер строки – обязательное поле для GPSS/PC (в GPSS/W – игнорируется). Начинается с первой позиции строки. Представляет собой десятичное число.
УЧЕБНЫЙ МАТЕРИАЛ 27 Метка (имя блока) – содержимым поля является имя – последовательность символов, начинающаяся с буквы. Операция - содержит названия блоков или команд GPSS/W.
УЧЕБНЫЙ МАТЕРИАЛ 28 Операнды – блоки могут иметь операнды. Операнды блоков задают информацию, специфичную для действия данного блока. В блоках не может использоваться больше семи операндов. Операнды в общем случае обозначаются символами: A, B, C, D, E, F, G. Значения операндов определяются типом блока. Операнды следуют один за другим и отделяются запятыми или одним пробелом. Если операнд опущен, то вместо него ставится запятая. Между операндами не должно быть больше одного пробела, так как это будет означать, что операнды закончились и интерпретатор прекращает чтение строки.
УЧЕБНЫЙ МАТЕРИАЛ 29 Комментарии – необязательное поле. Комментарии располагаются после описания операндов и отделяются от них символом «;». Если комментарии занимают всю строку, то в первой колонке должен стоять символ "*" или «;». Строка описания блока может содержать до 79 символов в GPSS/PC и до 250 символов в GPSS/W.
УЧЕБНЫЙ МАТЕРИАЛ 30 Стандартная статистика В процессе выполнения программы модели интерпретатор собирает стандартную статистическую информацию, которая автоматически распечатывается по окончании моделирования. Стандартную статистику можно наблюдать в окне REPORT (WINDOW/REPORT).
УЧЕБНЫЙ МАТЕРИАЛ 31 Основные разделы отчета: Титул – включает ссылку на систему моделирования, содержащий описание модели файл и дату. Общая информация указывает начало и конец системного времени, число блоков, устройств и памятей. Имена – это список назначенных программистом имен и их числовые эквиваленты. Блоки – сведения о месте в модели, типе блока и числе транзактов (общее, к концу моделирования, в цепи RETRY повторных попыток).
УЧЕБНЫЙ МАТЕРИАЛ 32 Если в модели используются объекты типа «устройство», то в файле стандартной статистики будет представлена информация об использованных устройствах. FACILITY ENTRIESUTIL. AVE. TIME (1) (2) (3)(4) AVAIL. OWNER PENDINTER RETRY DELAY (5)(6) (7) (8) (9) (10) 1 – номер или имя устройства; 2 – количество входов; 3 – коэффициент использования; 4 – среднее время пребывания транзакта в устройстве; 5 – состояние готовности; 6 – номер последнего транзакта, занявшего устройство; 7 – количество прерванных в устройстве транзактов; 8 – количество прерывающих устройство транзактов; 9 – количество транзактов, ожидающих специальных условий; 10 – количество транзактов, ожидающих занятия устройства.
УЧЕБНЫЙ МАТЕРИАЛ 33 Если в модели используются объекты типа «очередь», то в файле стандартной статистики будет представлена информация об этих объектах. QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. (1) (2) (3) (4) (5) (6) AVE.TIME AVE.(-0) RETRY (7)(8) (9) 1 – номер или имя очереди; 2 – максимальная длина очереди; 3 – текущая длина очереди; 4 – общее количество входов; 5 – количество «нулевых» входов; 6 – средняя длина очереди; 7 - среднее время пребывания транзактов в очереди; 8 - среднее время пребывания транзактов в очереди без учёта «нулевых» входов; 9 – количество транзактов, ожидающих специальных условий.
УЧЕБНЫЙ МАТЕРИАЛ 34 Если в модели используются объекты типа «многоканальное устройство», то в файле стандартной статистики будет представлена информация об этих объектах. STORAGECAP.REMAIN MINMAXENTRIES (1) (2) (3) (4) (5) (6) AVL.AVE.C.UTIL.RETRYDELAY (7) (8) (9) (10) (11) 1 – имя или номер многоканального устройства (МКУ); 2 – емкость МКУ; 3 – количество единиц свободной ёмкости МКУ в конце периода моделирования; 4 – минимальное количество используемой ёмкости МКУ за период моделирования; 5 – максимальное количество используемой ёмкости МКУ за период моделирования; 6 – количество входов в МКУ; 7 – состояние готовности МКУ в конце периода моделирования (1 – готово, 0 – не готово); 8 – среднее значение занятой ёмкости за период моделирования; 9 – средний коэффициент использования всех устройств МКУ; 10 – количество транзактов, ожидающих специальных условий, зависящих от состояния МКУ; 11 – количество транзактов, ожидающих возможности входа в блок ENTER..
УЧЕБНЫЙ МАТЕРИАЛ 35 Если в модели используется блок TABLE то в файле стандартной статистики будет представлена информация об этих объектах. TABLEMEANSTD. DEV.RANGE RETRY (1) (2) (3) (4) (5) FREQUENCYCUM,% (6)(7) 1 - имя или номер таблицы; 2 – среднее значение; 3 – среднеквадратическое отклонение измеряемого значения; 4 – границы интервалов; 5 – ждут условий; 6 – количество попаданий; 7 – накопленная частость.
УЧЕБНЫЙ МАТЕРИАЛ 36 Кроме того, в отчет включаются данные: о цепях (пользователя, текущих и будущих событий), группах транзактов, числовых группах, логических ключах, матрицах, сохраняемых значениях. Для нулевых значений матриц указываются диапазоны индексов.
УЧЕБНЫЙ МАТЕРИАЛ 37 Главное окно системы включает в себя: Заголовок, Меню, Панель инструментов Поле клиента для набора текста модели. Среда моделирования GPSS/W
УЧЕБНЫЙ МАТЕРИАЛ 38 Используя меню главного окна, можно создавать объекты GPSS/W: модели, имитации, отчеты, тексты. Каждый из них можно рассматривать в соответствующих дочерних окнах. Типичный проект начинается с создания или модификации модели. Следует иметь ввиду, что модель – не просто текстовый файл: она содержит также установки Settings, закладки Bookmarks и результаты, которые не могут читаться внешним редактором.
УЧЕБНЫЙ МАТЕРИАЛ 39 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока ADVANCE Задерживает транзакт на среднее время А, В – модификатор разброса или модификатор функции. ASSIGN Присваивает параметру A входящего транзакта значение B, модифицированное значением C.
УЧЕБНЫЙ МАТЕРИАЛ 40 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока DEPART Обеспечивает в очереди А освобождение В единиц.Обеспечивает вхождение транзакта в накопитель А с занятием В единиц памяти. ENTER Обеспечивает в очереди А освобождение В единиц.Обеспечивает вхождение транзакта в накопитель А с занятием В единиц памяти.
УЧЕБНЫЙ МАТЕРИАЛ 41 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока GATEGATE Проверяет условие нахождение логического ключа А в состоянии Х. Проверяет условие нахождение устройства А в состоянии Х. GATEGATE Проверяет условие нахождение логического ключа А в состоянии Х. Проверяет условие нахождение устройства А в состоянии Х.
УЧЕБНЫЙ МАТЕРИАЛ 42 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока GATEGATE Проверяет условие нахождение накопителя А в состоянии Х. GENERATE Блок генерации транзактов через А единиц времени с модификатором В и задержкой С, D транзактов, с приоритетом Е, форматом F. GENERATE A,B,C,D,E,F
УЧЕБНЫЙ МАТЕРИАЛ 43 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока LEAVE Освобождает в накопителе А В единиц памяти PRIORIRY Присваивает входящему транзакту приоритет А PRIORITY A
УЧЕБНЫЙ МАТЕРИАЛ 44 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока QUEUE Обеспечивает занятие в очереди А В единиц. RELEASE Освобождает устройство с номером А.
УЧЕБНЫЙ МАТЕРИАЛ 45 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока SAVEVALUE Сохраняет заданное значение В в ячейке А SEIZE Занимает устройство с номером А. A,B,C SAVEVALUE
УЧЕБНЫЙ МАТЕРИАЛ 46 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока SELECT Блок выбора элементов. TERMINATE Уничтожает А транзактов. SELECT A,B,C,D,E X
УЧЕБНЫЙ МАТЕРИАЛ 47 Условные обозначения на блок-схемах Имя блока Обозначение блока Назначение блока TRANSFER Изменяет направление движения транзактов согласно режиму А. E NE TEST GE LE G L Проверяет соотношение Х между А и В и направляет входящий транзакт в следующий блок при выполнении или по адресу С при невыполнении соотношения. С ВА Х TEST
УЧЕБНЫЙ МАТЕРИАЛ 48 Задание потоков с различными законами распределения В GPSS/W в библиотеку процедур включено 24 вероятностных распределений. Вызов каждой функции оформлен как оператор присваивания с указанием в его левой части типа возвращаемого значения. Встроенная библиотека процедур содержит следующие вероятностные распределения: БетаReal=BETA(RNj, min, max, a, b) БиномиальноеInteger=Binomial(RNj, t, p) Дискретноравномерное Integer=DUNIFORM(RNj,min, max) Показательное Real=Exponential(RNj, m, s)
УЧЕБНЫЙ МАТЕРИАЛ 49 Обратное гауссово Real=INVGAUSS (RNj, m, s, a) Обратное Вейбулла Real=INVWEIBULL (RNj, m, s, a) ЛапласаReal=LAPLACE(RNj, m, s) ЛогистическоеReal=LOGISTIC(RNj, m, s) Нормальное Real=NORMAL (RNj, m, s) Парето Real=PARETO(RNj, m, s) Пирсона V типа Real=PEARSON5 (RNj, m, s, a) Пирсона VI типа Real=PEARSON6 (RNj, m, s, a, b) Крайних значений А Real=EXTVALA (RNj, m, s) Крайних значений Б Real=EXTVALB (RNj, m, s) Гамма Real=GAMMA(RNj, m, s, a) Геометрическое Integer=GEOMETRIC (RNj, p) Логарифм. Лапласа Real=LOGLAPLACE(RNj, m, s,a Логарифм. логистическое Real=LOGLOGIS(RNj, m, s, a)
УЧЕБНЫЙ МАТЕРИАЛ 50 Логарифм. нормальное Real=LOGNORMAL (RNj, m, s, a) Отрицат. биномиальное Integer=NEGBINOM (RNj, c, p) Пуассона Integer=POISSON (RNj, v) Треугольное Real=TRIANGULAR(RNj,min, max, mode) Равномерное Real=UNIFORM(a,b) Вейбулла Real=Weibull (RNj, m, s, a) Все процедуры вызываются по их указателю. Если требуется задать исходный датчик случайных чисел, подставляется только номер последнего – без предшествующего RN. Во всех случаях через Min и Max обозначены соответственно наименьшее и наибольшее значение генерируемой случайной величины, m – смещение, s – масштабный параметр (оба положительные), а и b - параметры формы.
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ 51 Дайте определение понятию транзакт. Перечислите категории объектов GPSS. Перечислите типы объектов GPSS. Как на блок-схеме изображаются блоки символизирующие занятие и освобождение приборов, многоканальных устройств? Перечислите блоки используемые для изменения пути движения транзакта. Какие блоки используются для сбора статистики? Какая информация выводится в отчёте по результатам моделирования? Принципы задания потоков с различными законами распределения.
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 52 Кийкова Е.В., Лаврушина Е.Г. Имитационное моделирование. Практикум.- Владивосток: ВГУЭС, с. Томашевский В.Н., Жданова Е.Г. Имитационное моделирование в среде GPSS. – М.: Бестселлер, – 416 с. Советов Б.Я., Яковлев С.А. Моделирование систем. Учебник для ВУЗов. - М.: Высшая школа, с. Шрайбер Т.Дж. Моделирование на GPSS. - М.: Машиностроение, с.
53 Использование материалов презентации Использование данной презентации, может осуществляться только при условии соблюдения требований законов РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления. Презентация является собственностью авторов. Разрешается распечатывать копию любой части презентации для личного некоммерческого использования, однако не допускается распечатывать какую-либо часть презентации с любой иной целью или по каким-либо причинам вносить изменения в любую часть презентации. Использование любой части презентации в другом произведении, как в печатной, электронной, так и иной форме, а также использование любой части презентации в другой презентации посредством ссылки или иным образом допускается только после получения письменного согласия авторов.