Архивы: по дате | по разделам | по авторам

Предсказание погоды

Архив
автор : Владимир Девятков   11.07.2003

Способы управления современными системами разнообразны. На помощь приходит компьютерное имитационное моделирование, которое позволяет с высоким уровнем детализации и достоверности проанализировать поведение исследуемой системы.

Современные системы — в технике, экономике и других сферах — чрезвычайно сложны, а способы управления ими так разнообразны, что постоянно приходится отвечать на вопрос «А что будет, если…?» На помощь приходит компьютерное имитационное моделирование, которое позволяет с высоким уровнем детализации и достоверности проанализировать поведение исследуемой системы.

Язык имитационного моделирования GPSS — один из долгожителей среди языков программирования. Еще в 1970-х годах он входил в десятку самых популярных, а в декабре 2001 года в рамках конференции WSC-2001 было торжественно отпраздновано сорокалетие GPSS.

Автором и разработчиком первых версий языка был Джеффри Гордон, выдающийся американский специалист в области имитационного моделирования. С тех пор созданы сотни языков имитационного моделирования (GASP, SIMSCRIPT, SIMULA, Cтам, Недис, Слэнг и т. д.). От многих осталось лишь название, некоторые успешно развиваются. Одни ориентированы на моделирование процессов, другие — на моделирование событий. Но среди всех этих языков и систем GPSS стоит особняком. У GPSS много сторонников и много критиков. Сторонники превозносят универсальность, наглядность и простоту использования языка. Критики указывают на некоторую тяжеловесность конструкций, отсутствие современных средств визуализации и консерватизм разработчиков. Но и те и другие признают уникальность GPSS и его вклад в развитие всего рынка имитационного моделирования.

Немного истории

Условно историю развития GPSS можно разделить на два основных этапа. Первый — с 1961 года до середины 70-х — был этапом Джеффри Гордона и фирмы IBM. За это время последовательно разработано пять основных версий языка: GPSS (1961), GPSS II (1963), GPSS III (1965), GPSS/360 (1967) и GPSS V (1971). Последняя версия до сих пор является эталоном для многих пользователей. К сожалению, после прекращения поддержки фирмой IBM язык GPSS пережил кризис.

Второй этап — со второй половины 70-х и по настоящее время. Монополия IBM закончилась, и казалось, GPSS обречен. По крайней мере, его будущее было туманным. Но благодаря силе идей, заложенных в нем, и энтузиазму его сторонников, он выжил. Эстафету подхватило множество небольших честолюбивых фирм и разработчиков. Появилось немало реализаций GPSS, развернулась нешуточная конкуренция за лидерство — но постепенно выделились три основных разработчика, «диктующих моду» в мире GPSS.

Прежде всего, это Джеймс Хенриксен из Wolverine Software (www.wolverinsoftware.com). Его GPSS/H — мощная и сбалансированная система имитации, а Proof Animation — система анимации, ориентированная на моделировании. Основные принципы GPSS/H закладывались еще до широкого внедрения ПЭВМ, во времена мэйнфреймов. Поэтому особенно активно эта система использовалась в период, пока ПЭВМ имели недостаточную вычислительную мощность. В настоящее время, несмотря на очевидные достоинства, сказывается отсутствие в GPSS/H современных интерактивных технологий. А главное, Джеймс Хенриксен сосредоточил усилия на развитии языка SLX. И хотя в его конструкциях используются объекты GPSS — это все-таки больше язык Си, чем GPSS.

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

В GPSS World введены четыре новые команды:
- CONDUCT — позволяет запускать и выполнять эксперименты;
- EXIT — выход из GPSS World с возможностью сохранения открытых файлов;
- INCLUDE — подключение к модели дополнительных файлов;
- INTEGRATE — автоматическое вычисление интеграла для переменной пользователя (определяет выражение, по которому производится вычисление; включение интегрирования в процессе моделирования осуществляется блоком INTEGRATION). С помощью команды INTEGRATE и блока INTEGRATION в GPSS World реализуются элементы непрерывного моделирования. Таким образом, наряду с привычными для GPSS дискретными моделями можно создавать полностью непрерывные или смешанные дискретно-непрерывные модели.

