GPSS¶
GPSS (General Purpose Simulation System) — язык программирования и система имитационного моделирования, предназначенная для построения дискретно-событийных моделей сложных систем. Разработан в начале 1960-х годов Джеффри Гордоном (IBM) для моделирования процессов в системах массового обслуживания, производственных линиях, транспортных потоках и компьютерных сетях. Отличается блочно-ориентированным синтаксисом, где каждый блок соответствует определенному действию или состоянию объекта (транзакта).
¶История
Разработка GPSS началась в 1961 году в исследовательском центре IBM в Йорктаун-Хайтс (штат Нью-Йорк). Первая версия, GPSS I, была выпущена в 1961 году и работала на мейнфреймах IBM 7090. В 1965 году вышла GPSS II, которая расширила возможности моделирования очередей и статистического анализа. Версия GPSS III (1967) добавила поддержку многопроцессорных систем и улучшенную визуализацию результатов.
Наибольшее распространение получила версия GPSS/360 (1969), разработанная для операционной системы OS/360. Она стала стандартом для моделирования в промышленности и академических кругах. В 1970-е годы появились коммерческие реализации, такие как GPSS/H (Wolverine Software) и GPSS/PC (Minuteman Software), адаптированные для персональных компьютеров. В 1990-е годы была создана версия GPSS World (Minuteman Software), которая интегрировала графический интерфейс и поддержку Windows.
В России GPSS получил распространение в 1970–1980-е годы в рамках советских программ по автоматизации проектирования и управления производством. В 1990-е годы появились русифицированные версии, а также отечественные разработки, такие как GPSS Studio (Россия, 2000-е), которые адаптировали язык для образовательных и инженерных задач.
¶Классификация
GPSS относится к классу дискретно-событийных языков моделирования (DES). В отличие от непрерывных моделей, где время течет непрерывно, в GPSS события происходят в дискретные моменты времени, а состояние системы изменяется скачкообразно. По способу описания модели GPSS является блочно-ориентированным языком: модель строится из последовательности блоков, каждый из которых выполняет определенную операцию над транзактами (объектами, перемещающимися по модели).
¶Основные типы моделей GPSS
- Системы массового обслуживания (СМО) — моделирование очередей, серверов, каналов обслуживания.
- Производственные процессы — конвейеры, склады, логистика.
- Транспортные системы — движение автомобилей, поездов, самолетов.
- Компьютерные сети — передача данных, пакетная коммутация, маршрутизация.
- Бизнес-процессы — документооборот, обработка заказов.
¶Устройство и синтаксис
¶Транзакты
Основной единицей модели является транзакт — динамический объект, который «путешествует» по блокам модели. Транзакты могут иметь атрибуты (параметры), например, номер, приоритет, время создания. Создание транзактов осуществляется блоком GENERATE, уничтожение — блоком TERMINATE.
¶Блоки
Каждый блок выполняет одно из следующих действий:
- Создание/уничтожение —
GENERATE,TERMINATE. - Задержка —
ADVANCE(имитация времени обслуживания или обработки). - Очередь —
QUEUE,DEPART(учет длины очереди). - Захват ресурса —
SEIZE,RELEASE(занятие и освобождение устройства). - Условные переходы —
TRANSFER(направление транзакта в зависимости от условия). - Статистика —
TABULATE,COUNT(сбор и вывод данных).
Пример простейшей модели (на GPSS World): `` GENERATE 10,5 ; создание транзактов с интервалом 10±5 QUEUE Q1 ; вход в очередь Q1 SEIZE SERVER1 ; захват сервера DEPART Q1 ; выход из очереди ADVANCE 20,10 ; обслуживание длительностью 20±10 RELEASE SERVER1 ; освобождение сервера TERMINATE 1 ; уничтожение транзакта ``
¶Системные переменные и функции
GPSS предоставляет встроенные переменные для доступа к состоянию модели:
C1— текущее модельное время.N$Q1— текущая длина очереди Q1.M$SERVER1— состояние устройства (0 — свободно, 1 — занято).X$VAR— значение пользовательской переменной.
Функции (например, экспоненциальное распределение) задаются с помощью блока FUNCTION.
¶Применение
¶Промышленность и логистика
GPSS активно используется для оптимизации производственных линий. Например, моделирование работы конвейера позволяет выявить узкие места, рассчитать необходимую производительность оборудования и минимизировать время простоя. В логистике GPSS применяют для анализа складских операций, маршрутов доставки и загрузки транспортных средств.
¶Телекоммуникации и вычислительные системы
Моделирование сетей связи (например, трафика в колл-центрах или пакетной передачи данных) позволяет оценить пропускную способность, задержки и вероятность потерь пакетов. В компьютерных системах GPSS используют для анализа производительности процессоров, систем ввода-вывода и алгоритмов планирования задач.
¶Образование
GPSS является одним из основных инструментов для обучения имитационному моделированию в технических вузах. В России курс «Моделирование систем» часто включает практические занятия на GPSS World или GPSS Studio. Простота синтаксиса позволяет студентам быстро создавать работающие модели, не углубляясь в детали программирования.
¶Реализации
¶GPSS World (Minuteman Software)
Коммерческая версия для Windows (с 1990-х годов). Включает графический редактор, визуализацию анимации, интеграцию с Excel и базами данных. Поддерживает до 10 000 транзактов одновременно. Распространяется по лицензии, цена — около $500 за однопользовательскую версию.
¶GPSS/H (Wolverine Software)
Версия для мейнфреймов и Unix-систем. Отличается высокой производительностью и поддержкой больших моделей (до 100 000 транзактов). Используется в аэрокосмической и оборонной промышленности США.
¶GPSS Studio (Россия)
Отечественная разработка (2005 г., компания «Эксперт-Системы»). Полностью русифицирована, включает блоки для моделирования случайных процессов, очередей и ресурсов. Распространяется бесплатно для образовательных целей. Используется в МГТУ им. Н.Э. Баумана, МФТИ, НИУ ВШЭ.
¶GPSS (открытые реализации)
Существуют открытые аналоги, например, GPSS Java (GPL) и GPSS++ (C++), которые воспроизводят синтаксис и функциональность оригинального языка. Однако они не имеют полной совместимости с коммерческими версиями.
¶Критика и ограничения
GPSS критикуется за:
- Ограниченную гибкость — сложно моделировать системы с нестандартными правилами поведения (например, с обратными связями или динамическим изменением структуры).
- Отсутствие поддержки непрерывных процессов — GPSS не подходит для моделирования физических процессов (теплообмен, гидравлика) или систем с плавным изменением состояния.
- Устаревший интерфейс — графические версии (GPSS World) имеют ограниченные возможности визуализации по сравнению с современными средами (AnyLogic, Simulink).
- Сложность отладки — ошибки в модели (например, бесконечные циклы) могут приводить к зависанию симуляции без диагностики.
Тем не менее, GPSS остается популярным в образовании и для быстрого прототипирования систем массового обслуживания благодаря простоте и наглядности блочного подхода.
¶Интересные факты
- Первая модель на GPSS была создана для имитации работы телефонной станции.
- В 1970-е годы GPSS использовался для моделирования движения поездов в метрополитене Нью-Йорка.
- Версия GPSS/360 была написана на ассемблере IBM System/360 и занимала около 40 КБ памяти.
- В 1980-е годы GPSS/PC (для IBM PC) распространялся на дискетах и требовал 256 КБ ОЗУ.
- В России GPSS Studio используется в программе «Цифровая экономика» для моделирования логистических цепочек.
¶Источники
- Гордон Д. «Системы моделирования GPSS» (1975).
- Шрайбер Т. Дж. «Моделирование на GPSS» (1991).
- Minuteman Software. «GPSS World Reference Manual» (2006).
- Клейнрок Л. «Теория массового обслуживания» (1975).
- Учебное пособие «Моделирование систем на GPSS» (МГТУ им. Н.Э. Баумана, 2018).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


