Gpss что это за программа

GPSS (General Purpose Simulating System — общецелевая система моделирования) является одним из наиболее эффективных и распространенных языков моделирования сложных дискретных систем.

GPSS достаточно удобен при программировании, поскольку интерпретатор GPSS многие функции выполняет автоматически. Например, GPSS без специального на то указания пользователя собирает статистические данные, описывающие поведение модели, автоматически печатает итоговую статистику по завершении моделирования. Пользователю нет необходимости включать в модель вычислительные операторы для сбора и накопления этих данных или задавать их формат.

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

Язык GPSS может быть с наибольшим успехом использован для моделирования систем, формализуемых в виде систем массового обслуживания.

Язык моделирования GPSS основные понятия и объекты. Имитационное моделирование лекция 2

В качестве объектов языка используются аналоги таких стандартных компонентов СМО, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор подобных компонентов позволяет конструировать сложные имитационные модели, сохраняя привычную терминологию СМО.

В системе GPSS основной единицей представления является процесс, а не событие. При этом имеется разветвленная система различных объектов, которые можно разделить на несколько классов:

1. Динамические — объекты, связанные с заявками или транзактами (генерация заявок, обеспечение условий реализации, размножение, уничтожение, останов, изменение их характеристик и т.д.)

2. Аппаратно-ориентированные — все объекты, которые связаны с элементами системы, которую мы проектируем (одноканальные и многоканальные устройства, очереди и т.д.)

3. Статистические объекты — сбор статистики, связанной с терминологией моделей массового обслуживания (сохраняемые величины, матрицы сохраняемых величин, таблицы).

4. Вычислительные – используются для определения различных математических выражений и зависимостей (переменные и функции).

5. Операционные объекты — все операторы для составления программы моделирования (блоки).

6. Списковые структуры (цепи): список текущих событий, которые выполняются сейчас или по каким-то причинам задерживаются, списки будущих событий, список заявок, список парных транзактов.

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

Значение атрибутов всех объектов модели по окончанию моделирования выводятся в стандартный отчёт. Большая часть атрибутов (табл. 4.1) доступна программисту (стандартные числовые атрибуты (СЧА)).

Для ссылки на стандартные числовые атрибуты соответствующий операнд оператора записывается:

gpss 01 simple

СЧА$имя или СЧАj,

где СЧА — конкретный СЧА, имя — имя объекта, j — номер объекта, $ — символ-разделитель.

Таблица 4.1

Описание стандартных числовых атрибутов

Элемент СЧА Краткое описание
Блоки N Счетчик входов
W Счётчик текущего содержимого
Время С1 Значение относительного времени
AС1 Значение абсолютного времени
Генераторы случайных чисел RN(1-8) От 0.000000 до 0.999999
Матрицы сохраняемых величин MH(a, b), MX(a, b) Элемент строки «а», столбца «b» (полуслово и полное слово).
Многоканальное устройство R Свободная ёмкость
S Текущее содержимое
SA Среднее содержимое
SC Счётчик числа входов
SR Коэффициент использования
ST Среднее время задержки на единицу ёмкости
Очереди Q Текущее содержимое
QA Среднее содержимое
QC Счётчик числа входов (общее число)
QM Максимальное содержимое
QT Среднее время пребывания (по QC)
QX Среднее время пребывания (по QZ)
QZ Счётчик числа входов (нулевые входы)
Переменные BV Значение булевской переменной
V Значение арифметической переменной
Устройство F Состояние устройства
FC Счётчик числа занятий
FR Коэффициент использования
FT Среднее время задержки на одно занятие
Сохраняемые величины X, (XH) Значение полнословной (полусловной) сохраняемой величины
Таблицы TB Средняя величина не взвешенных коэффициентов
TC Количество не взвешенных входов
TD Дисперсия не взвешенных входов
Транзакты P Значение параметра
PR Уровень приоритета
M1 Время пребывания в модели
Функции FN Значение функции

Работа модели заключается в перемещении заявок (транзактов) от одного оператора (блока) к другому, в соответствии с логикой модели до тех пор, пока не произойдёт одно из следующих событий:

— транзакт входит в блок, функцией которого является удаление транзакта из модели;

— транзакт входит в блок, функцией которого является задержка транзакта на некоторое время;

— транзакт не может войти в следующий блок.

Центральной задачей является определение того, какой транзакт надо выбрать следующим для продвижения в модели, когда его предшественник прекратил продвижение. С этой целью каждый транзакт рассматривается как элемент некоторого списка. В системе GPSS используются список текущих событий (время продвижения меньше или равно модельному) и список будущих событий (время продвижения больше модельного).

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