Второе имя — Ингольф Столл, Stockholm School of Economics (www.hhs.se). Обобщив многолетний опыт преподавания GPSS, он разработал компактную, немного усеченную версию языка GPSS для использования в учебном процессе — Micro-GPSS. Его главное достижение — разработка WebGPSS. Это довольно удачная попытка создания системы имитации для использования в сети Интернет. Основное ядро системы находится на университетском сервере, и пользователь может через Интернет отлаживать и исполнять небольшие учебные модели. Особенно интересен такой вариант при внедрении дистанционного обучения. Тем не менее, разработке еще предстоит долгий путь совершенствования и развития.

Идеология семейства продуктов Спрингера Кокса и его фирмы Minuteman Software (www. minutemansoftware.com), начиная с GPSS/PC, полностью ориентирована на ПЭВМ и преимущества индивидуального интерактивного использования. Особенно удачным можно признать GPSS World, в котором существенно дополнены функциональные возможности и реализована универсальная многооконная диалоговая оболочка. Значительно расширены возможности интеграции GPSS-моделей с другими системами программирования. Традиционно продукты этой фирмы очень популярны в России и странах СНГ — поэтому современное состояние систем компьютерного моделирования мы рассмотрим именно на примере GPSS World.

Новые возможности

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

На сегодняшний день GPSS World является приложением семейства операционных систем Windows и использует их очевидные преимущества — графический интерфейс пользователя и архитектуру «документ-вид». ПО представляет собой полноэкранный текстовый редактор, позволяющий работать сразу с несколькими объектами (текст модели, журнал, отчет и т. д.) Кроме того, графический интерфейс дает возможность интерактивно взаимодействовать с выполняющимися процессами моделирования, а также применять наглядные графические окна для отображения их работы.

GPSS World выполняется под управлением любых ОС семейства Windows, начиная с Windows 95, и позволяет реализовать многозадачность и использовать виртуальную память. Использование механизма виртуальной памяти устраняет один из главных недостатков предыдущих версий GPSS — жесткое ограничение объема памяти, занимаемого моделью. Теперь он может измеряться гигабайтами.

Кроме того, в GPSS World применяется более высокопроизводительный транслятор по сравнению с GPSS/PC. Имеется возможность ввода и вывода данных в процессе моделирования. Пользователь может прервать выполнение процесса моделирования и сохранить его, чтобы в дальнейшем продолжить выполнение с той же точки. Еще одно новшество — пакетный режим с контролируемой процедурой выхода из приложения. Это позволяет производить многократные прогоны с сохранением всех необходимых файлов.

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

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

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

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

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

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

GPSS World — объектно-ориентированный язык. Объект «Модель» главным образом содержит операторы модели, а также набор настроек. Кроме того, он включает в себя закладки и циркулярный список синтаксических ошибок.

Объект «Процесс моделирования» создается при трансляции операторов объекта «Модель». Для изменения его состояния применяются интерактивные команды и блоки.

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

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

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

Плюс…

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

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

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

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

Проведение экспериментов

Именно с помощью экспериментов можно исследовать поведение построенной модели. Концептуально GPSS World обеспечивает проведение экспериментов трех типов:

- отсеивающие эксперименты — используются для определения наиболее важных факторов, влияющих на моделируемую систему;
- оптимизирующие эксперименты — позволяют определить оптимальные уровни факторов;
- эксперименты пользователя — эксперименты над моделью, программируемые пользователем.
Автоматические генераторы отсеивающих и оптимизирующих экспериментов позволяют задать и провести эксперимент соответствующего типа. С их помощью, заполняя поля диалоговых окон, можно быстро определить условия проведения эксперимента.
Завершающий шаг любого эксперимента — это, как правило, анализ результатов. Дисперсионный анализ оценивает

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

Совместимость

GPPS World является непосредственным преемником системы GPSS/PC. В то же время «потомок» имеет довольно много отличий от своего «предка». GPSS World основывается на идее, что текстовый объект «Модель» создается и/или модифицируется, а затем транслируется с целью создания объекта «Процесс моделирования». Архитектурой он сильно отличается от GPSS/PC, в котором используются понятия файла программы и процесса моделирования.

