Кудашов Кирилл Валерьевич
kirill@gpss.ru
GPSS World – новый мир в системе имитационного моделирования

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

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

I. Новые функциональные возможности

1) Архитектура и интерфейс

GPSS World является приложением Windows и использует все преимущества этой ОС, графического интерфейса пользователя и архитектуры «документ-вид». Это позволяет реализовать:GPSS World
• Многозадачность;
• Использование виртуальной памяти (благодаря использованию механизма виртуальной памяти модели могут занимать до 1 Гб);
• Интерактивность (удобное взаимодействие с выполняющимися процессами моделирования);
• Графический интерфейс пользователя (полноэкранный текстовый редактор, работа с несколькими объектами (текст модели, журнал, отчет и т.д.));
• Визуализация (применение наглядных графических окон для отображения информации, стилизованная анимация и возможность использования внешних анимационных пакетов (пост-процессорных и оперативных)).

Представление данных в GPSS WorldВсе вышеперечисленное обеспечивает пользователя удобным инструментом для построения моделей, их быстрой и эффективной отладки и анализа выходных данных.

Кроме этого, GPSS World – это:
• Высокопроизводительный транслятор;
• Возможность ввода и вывода данных в процессе моделирования;
• Сохранение запущенных процессов моделирования с возможностью последующей загрузки и продолжения выполнения;
• Пакетный режим с контролируемой процедурой выхода из приложения.

2) Взаимодействие с другими приложениями

Отдельно хочу остановиться на возможности взаимодействия GPSS World с другими приложениями. Эти приложения можно разделить на 2 класса:
1. Различные пре- и пост-процессоры;
2. Приложения, выполняющие оперативные действия в процессе моделирования, - обработка данных, оперативная анимация и т.д.

Для взаимодействия с другими приложениями GPSS World предоставляет 2 механизма. 

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

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

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

II. Особенности языка

GPSS World является наиболее современной реализацией языка GPSS, дополненной вспомогательным языком PLUS. GPSS World включает в себя 53 типа блоков и 25 команд, большое количество системных числовых атрибутов. Кроме того, 12 типов операторов составляют язык PLUS – Programming Language Under Simulation. Эффективность PLUS во многом обеспечивается большой библиотекой процедур.Вывод графиков в GPSS World

GPSS World является объектно-ориентированным языком. В совокупность его объектов входят объекты «Модель», «Процесс моделирования», «Отчет» и текстовые объекты. 
• Объект «Модель» - главным образом содержит операторы модели, а также набор встроенных настроек. Кроме того, включает в себя закладки и циркулярный список синтаксических ошибок.
• Объект «Процесс моделирования» создаются при трансляции операторов объекта «Модель». После этого для изменения его состояния применяются команды. Эти команды могут входить в объект «Модель» или передаваться объекту «Процесс моделирования» в интерактивном режиме.
• Объект «Отчет». Одной из самых сильных сторон GPSS всегда были стандартные отчеты. По существу без усилий со стороны разработчика модели по завершению моделирования автоматически создается отчет обо всех объектах GPSS, содержащихся в модели.
• Текстовый объект – это способ представления обычного текстового файла в GPSS World. В основном они используются совместно с командами INCLUDE для подключения некоторого набора операторов, используемого в различных моделях. Кроме того, закрепив команду INCLUDE за горячей клавишей, можно интерактивно передавать объекту «Процесс моделирования» целые списки управляющих команд.

В языке GPSS было сделано большое количество изменений. А именно:
• Новые команды, блоки и СЧА;
• Полиморфные типы данных;
• Отсутствие нумерации строк;
• Многомерные матрицы (до 6 измерений);
• Отсутствие автоматического округления промежуточных результатов;
• Вспомогательный язык PLUS;
• Процедура дисперсионного анализа ANOVA.

На самых важных изменениях остановимся подробнее.

1) Полиморфные типы данных 

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

2) Новые команды 

• CONDUCT – Выполнение экспериментов;
• EXIT – Выход из GPSS World с возможностью сохранения;
• INTEGRATE – Автоматическое вычисление интеграла для переменной пользователя;
• INCLUDE – Подключение к модели дополнительных файлов.

3) Новые блоки 

• ADOPT – Изменение номера семейства;
• DISPLACE – Перемещение транзакта;
• INTEGRATION – Включение/выключение интегрирования переменной;
• PLUS – Вычисление PLUS-выражения;
• OPEN, CLOSE, READ, WRITE, SEEK – Блоки управления потоками данных.

4) PLUS 

Язык PLUS является встроенным в GPSS World языком программирования и предназначен для удовлетворения потребностей пользователей в управлении данными, особых вычислительных алгоритмах и других операциях, которые не могут быть обеспечены средствами операторов и команд GPSS. Новый блок PLUS позволяет вызывать PLUS-процедуру, которая выполняется как любой другой блок GPSS. Это позволяет создавать собственные блоки с очень сложной структурой. Кроме того, выражения, записанные с помощью синтаксиса языка PLUS (так называемые PLUS-выражения) могут использоваться в качестве операндов блоков и команд. И выражения могут содержать вызовы встроенных процедур или процедур пользователя.

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