«СЛАВА ЖПСС!» или вспоминаем про GPSS World

Почти семь лет назад я набросал на «Хабре» статью про GPSS-World. И к моему удивлению, время от времени я получаю различные вопросы, связанные с ней.

Как же так на дворе уже 2020 год, GPSS World безнадежно устарела, неужели ей кто-то до сих пор пользуется?!

Читайте также:
Samsung game booster что это за программа

Оказывается, пользуются и еще как.

Достаточно вбить поисковый запрос на «Киберленинке», настроить для удобства фильтры и убедиться, что есть актуальные статьи как минимум за 2019 год.

Сфера образования тоже не отстаёт, в 2019 году выпустили свеженькое учебное пособие пусть и для средне-профессионального уровня образования.

GPSS World у меня совсем не ассоциируется с инновационным подходами к образованию. При виде учебной программы на базе GPSS World мне сразу представляется кошмар, в котором я делаю лабораторную работу по моделированию, сидя в компьютерном классе за ЭВМ с «трубчатым» монитором и шариковой мышкой, а после «лабораторки» бегу в столовую, чтобы накалывать котлету на грязную и гнутую алюминиевую вилку.

Но раз уж GPSS в узких кругах по-прежнему популярна, то почему бы не поддаться приступу ностальгии? В этой статье мы кратко вспомним о том, что из себя представляет бесплатная версия системы имитационного моделирования «GPSS World Student Version», а также познакомимся с некоторыми её близкими родственниками.

Если вы любите анализировать очереди и любоваться на «древние» скриншоты, тогда милости прошу под кат.

Часть I: Введение

Я не буду подменять собой Википедию, а только в двух словах напомню, что GPSS – это система моделирования общего назначения, которая зародилась в 60-е годы прошлого столетия, где-то в недрах IBM, однако в наших учебных заведениях наибольшую популярность получила её реализация от компании Minuteman Software, в частности — GPSS World.

Часть II: Различные реализации GPSS

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

Возможно, вы думали, что я начну в хронологическом порядке? Как бы не так!

Я сразу «зайду с козырей».

Если верить информации на сайте, то разработчик делает нам предложение, от которого нельзя отказаться:

Вы можете купить за $100 личную версию системы, которая обрабатывает модели с неограниченным числом блоков. В ней, по вашему желанию, будет ваше фото, или фото, которое вы захотите иметь, а также сведения, что это ваша личная версия. Вам гарантируются консультации по системе в течение 2 лет.

Я честно не стал разбираться, как это чудо работает. Однако, разработчик не врал. В демоверсии есть отдельная вкладка, на которой могла бы быть ваша фотография, но вы не заплатили 100$ поэтому там фото разработчика (или то которое он захотел иметь).

Теперь давайте серьезно.

На рисунке № 2 (figure 2) взятом из статьи «GPSS 50 years old, but still young» показан процесс развития GPSS и его ответвлений.

К сожалению, сайт Wolverine Software похоже приказал, долго жить.

Увидеть, как сейчас поживает наследник GPSS их производства у меня не получилось. Но не расстраивайтесь, общее представление об SLX можно составить, пролистав статью «AN INTRODUCTION TO SLX»

Но давайте хотя бы рассмотрим их реализацию GPSS под DOS, а именно GPSS/H.

Программа меня слегка расстроила отсутствием интерактивного режима. При запуске сразу необходимо загрузить файл модели .GPS.

После моделирования (на рисунке ниже слева) программа сохраняет отчет в файл с именем модели и расширением .LIS (на рисунке ниже справа)

Перейдем от левой части вышеуказанной схемы (figure 2) к правой.

Посмотрим на aGPSS — дальнейшее развитие WebGPSS и WinGPSS. Демонстрационную версию, выпущенную в 2015 году, можно скачать с официального сайта.
Правда у меня симуляция так и не запустилась, выдавая следующую ошибку:

Хотя сама система выглядела не так уж и плохо.

Еще стоит упомянуть о GPSS Studio — это отечественная разработка, также как и aGPSS обладающая возможностью графического построения моделей. Данной системе моделирования я планирую в будущем посвятить отдельный обзор, поэтому не будем на ней сейчас концентрироваться.

Поскольку все рассмотренные в статье версии GPSS проприетарные я напоследок упомяну о попытке сделать аналог GPSS с открытым исходным кодом на языке GO. Подробней об этом можно прочесть на «Хабре».

Часть III: запускаем GPSS/PC с помощью эмулятора DOS на смартфоне

Ну вот и пришло время рассмотреть творения от Minuteman Software.

Начнем мы с GPSS/PC. Это старая версия программы для DOS.

