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

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

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

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

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

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

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

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

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

7-8wizu7-fp6d8tfdiygniltfmo.png

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


Часть I: Введение
Часть II: Различные реализации GPSS
Часть III: запускаем GPSS/PC с помощью эмулятора Dos на смартфоне
Часть IV: Простейшая модель в GPSS World

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

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


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

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

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

Наш первый экземпляр — Object GPSS & GPSS-Future Systems.

99wdk8ztoyyxuia5fgwecj5j_sg.png

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

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


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

-ww2ajcccigyfixfcavdevvvvsm.png

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

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

galpzyy11m0b3n6u0pychztpk1u.png

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

zbve_abcqngpskua_kb1eojyoss.png

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

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

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

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

0dibwhcvsk_qxtvwzwx8ethppey.png

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

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

g0rnxpd37flobbe4d8teijgw6q0.png

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

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

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

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


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

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

mlnhxdlkda2k7qjvkentmzp-elc.png

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

as4kcwu6epct0koakebd-dmlxam.png

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

ze6mubwvreoumobpdjjm6w82ylm.png

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

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

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

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

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

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

5snj8ofxmemq6c43q_th6fg-89c.png

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

ayv2rpmyffdn8h3xzsiz0bg7vca.png

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

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

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

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

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

n3x8ugfj0v8wk_gaafl1pnifurm.png

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

3tgz7fccp7nbky6ldvcbbf4qd3q.png

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

r1b4hcrbenumc8y7sizpybfcmls.png

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

wjt63yzx2d2eslae8d-cauhgdos.png

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


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

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

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

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

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

fbohqs8zhzshcrzvc6jah5knhz0.png

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

fy5iv2bnaoposun9xfc-03mdm6o.png

Зато сайт 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.


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

d_bq0ocutheqdr86jgk1qskxzb8.png

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

Единицы времени будем интерпретировать как минуты.

На всякий случай напомню вам значения блоков:

GENERATE 4,1 — создает объект в системе. В нашем случае это человек идущий к ларьку чтобы встать в очередь. Люди приходят к ларьку один раз в 4 минуты с отклонением в диапазоне от -1 до +1 минуты;
QUEUE  — человек встал в очередь в ларек;
SEIZE — человек подошел к окошку ларька;
DEPART — человек сунул голову в окошко ларька, а значит из очереди его уже необходимо вычеркнуть;
ADVANCE 5,2 — время на выбор товара составляет 5 ± 2 минуты
RELEASE — человек освободил продавщицу (продавца);
TERMINATE 1 — человек покинул очередь и бежит домой с дефицитным товаром.

Пришло время начать симуляцию.

rdr11qo3ahuv3a9a9vqazxd8puu.png

Выбираем команду START

oqwabdgyl2drsygx-ugjfu7klmo.png

Введем значение 100. В данном случае это значит, что как только мы «отоварим» 100 покупателей наша симуляция завершится.

zp_oyhrl0cxtckgkjc5y1jnehba.png

По завершении симуляции появится окно с отчетом.

yie2l8g2p64u2xim7hch3hlthnc.png

Как видим среднее время пребывания одного человека в очереди составило 57 с лишним минут, очередь в среднем состоит из 14 человек, а обслуживание 100 покупателей заняло почти 9 часов (517 минут)

На этом мне бы хотелось закончить.

P.S. Если тематика моделирования в среде GPSS-World будет вам интересна, то я набросаю еще пару статей, в которых мы рассмотрим более сложные и интересные задачи.

© Habrahabr.ru