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

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

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

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

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

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

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

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




Часть 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.



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

Вы можете купить за $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.

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



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

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

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

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

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



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



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



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



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

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

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