При моем первом знакомстве с ней программа запустилась, задумалась, издала звук с помощью «Пищалки» (PC speaker) и на секунду мне показалось, что сейчас появиться логотип Sierra и я как в детстве «залипну» в любимые Space Qurst и Leisure Suit larry.

Но наваждение быстро прошло. После стартовой заставки нас будет ожидать лишь интерактивная консоль.

В данную консоль можно сразу вводить команды не создавая файл.

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

В нашем случае простота GPSS/PC имеет один большой плюс.

Она легко запускается на любом эмуляторе MS-DOS. Так почему бы нам не проверить её работоспособность на смартфоне (в моем случае на платформе Android)?

Устанавливаем эмулятор. Я установил aFreeBox (Free DOSbox), но вы можете выбрать любой другой.

В моем случае корневой папкой эмулятора стала папка загрузок в корне файловой системы смартфона. В эту папку я и перенес файлы с GPSS/PC.

Запускаем программу (не забудьте для антуража включить симуляцию PC-Speaker).

Теперь можно вводить команды.

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

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

После ввода команды остается ввести ее параметры и нажать Enter.

Примерная иллюстрация процесса представлена ниже:

Читайте также:
Программа денвер для чего

Запустим симуляцию командой START 10 .

Выйдем из симуляции командой END .

Осталось только просмотреть отчёт, для этого необходимо запустить отдельную программу GPSSREPT.EXE.

Часть IV: Простейшая модель в GPSS World

Ну а теперь сам GPSS-world.

Лично я своё знакомство с GPSS World начал с учебника «Комплексная механизация строительства» Кудрявцева Е.М., от одного воспоминания о котором, меня до сих пор настигает уныние.

Но в сети есть и другие учебные материалы, в том числе официальный туториал и вариации его перевода.

Прежде чем перейти к моделированию, нам необходимо скачать бесплатную студенческую версию программы. Правда вы могли бы купить персональную лицензию, за 600 с лишним долларов. Но зачем выкидывать такие деньжищи, если в программе даже не будет вашей фотографии (как в случае с Object GPSS)? Оно явно того не стоит.

Прежде чем мы попробуем запустить какую-нибудь модель. Просто посмотрите на это:

Да, да, в GPSS World есть свой собственный интернет браузер. Правда, к сожалению, верстка Хабра в нем плывет, но это и не удивительно в 2020 году.

Зато сайт Minuteman Software открывается идеально. Ну, а как же иначе ведь он сверстан с применением таких передовых технологий как Microsoft FrontPage. Кто-нибудь еще помнит это чудо?

Давайте перейдем непосредственно к моделированию.

Важно помнить, что при использовании GPSS ключевым компонентом является ваше воображение.

Например, эта простейшая модель:

GENERATE 4,1 ;Create next customer. QUEUE Larek ;Begin queue time. SEIZE Larek ;Own or wait for trader. DEPART Larek ;End queue time. ADVANCE 5,2 ;Shopping takes a few minutes.

RELEASE Larek ;Shopping done. Give up the trader. TERMINATE 1 ;Customer leaves.

Благодаря вашей фантазии может стать: моделью прохода через турникет, моделью парикмахерской с одним мастером и даже моделью комплекта машин самосвал-экскаватор.

Работа в системе моделирования GPSS World Student Version

GPSS (англ. General Purpose Simulation System — общецелевая система моделирования) — язык программирования, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания.

С помощью GPSS можно эффективно моделировать функционирование торговых заведений, портов, уличное движение, проведение военных действий, работу редакций, учреждений и сети Интернет, различных систем массового обслуживания и многое другое. GPSS World – мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем.

Задание 1 (постановка задачи):

На станок поступают детали для обработки. Интервалы между моментами поступления деталей составляют от 5 до 10 минут. Обработка детали на станке занимает от 6 до 8 минут. Требуется разработать GPSSмодель для имитации обработки 100 деталей.

Составим GPSSмодель.

*имитирует поступление деталей

*имитирует поступление детали в очередь

*имитирует поступление детали на станок

*имитирует выход детали из накопителя

*имитирует задержку детали при обработке на станке

*имитирует выход детали из станка

*имитирует окончание моделирования

Скомпилируем модель.

В GPSS World выбираем Command> Create Simulation (Рисунок 1.1)

(Рисунок 1.1)

Установим начальное значение счётчика завершений и запустим модель. Для запуска модели в GPSS World выбираем Command > Start, указываем 100 и нажимаем OK(Рисунок 1.2)

(Рисунок 1.2)

По окончании моделирования получаем файл-отчёт с результатами моделирования (Рисунок 1.3)