• Оператор присваивания;
• Вызов процедуры;
• BEGIN;
• DO…WHILE;
• END;
• EXPERIMENT;
• GOTO;
• IF…THEN…ELSE;
• PROCEDURE;
• RETURN;
• TEMPORARY.

На некоторых операторах остановлюсь подробнее.

EXPERIMENT – Этот оператор предназначен для определения специальной процедуры пользователя, которая управляет несколькими повторяющимися процессами моделирования. Другими словами, оператор EXPERIMENT применяется для проведения экспериментов. Экспериментам посвящен отдельный раздел моего доклада.
PROCEDURE – Оператор PROCEDURE используется для определения процедур пользователя. Процедуры обладают глобальной областью действия, т.е. могут вызываться в любом месте модели.
TEMPORARY – Это оператор, предназначенный для создания временных переменных пользователя и матриц, существующих только во время выполнения процедуры. По завершении работы процедуры все временные переменные и матрицы уничтожаются.

5) Встроенная библиотека процедур 

GPSS World содержит большую встроенную библиотеку PLUS-процедур, которые обеспечивают работу с потоками данных, различные манипуляции со строками, математические операции и позволяют задавать вероятностные распределения.
В библиотеку процедур GPSS World входят:
• служебные процедуры (DoCommand, ANOVA, Exit);
• математические процедуры;
• процедуры запроса состояния транзактов;
• процедуры обработки строк;
• процедуры управления потоками данных;
• процедуры динамического вызова;
• вероятностные распределения.

6) Проведение экспериментов и дисперсионный анализ 

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

Для быстрого задания и проведения отсеивающих и оптимизирующих экспериментов GPSS World предоставляет автоматические генераторы этих экспериментов. Они позволяют быстро определить условия проведения эксперимента с помощью диалоговых окон. 
Завершающий шаг любого эксперимента – это, как правило, анализ результатов. При использовании процедуры дисперсионного анализа ANOVA большая часть работы выполняется без участия пользователя. Она позволяет осуществлять многофакторный дисперсионный анализ, рассматривающий до 6 факторов и трехфакторные произведения всех основных факторов.

III. Совместимость с GPSS/PC 

GPSS World имеет много отличий от GPSS/PC. GPSS World основывается на идее, что текстовый объект «Модель» создается и/или модифицируется, а затем транслируется с целью создания объекта «Процесс моделирования». Этим он отличается от GPSS/PC, в котором используются понятия файла программы и процесса моделирования. 
Естественно, GPSS World использует все преимущества ОС Windows и этим выгодно отличается от GPSS/PC. Особенно это касается отладки модели, обнаружения и исправления ошибок, т.к. GPSS World представляет собой полноэкранный текстовый редактор. Кроме того, GPSS World представляет собой транслятор моделей, поэтому выполнение процесса моделирования происходит значительно быстрее.
Другие отличия GPSS World от GPSS/PC:
• объектно-ориентированная архитектура;
• отсутствие нумерации строк;
• вещественные значения модельного времени;
• значения системных числовых атрибутов (СЧА) в зависимости от конкретного типа могут быть целого, вещественного или символьного типа;
• отсутствие округления промежуточных результатов;
• PLUS-операторы могут включать в себя любое количество текстовых строк. Хотя операторы GPSS, кроме списков данных функции, должны находиться на одной текстовой строке, максимальная длина которой теперь составляет 250 символов;
• математические выражения, заключённые в скобки, могут теперь использоваться практически везде, где используются СЧА;
• введен новый системный числовой атрибут A1, который возвращает номер семейства активного транзакта;
• блок HELP больше не используется и заменен блоком PLUS, который поддерживает вложение в модель законченных процедур, а также блоками потоков данных, которые поддерживают связь с внешними файлами и программами;
• управляющие операторы MICROWINDOW, EVENTS, GROUPS, WINDOW, USERCHAINS были заменены соответствующими графическими окнами.

GPSS World совместим с GPSS/PC и обычно выдаёт результаты, которые статистически неотличимы от результатов, выдаваемых GPSS/PC. Этого можно добиться, сделав ряд небольших изменений в модели. 
Кроме того, в GPSS World существует специальный режим, называемый режимом совместимости с GPSS/PC. Несмотря на все отличия GPSS World от GPSS/PC в режиме совместимости большинство моделей GPSS/PC с небольшими изменениями могут давать идентичные результаты при выполнении под управлением GPSS World. Методика выполнения моделей GPSS/PC в GPSS World подробно описывается в «Руководстве пользователя по GPSS World».
Таким образом, GPSS World предоставляет более широкие возможности при полной совместимости со своим предшественником – GPSS/PC.