лях экономики, разрабатываемых на ВЦ РАН под руководством академика РАН А.А. Петрова [35].
Во всех четырёх версиях ИМ симулятор-движок продвигает вперёд «не совсем мгновенный» текущий временной срез системы. Этот срез, а точнее – временной слой, имеет минимальную «толщину», необходимую для правильного определения ближайших предстоящих изменений и для правильного рекуррентного пересчёта показателей, требующего помнить моменты последних произошедших изменений. Минимальная толщина временного слоя системы, находящегося в поле зрения симулятора, позволяет ему при ограниченных ресурсах компьютера перемещаться в модельном времени сколь угодно далеко, безошибочно, за секунды продвигая вперёд это своё поле зрения вдоль миллионов фактов отслеживаемой им причинно-следственной цепи и достигая заданных ЛПР рубежей.
Известными достоинствами ИМ являются гибкость и возможность моделирования систем на любом уровне детализации или абстракции. Непосредственно в ходе имитационного эксперимента можно вводить дополнительные данные, конструировать новые информативные показатели, наблюдать графики изменения показателей и переменных, использовать видео или анимацию в реальном масштабе времени и качественно (не количественно) оценивать процессы на основании только наблюдения анимационной картины. Эти достоинства ИМ позволяют эффективно использовать его и для решения теоретических проблем, в симбиозе с аналитическим моделированием. При решении практических проблем управления и проектирования в последние годы в России (вслед за США и Европой) ИМ всё более широко используется как системообразующее и наиболее ценное звено процессов принятия решений [36].
7.Новые возможности GPSS
7.1.Исходные положения
Практические учебные занятия по дисциплине «Моделирование систем» проводятся с использованием языка имитационного моделирования GPSS [8, 13, 37–40] на основе учебного пособия [15]. В этом пособии даётся введение в теоретические основы ИМ, приводятся необходимые примеры разработки программ и моделирования конкретных систем, а также сообщаются сведения справочного характера, достаточные для самостоятельного использования GPSS в других задачах моделирования. Имеются электронные версии этого пособия, позволяющие во время занятий обеспечить необходимым методическим материалом каждого учащегося, включая тех, кто использует дистанционную форму обучения.
Однако со времени издания пособия [15] вышло множество новых версий системы моделирования GPSS. В настоящее время наиболее распространённой русскоязычной версией является GPSS World – современная версия GPSS для персональных ЭВМ и ОС Windows. В связи с этим возникла необходимость привести основные отличия GPSS World от системы GPSS/PC, описанной в [15]. Эти отличия перечисляются ниже с использованием терминологии, известной
46
пользователям GPSS/PC. Приведенного здесь материала достаточно для перехода в учебном процессе к применению GPSS World, поскольку концепция языка GPSS в целом не изменилась. Если читателям потребуется разработка сложных моделей не учебного, а производственного или научно-исследователь-ского назначения, рекомендуется использовать учебные пособия [37] и [38], в которых доступно и полно описываются все теоретические и практические аспекты использования GPSS World, или фирменную документацию [39, 40].
7.2. Общие сведения о GPSS World
GPSS (General Purpose Simulation System) – общецелевая система модели-
рования сложных систем, разработанная Джеффри Гордоном в 1960 г. в компании IBM. Первоначально разрабатывалась и поддерживалась компанией IBM.
Внастоящее время имеются версии различных разработчиков. В Интернете обширную информацию о системе предоставляют следующие русскоязычные источники:
http://www.gpss.ru – портал GPSS.RU, посвященный имитационному моделированию с использованием GPSS и других средств;
http://gpss-forum.narod.ru – сайт Юрия Носкова о GPSS.
Предлагаемое ниже описание новых возможностей GPSS представляет собой информацию, полученную с помощью этих источников и адаптированную к учебным планам специальности.
Система GPSS World, разработанная компанией Minuteman Software (США), – это мощная среда компьютерного моделирования общего назначения, разработанная для профессионалов в области моделирования. Она охватывает области как дискретного, так и непрерывного компьютерного моделирования. GPSS World – это прямое развитие языка моделирования GPSS/РС, одной из первых реализаций GPSS для персональных компьютеров.
Использование механизма виртуальной памяти позволяет моделям GPSS World реально достигать размера миллиарда байт. Вытесняющая многозадачность и многопоточность обеспечивают высокую скорость реакции на управляющие воздействия и дают возможность GPSS World одновременно выполнять множество задач.
Возможность перехода из дискретной фазы моделирования в непрерывную фазу и обратно обеспечивает тесную связь с непрерывным моделированием.
Внепрерывной фазе могут быть установлены пороговые значения, управляющие созданием транзактов в дискретной фазе.
На уровне интерфейса GPSS World представляет собой реализацию архитектуры «документ-вид», общей для всех приложений операционной системы Windows. Объекты могут быть открыты в нескольких окнах, изменены и сохранены на постоянных носителях информации. Реализовано привычное меню главного окна с блокировкой недоступных команд меню.
GPSS World сохраняет и развивает высокий уровень интерактивности во время процесса моделирования, достигнутый в GPSS/PC.
GPSS World отличается высоким уровнем визуализации выполняющегося процесса моделирования. Для наблюдения и взаимодействия с процессом моделирования используются двадцать различных окон, соответствующих боль-
47
шей части объектов GPSS. Для получения, сохранения и печати визуального представления состояния процесса моделирования не требуется дополнительных усилий, кроме операций с окнами. В GPSS World встроена функция комплексной стилизованной анимации. Эта функция обеспечивается большим количеством окон, которые динамически отображают объекты GPSS в процессе моделирования по мере изменения их состояния. Для создания такой анимации не требуется дополнительных усилий. Графические изображения могут быть сохранены для включения в отчеты и/или распечатаны.
GPSS World является версией GPSS, улучшенной встроенным языком программирования PLUS – языком программирования низкого уровня моделирования. Эта версия GPSS включает в себя 53 типа блоков и 25 команд, а также более чем 35 системных числовых атрибутов, которые обеспечивают текущие переменные состояния, доступные в любом месте модели.
PLUS – это небольшой, но эффективный процедурный язык программирования, созданный из 12 типов операторов. Его эффективность во многом обеспечивается большой библиотекой процедур, содержащей математические функции и функции манипуляции со строками и обеспечивающей богатый выбор вероятностных распределений для генерации случайных величин.
ВGPSS World модель определяется как последовательность операторов. Это операторы GPSS, операторы PLUS-процедур или операторы PLUS-экспе- риментов. Все операторы GPSS (за исключением списков данных функции) должны состоять из одной текстовой строки длиной до 250 символов. Любой оператор GPSS может входить в модель и сохраняться в файле модели или может быть передан процессу моделирования в интерактивном режиме.
7.3.Основные нововведения
Вязыке моделирования был сделан ряд изменений. Было исключено понятие управляющих операторов. Теперь все операторы, не являющиеся операторами блоков GPSS, называются просто командами. Номера строк игнорируются
вGPSS World. Если же они используются, то должны начинаться в первом столбце текстовой строки.
Также в GPSS World не применяется автоматическое округление. Теперь необходимо явно использовать процедуру Int() или какой-либо другой метод, если требуется округлять промежуточные числовые результаты. Это справедливо для всех выражений, а также для операторов VARIABLE и BVARIABLE. Теперь значения, возвращаемые системными числовыми атрибутами (СЧА),
взависимости от конкретного СЧА могут быть целого, вещественного или строчного типа. Даже СЧА, возвращающие значения в тысячных долях, выполняют это с помощью вещественных чисел двойной точности, лежащих в интервале от 0 до 1000 включительно. «Старые» округления и целочисленные СЧА могут быть использованы в коммерческой версии GPSS World в специальном режиме – режиме совместимости с GPSS/PC.
PLUS-операторы, в отличие от операторов GPSS, могут занимать любое количество текстовых строк. Математические выражения, заключенные в скобки, теперь могут использоваться почти везде, где используются СЧА. Выраже-
48
ния являются неотъемлемой частью языка PLUS, но они также используются для расширения возможностей операндов в операторах GPSS. Если выражения используются в операндах операторов GPSS, то они должны быть заключены в скобки. Также были добавлены новые типы операторов.
7.4. Новые операторы и типы данных GPSS
В GPSS World добавлены следующие новые блоки:
–ADOPT – изменяет номер семейства;
–DISPLACE – меняет транзакту следующий по порядку блок в последовательности блоков;
–PLUS – вычисляет значение PLUS-выражения и сохраняет результат
впараметре;
–INTEGRATION – включает/выключает интегрирование переменной пользователя;
–OPEN – инициализирует поток данных;
–CLOSE – закрывает поток данных;
–READ – считывает следующую строку данных из потока данных;
–WRITE – передает значение величины в поток данных;
–SEEK – изменяет указатель строки в потоке данных.
Добавлены операторы, обеспечивающие управление интегрированием непрерывных переменных, применение составных файлов модели и библиотек процедур, а также вызов PLUS-экспериментов:
–CONDUCT – выполняет зарегистрированный PLUS-эксперимент;
–EXIT – завершает сеанс работы с GPSS World, при этом может сохранять объекты;
–INTEGRATE – автоматически вычисляет интеграл для переменной пользователя;
–INCLUDE – считывает и транслирует дополнительные файлы модели. Новый системный числовой атрибут А1 возвращает семейство активного
транзакта. Его удобно использовать совместно с новым блоком ADOPT, который позволяет изменять семейство активного транзакта.
Переменные могут принимать значения одного из четырех типов. Переменные, управляемые пользователем, такие как ячейки, элементы матриц, параметры транзактов и переменные пользователя, могут принимать целочисленное, вещественное, строковое и неопределенное значение. Значения времени могут быть целыми или вещественными двойной точности.
Преобразование типов происходит автоматически. Процедуры, которые требуют в качестве аргумента значение определенного типа данных, принудительно преобразуют аргумент к соответствующему типу. Например, если передаётся строка процедуре, которая требует числовое значение, то будет использован числовой эквивалент этой строки. Точно так же, если попытаться вывести (WRITE) числовое значение, оно будет автоматически преобразовано в текстовую строку.
Строковые величины имеют много вариантов использования. Они могут использоваться в потоках данных для создания отчетов и файлов с результатами, а также для прямого доступа к внутренним данным. Строковые константы
49
обозначаются заключением строки между парой двойных кавычек. Для представления двойных кавычек внутри строки используется пара двойных кавычек. Например, для представления одной строки внутри другой строки необходимо использовать 6 символов кавычек. Внутренняя строка (подстрока) заключается между двумя парами двойных кавычек, а итоговая строка будет заключаться между еще одной парой двойных кавычек. Библиотека процедур содержит много строковых процедур, которые могут использоваться для создания и манипулирования строковыми данными.
Теперь ячейкам и матрицам может быть присвоено значение UNSPECIFIED (неопределенный тип данных). Команда INITIAL позволяет присваивать это значение ячейкам, элементам матрицы и даже целым матрицам. Если элемент данных UNSPECIFIED был использован в операции, которая требует некоторого значения, произойдет останов по ошибке.
Матрицы могут иметь до 6 измерений. Динамические окна «Matrix» («Матрица») позволяют просматривать любые поперечные сечения матрицы, одновременно можно открыть любое количество таких окон. Для использования во время исполнения процедуры могут быть созданы временные матрицы. Для инициализации матрицы с тремя и более измерениями используются присваивающие PLUS-операторы.
GPSS World поддерживает широкое использование выражений. Они могут использоваться в PLUS-процедурах или в операторах GPSS (если заключены в скобки). Это означает, что в операндах блоков и команд могут производиться эффективные вычисления. Выражения могут производить простые вычисления, вызывать процедуры, выполняющие математические или строковые операции, производить выбор вероятностного распределения или выполнять заданные пользователем алгоритмы, включая файловый ввод-вывод.
7.5. Совместимость c GPSS/PC и отличия от него
GPSS World совместим с GPSS/PC и обычно выдаёт результаты, которые статистически неотличимы от результатов, выдаваемых GPSS/PC.
Кроме того, доступен ещё более высокий уровень совместимости, называемый режимом совместимости с GPSS/PC. В большинстве случаев можно достигнуть точного повторения результатов. Тем не менее GPSS World использует новую исполняемую библиотеку. Применяемый в нём метод округления чисел с плавающей запятой немного отличается от используемого в GPSS/PC. Но даже в этом случае большинство моделей GPSS/PC с небольшими изменениями могут давать идентичные результаты при выполнении под управлением коммерческой версии GPSS World в режиме совместимости с GPSS/PC.
Программирование в GPSS World имеет много отличий от программирования в GPSS/PC. Пакет GPSS World основывается на идее, что текстовый объект «Модель» формируется и/или модифицируется, а затем транслируется с целью создания объекта «Процесс моделирования». Этим он отличается от GPSS/PC, в котором используются понятия файла программы и процесса моделирования.
В GPSS World была полностью заменена операция загрузки модели, используемая в GPSS/PC. Вместо последовательного ввода и просмотра каждой
50