На специализированном языке GPSS/H
Общие сведения
Специализированный язык имитационного моделирования GPSS/Н (General Purpose Simulation System) предназначен для отображения дискретных сложных систем различной физической природы. Язык основан на теории массового обслуживания – концепции движения объектов через приборы с некоторым временем обслуживания. Закон движения объектов и время обслуживания могут изменяться по различным законам распределения случайных величин.
Имитационную модель на языке GPSS/H сначала строят в виде блок-схемы, обеспечивающей наглядность перед записью программы. Блоки имеют свои графические интерпретации, с помощью которых отображается пространственная конструкция модели. На рис. 9 представлена гипотетическая блок-схема некоторой GPSS/H-модели.
Рис. 9. Блок-схема GPSS/H-модели
Информация, представленная в блок-схеме, может относиться к трем различным категориям:
1. Местоположение. Каждый блок занимает определенное место в блок-схеме. Это место может быть определено нумерацией, которую интерпретатор осуществляет автоматически. Часто нужно знать, какое место занимает тот или иной блок в модели. Это может оказаться необходимым для реализации ссылки из одного или более блоков на указанный блок. Для этих целей в GPSS/H используются символические имена, которые должны состоять не более чем из семи алфавитно-цифровых символов, причем первый символ должен быть алфавитным (русские буквы не допускаются).
2. Операции (ADVANCE, RELEASE и т.д.) – команды, описывающие основное функциональное назначение блоков.
3. Операнды (A,B,C,D,E...) – информация, специфичная для действия блока.
Исходная программа на языке GPSS/Н, как и программа на любом языке программирования, представляет собой последовательность командных строк, которые вводятся в ЭВМ в следующем формате (рис. 10):
Рис. 10. Формат GPSS/H-программы
Символическое имя предназначено для ссылки на данную строку из другого места модели. Если такие ссылки отсутствуют, то имя указывать не обязательно. В поле операции записывается название команды, указывающее конкретную выполняемую функцию. В поле операндов заносится информация, уточняющая и конкретизирующая выполнение функции, определенной в поле операции. Необязательные комментарии предназначены для пояснения действия данной команды.
Командные строки записываются, начиная с первой позиции, в свободном формате, т.е. отдельные поля разделяются произвольным количеством пробелов. Программу пишут в любом текстовом редакторе, создающем неформатируемый текст в формате ASCII (NC, VC, Far, Блокнот, WordPad и т.п.). Она должна иметь имя из латинских букв и расширение .gps (например, primer1.gps). Все буквы, кроме комментариев, должны быть заглавными.
GPSS/H-модель состоит из различных объектов. Для упрощения разделим эти объекты на три типа: транзакты, блоки и операторы.
Транзакты – динамические элементы GPSS/H-модели, представляют собой аналоги заявок в СМО. Они могут описывать, например, заготовки, транспортные средства, рабочих, требования на выполнение какой-либо операции и т.п. Блоки задают логику функционирования модели системы и определяют пути движения транзактов по модели. Блоки – аналоги приборов в СМО, которые отображают, например, участки цеха, станки, транспортные средства. Перемещаясь от блока к блоку, транзакты имитируют процессы, происходящие в системе: обработка заготовки, перемещение транспортного средства, восстановление вышедшего из строя станка и т.д. Блоки функционируют только тогда, когда в них находятся транзакты.
Операторы предназначены для управления процессом моделирования (прогоном модели), задания функций и последовательностей псевдослучайных чисел генераторов GPSS/H. Операторы напрямую не взаимодействуют с транзактами.
В процессе моделирования интерпретатор GPSS/H автоматически регистрирует и корректирует некоторую информацию, касающуюся различных элементов, используемых в моделях. Кроме информации, которая выдается по окончании моделирования, существует и такая информация, которая доступна в процессе моделирования. Эту информацию можно использовать с помощью атрибутов модели. Атрибутами являются: состояние прибора (занят, не занят), счетчик циклов занятий прибора, коэффициент использования прибора, среднее время задержки на одно занятие, величина параметра транзакта, время пребывания транзакта в модели, генераторы случайных чисел. В процессе моделирования системы транзакты взаимодействуют с блоками, в результате чего происходят изменения их атрибутов, а также преобразования арифметических или логических значений. Такие преобразования называются событиями.