(Рисунок 1.3)

Результат моделирования.

100 – количество обработанных деталей.

0,91 (91%) – Коэффициент загрузки станка.

0,912 – Среднее время ожидания детали в накопителе перед станком.

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

0,119 – Средняя длина очереди в накопителе.

46 – Количество деталей, которым не понадобилось ожидание в накопителе. (В момент их поступления станок оказывался свободным)

64 – Количество деталей, которым понадобилось ожидание в накопителе.

1,689 – среднее время ожидания детали в накопителе.

6,997 – среднее время обработки детали на станке.

7,909 – (6,997 + 0,912 = 7,909) время от поступления детали в накопитель до окончания её обработки на станке)

Недостатком моделируемой системы является перегрузка станка (91%), норма 75-85%.

Моделирование многоканальных систем массового обслуживания.

Пусть в условиях, указанных в Задании 1 , используются два одинаковых станка. Перед станками имеется общий накопитель. Деталь, поступившая на обработку, направляется в станок, оказавшийся в этот момент свободным. Если оба станка заняты, то деталь направляется в накопитель. Как только какой-либо из станков освобождается, деталь из накопителя направляется на это станок.

STORAGE – объявление многоканального устройства.

ENTER – вход транзакта в многоканальное устройство.

LEAVE – выход транзакта из многоканального устройства.

Составим GPSS модель.

STANOK STORAGE 2

Скомпилируем модель.

В GPSS World выбираем Command > Create Simulation (Рисунок 2.1)

(Рисунок 2.1)

Установим начальное значение счётчика завершений и запустим модель.

Для запуска модели в GPSS Worldвыбираем Command > Start, указываем 100 и нажимаем OK (Рисунок 2.2)

(Рисунок 2.2)

По окончании моделирования получаем файл-отчёт с результатами моделирования (Рисунок 2.3)

(Рисунок 2.3)

Результат моделирования.

0,910 – Среднее количество занятых каналов.

0.455 (45,5%) — Коэффициент загрузки станков.

В моделируемой системе, группа из двух станков явно недогружена.

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

GENERATE – имитирует поступление транзактов в единицу времени (мин).

Написание программного кода для реализации заданной модели в программе GPSS World.

STANOK STORAGE 2 ; генерация 2-х станков

GENERATE 7.5,2.5 ; генерация детали 1-ого типа

ASSIGN 1,1 ; присваивание детали 1-ого типа значения 1

TRANSFER ,OBR ; переход транзакта на метку OBR

GENERATE 10,2 ; генерация детали 2-ого типа

ASSIGN 1,2 ; присваивание детали 2-ого типа значения 2

OBR QUEUE OCH ; имитация постановки детали в очередь

ENTER STANOK ; имитация подачи детали на станок

DEPART OCH ; выход детали из очереди

TEST E P1,1,TIP2 ; проверка присвоенного значения детали. Если *значение равно 1, то транзакт переходит к следующей операции. Если не *равно, то транзакт переходит на метку TIP2

Читайте также:
Что это программа платоновского

ADVANCE 7,1 ; имитация обработки детали 1-ого типа

TRANSFER ,KONOBR ; переход транзакта на метку KONOBR

TIP2 ADVANCE 6,0 ; имитация обработки детали 2-ого типа

KONOBR LEAVE STANOK ; выход детали со станка.

TERMINATE ; имитирует окончание моделирование обработки детали

GENERATE 480 ; задается время работы станков. 8 часовой рабочий день

TERMINATE 1 ; имитирует окончание моделирование детали и её удаление из модели

Моделирование систем с заявками разных типов.

На двух одинаковых станках обрабатываются детали двух типов (деталь любого типа может обрабатываться на любом из станков). Детали типа один поступают с интервалом от 5 до 10 минут, типа два с интервалом от 8 до 12 минут. Обработка детали типа один занимает от 6 до 8 минут, детали типа два ровно 6 минут. Требуется разработать GPSSмодель для анализа работы станков в течении 8 часов.

Один из способов моделирования систем массового обслуживания с заявками разных типов – использование параметров (оператор ASSIGN) и управление движением транзактов в модели с помощью операторов TESTи TRANSFER.

Параметр транзакта представляет собой числовую величину, отражающую некоторую характеристику объекта, имитируемого транзактом. Изменение значения параметра выполняется оператором ASSIGN A,B

где A – номер параметра (1,2,3,4,5 и тд) и знак + или – (необязательно)

B – числовая величина, на которую изменяется параметр.

Простейший оператор для управления перемещением транзактов в модели оператор TRANSFER:

Для проверки условий используется оператор TEST.

TEST операция A,B,C

