Построение алгоритмической модели на GPSS
Математическую модель системы необходимо преобразовать в моделирующий алгоритм. Эта работа в значительной степени зависит от средств описания, которыми располагает исследователь.
В качестве такого средства выбрана система имитационного моделирования GPSS/PC, основу которой составляет версия языка моделирования GPSS, очень близкая к языку GPSS V. На языке GPSS моделируемая система может быть описана в терминах небольшого набора абстрактных элементов - "объектов". Логические правила, лежащие в основе функционирования системы, могут быть сведены к набору простых операций.
Язык GPSS построен в предположении, что моделью сложной системы является описание её элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы.
Можно выделить небольшой набор абстрактных элементов, называе-мых объектами. Причем набор логических правил также ограничен и может быть описан небольшим числом стандартных операций.
Системный язык строится из набора простых объектов, разделяемых на 7 категорий (табл.).
Состояния объектов характеризуются величинами, называемыми Стандартными числовыми атрибутами (СЧА). СЧА определяют состояние объектов и могут использоваться в качестве переменных в различных блоках модели.
1. Динамические объектыназываются транзактами. Они " создают-ся" и "уничтожаются" так, как это нужно в процессе моделирования. С каж-дым транзактом может быть связано некоторое число "параметров", которые назначаются пользователем для задания характеристик транзактов.
2. Элементы оборудования(аппаратная категория), которые управля-ются транзактами, включают в себя “Устройства”, “Накопители”, “Логи-ческие переключатели”. Устройство может обслуживать одновременно только один транзакт. Накопитель может обслуживать несколько транзактов одновременно, логический переключатель является бистабильным индикато-ром, который, принимая при прохождении одного транзакта состояние "включено" или "выключено", может изменять путь других транзактов.
3. Статистические объекты, используемые для оценки поведения сис-темы, двух типов: "Очереди" и "Таблицы". Каждой очереди соответствует перечень транзактов, задержанных в какой-либо точке системы, и запись длительности этих задержек. Таблицы могут использоваться для построения распределений фиксируемых величин.
4. Операционные объекты, называемые "Блоками", формируют ло-гику системы, определяя пути продвижения транзактов, их задержку.
5. Вычислительные объектыиспользуют для различных вычислений с использованием в качестве переменных СЧА. К этим объектам относятся "Функции"и "Переменные".
6. Запоминающая категорияпозволяет сохранять данные в виде от-дельных значений или в виде матрицы значений.
7. Группирующая категорияпозволяет объединять отдельные тран-закты в группы.
Блок-схемы
Использование блок-схем является удобной базой для языка модели-рования GPSS. Для этого моделируемая система должна быть представлена в виде последовательности стандартных блоков.
Тогда в процессе моделирования программа будет создавать транзакты, продвигать их через определенные блоки и выполнять действия, соответст-вующие каждому из этих блоков, т.е. блок-схема показывает путь продвиже-ния транзактов и последовательность их обработки различными блоками,
При построении блок-схемы в первую очередь выделяются логические сегменты системы и блоки, представляющие основные функции, выполняе-мые системой. После этого производится детализация логики системы добав-лением блоков, выполняющих менее важные операции.
Внесение транзактов в модель производится с помощью блока GENERATE (ГЕНЕРИРОВАТЬ). Информация, необходимая для определения случайного интервала между моментами поступления транзактов, задается операндами Аи В. В поле Азадается среднее значение времени, а в поле В- модификатор. При этом аргумент поля Вможет быть задан одним из двух способов:
1. Посредством модификатора интервала. Эта константа определяет ин-тервал, в котором времена распределены равномерно. Любое из (2В+1) целых чисел, заключенных в интервале (А-В, А+В), будут выбираться с вероятностью 1/(2В+1).
2. Посредством модификатора-функции. При этом в поле В должен быть записан модификатор-функция, а вычисленное значение атрибута, за-данного в поле А, умножается на значение функции, заданной в поле В.
Поле Сопределяет интервал смещения, предшествующий возникнове-нию в блоке первого транзакта.
Поле Dограничивает число транзактов, которые должны быть созданы блоком GENERATE. Если поле является пустым, то блок будет генерировать транзакты без ограничения. Уровень приоритета задается в поле Е.
Каждый транзакт может иметь определенное число параметров, в кото-рые записываются его характеристики. Групповым именем параметра являет-ся буква Р, Например, Р12, P$SLED означают значения двенадцатого пара-метра транзакта и параметра с именем SLED.
В процессе моделирования параметры транзакта могут изменяться и назначаться при входе в блок ASSIGN. В момент создания транзакта все его параметры равны 0. В поле Азадается номер или имя параметра. Непосред-ственно за аргументом поля Аможет не стоять никакого знака или же стоять знак "+" или "-". Эти знаки показывают, как будет использовано значение по-ля В: будет ли оно заменять текущее значение параметра или же будет сум-мироваться (вычитаться) с текущим значением.
Транзакты удаляются из модели, попадая в блок TERMINATE. В моде-ли может быть любое число блоков TERMINATE. Операнд Аявляется ука-зателем уменьшения счетчика завершения. При входе транзакта в блок TERMINATE значение счетчика завершения уменьшается на число, указан-ное в операнде А.
Начальное значение счетчика завершения задается в поле Акарты START. Как только в процессе моделирования значение счетчика становится равным нулю, моделирование завершается.