Тем не менее, GPSS World совместим с GPSS/PC: сделав ряд небольших изменений в модели, можно добиться результатов, статистически неотличимых от выдаваемых GPSS/PC. Существует также и режим совместимости с GPSS/PC. В нем большинство моделей GPSS/PC дают абсолютно идентичные результаты при выполнении под управлением GPSS World1. Возможность использовать уже созданные и отлаженные модели является немаловажным фактором — в СССР был накоплен колоссальный опыт применения GPSS (и в частности, GPSS/PC).

Новые блоки

Кроме новых команд, в GPSS World включено девять новых типов блоков:
- ADOPT — изменяет номер семейства транзакта;
- DISPLACE — позволяет переместить транзакт в любой другой блок;
- INTEGRATION — включает/выключает интегрирование переменной, для которой задано выражение с помощью команды INTEGRATE;
- PLUS — вычисляет PLUS-выражение, что в том числе подразумевает вызов PLUS-процедуры из встроенной библиотеки или процедуры, созданной пользователем;
- OPEN, CLOSE, READ, WRITE, SEEK — управляют потоками данных, позволяют создавать и уничтожать потоки, производить считывание и запись данных в них. Потоки данных делятся на два типа: файловые (запись производится в текстовый файл) и «потоки в памяти» (запись производится в оперативную память компьютера).

GPSS на наших просторах

Исторически сложилось, что с середины 70-х годов GPSS начал активно использоваться в СССР, когда более тысячи организаций-пользователей ЕС ЭВМ приобрели пакеты прикладных программ ПМДС (GPSS/360) и ПМДС 2.0 (GPSS V).

GPSS в России и странах СНГ активно применяется и сегодня. В основном это академическое использование — более ста вузов России используют GPSS в учебном процессе. По самым скромным подсчетам, ежегодно заканчивают вузы более пяти тысяч специалистов, владеющих GPSS. Это действительно большая армия, которая может с успехом воспользоваться своими знаниями в исследованиях существующих и вновь создаваемых систем.

Имеется и множество примеров применения GPSS в практических исследованиях. Например, модель гальванической линии (ГУП «Адмиралтейские верфи», Санкт-Петербург), исследование эксплуатационных издержек технического обслуживания самолетов в аэропорту (АО ИЛ, Москва), анализ системы передачи данных «Радионет» (ИППИ РАН, Москва) и др. По ряду причин сейчас их существенно меньше, чем в 80-е годы. Во-первых, когда экономика больна, в первую очередь урезаются расходы на научные исследования. Вторая причина — конкуренция: есть множество других инструментов и систем моделирования, например так называемые коммерческие симуляторы вроде eMPlaht (www.emplant.com), CATIA (www.catia.spb.ru) и т. д. Наконец, на рынке, к сожалению, отсутствует качественно локализованный продукт, современный и доступный по цене.

Но в последнее время рост интереса к имитационным исследованиям очевиден. Поддерживается целый ряд русскоязычных Интернет-ресурсов (www. gpss.ru, www.gpss-forum.narod.ru, www.simulation.org.ua и др.), издаются книги [5, 6], появляются и заказы на исследования.

Безусловно, за имитационным моделированием большое будущее. Любая вновь создаваемая или модернизируемая система станет эффективнее, если пройдет этап системного уровня проектирования: будет оптимизирована ее структура, сокращены эксплуатационные издержки — а в итоге сэкономлены многие миллионы вполне реальных денежных единиц.

Литература
[1] Gordon, G. System Simulation. Prentice Hall, Englewood Cliffs, NJ. 1969.
[2] Т. Дж. Шрайбер, С. Кокс, Дж. О. Хенриксен, П. Лоренц, Дж. Рейтман, И. Столл. GPSS 40 лет: перспективы развития (www.gpss.ru/paper/wsc2001).
[3] Ингольф Столл. GPSS — 40 лет развития (www.gpss.ru/paper/stahl).
[4] Томас Дж. Шрайбер. Моделирование с использованием GPSS. — М.: Машиностроение, 1980.
[5] В. Томашевский, Е. Жданова. Имитационное моделирование в среде GPSS. М.: Бестселлер, 2003.
[6] Руководство пользователя по GPSS World. — Казань: Издательство «Мастер-Лайн», 2002.


1 (назад)Методика выполнения моделей GPSS/PC в GPSS World подробно описывается в «Руководстве пользователя по GPSS World».

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.