где операция — обозначение операции сравнения:

LE – меньше или равно

GE – больше или равно

A,B – некоторые величины, для которых выполняется операция сравнения (величина A сравнивается с величиной B)

C – метка оператора, на который передается транзакт, если результат операции сравнения величин A и B «ложь». Если результат сравнения «истина», то транзакт передаётся на оператор, следующий за оператором TEST.

Если операнд C не указан, то в случае невыполнения условия, заданного операцией сравнения, транзакт задерживается в операторе TESTдо тех пор, пока условие не будет выполняться.

Составим GPSSмодель.

KONOBR LEAVE STANOK

Скомпилируем модель.

В GPSS World выбираем Command > Create Simulation (Рисунок 3.1)

(Рисунок 3.1)

Установим начальное значение счётчика завершений и запустим модель.

Для запуска модели в GPSS Worldвыбираем Command > Start, указываем 1 и нажимаем OK (Рисунок 3.2)

(Рисунок 3.2)

По окончании моделирования получаем файл-отчёт с результатами моделирования (Рисунок 3.3)

(Рисунок 3.3)

Моделирование систем с заданным соотношением заявок двух типов.

На двух одинаковых станках обрабатываются детали двух типов (деталь любого типа может обрабатываться на любом из станков). Детали типа один поступают с интервалом от 5 до 10 минут, типа два с интервалом от 8 до 12 минут. Обработка детали на станке состоит из двух операций. Первая операция для деталей типа один занимает от 6 до 8 минут, для деталей типа два – ровно 6 минут.

Вторая операция занимает от 2 до 4 минут, независимо от типа детали. При первой операции в 5% случаев допускается брак, в этих случаях вторая операция не требуется. Все детали, кроме бракованных, поступают на упаковочную машину. Упаковка детали любого типа занимает ровно 36 минуты. Требуется разработать GPSSмодель для анализа работы участка в течении восьми часов.

Во многих практических задачах требуется имитировать системы, в которых некоторое событие происходит в X % случаев и не происходит в 100 X % случаев. Для имитации таких явлений используется оператор TRANSFER

где A – трёхзначное число (NNN)

B – метка оператора, на который передаются 100-NN,N процентов транзактов.

C – метка оператора, на который передаются NN,N процентов транзактов.

Например, оператор TRANSFER 300,MET1,MET5 означает что в 70% случаев транзакт должен передаваться на оператор с меткой MET1, а в 30% случаев на оператор MET5.

Если операнд B не задан, то в 100-NN,N% транзактов передаются на оператор, следующий за оператором TRANSFER, а NN,N% на оператор с метко й C.

Составим GPSS модель.

Скомпилируем модель.

Установим начальное значение счётчика завершений и запустим модель.

Отчет работы модели

Оператор TRANSFER 050,,BRAK имитирует разделение деталей на годные и бракованные. Транзакты, имитирующие годные детали (95%), поступают на следующий оператор ADVANCE 3,1 то есть на имитацию второй операции.

В операторе ASSIGN2,0 второму параметру этих транзактов присваивается значение 0. Затем с помощью оператора TRANSFER, KONOBR они передаются на оператор LEAVE STANOK, то есть имитируется окончание обработки детали. Пять процентов из оператора TRANSFER050,,BRAKпередаются на метку BRAK. Эти транзакты имитируют бракованные детали, поэтому они не передаются на оператор ADVANCE 3,1 имитирующий вторую операцию. В операторе ASSIGN 2,1 второму параметру этих транзактов присваивается значение 1. Таким образом, у всех транзактов, имитирующих годные детали, второй параметр равен нулю, а у транзактов имитирующих бракованные детали – единице.

В операторе TEST E P2,0,KONпроверяется, чему равен второй параметр транзакта. Если P2=0, то он пропускается на следующий оператор. Группа операторов QUEUE OCH2, RELEASE UPAK имитирует работу упаковочной машины, то есть упаковку детали.

Простейшие вычисления в GPSS модели.

Пусть в модели, разработанной для задачи 5, требуется предусмотреть подсчёт количества выпущенных годных деталей каждого типа, а также общую выручку от выпуска всех деталей. Годные детали типа 1 продаются по 8 денежных единиц, типа 2 – по 10 денежных единиц, бракованные – по 2 денежные единицы.

Для сохранения применяется оператор SAVEVALUE A,B

где A – имя сохраняемой величины и знак + или минус (необязательно)

B – величина, на которую изменяется параметр.

Если после операнда A указан знак «плюс» или «минус», то число, указанное в операнде B, прибавляется к указанной сохраняемой величине (или вычитается из неё).

Составим GPSS модель.

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru