- •Ю. М. Елизарова н. А. Тихонова Создание имитационных моделей в системе gpss world
- •Оглавление
- •Глава 1. Основы моделирования в gpss world 5
- •Глава 2. Построение имитационных моделей средствами gpss world 59
- •Введение
- •Глава 1. Основы моделирования в gpss World
- •1.1. Объекты gpss, ввод транзактов в модель и вывод их из модели Объекты gpss
- •Часы модельного времени
- •Описание операторов gpss World
- •Ввод транзактов в модель
- •Задание продолжительности моделирования
- •1.2. Задания для самостоятельного выполнения
- •1.3. Одноканальные устройства, задержка во времени, сбор статистики при ожидании, переход транзакта в блок, отличный от последующего Одноканальные устройства
- •Реализация задержки во времени
- •Сбор статистики при ожидании
- •Переход транзакта в блок, отличный от последующего
- •1.4. Задания для самостоятельного выполнения
- •1.5. Многоканальные устройства
- •1.6. Задания для самостоятельного выполнения
- •1.7. Переменные и функции Переменные
- •Функции
- •1.8. Задания для самостоятельного выполнения
- •Параметры транзактов
- •Задание и изменение значений параметров транзактов
- •Отметка времени. Транзитное время
- •1.10. Задания для самостоятельного выполнения
- •1.11. Сохраняемые величины, проверка числовых выражений, приоритет транзакта, прерывания, таблицы Сохраняемые величины
- •Сравнение сча
- •Изменение приоритета транзактов
- •Обслуживание с прерыванием
- •Определение и использование таблиц
- •1.12. Задания для самостоятельного выполнения
- •Глава 2. Построение имитационных моделей средствами gpss world
- •2.1. Анализ работы кассового зала железнодорожного вокзала станции «омск»
- •Результаты моделирования и их интерпретация
- •2.2. Анализ работы микроавтобусного парка
- •Результаты моделирования и их интерпретация
- •2.3. Анализ функционирования информационной сети
- •Результаты моделирования и их интерпретация
- •Заключение
- •Библиографический список
- •Приложение 1 диалоговые возможности gpss world
- •Статистическая информация в стандартном отчете gpss world
- •Создание имитационных моделей в системе gpss World
Ввод транзактов в модель
Транзакты входят в модель через блок GENERATE (генерировать), ограничений на количество разных блоков GENERATE в одной модели не существует. Интервал времени между последовательными появлениями транзактов из блока GENERATE называют интервалом поступления. В момент входа в модель транзакта через блок GENERATE интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числа c соответствующим распределением интервалов поступления на время, равное сумме текущего значения часов модельного времени и разыгранного значения.
Случайные распределения интервалов поступления транзактов в GPSS делятся на равномерное распределение и другие виды распределений. Рассмотрим самое простое из всех случайных нетривиальных распределений – равномерное.
Формат записи блока GENERATE:
GENERATE [A],[B],[C],[D],[E],
где А – среднее значение интервала поступления транзактов (число, СЧА, по умолчанию – 0);
В – величина разброса возможных значений относительно среднего значения (число, CЧА, по умолчанию – 0); в случае, если операнд В не задан, интервал поступления является детерминированной величиной;
С – смещение интервалов, момент времени, в который в блоке GENERATE должен появиться первый транзакт (по умолчанию – 0);
D – ограничитель числа транзактов, которые могут войти в модель через данный блок GENERATE на протяжении времени моделирования (по умолчанию –∞);
Е – уровень приоритета транзакта (возможные значения – целые числа от 0 до 127; чем больше значение, тем выше приоритет, по умолчанию – 0).
Если опущено поле операнда, то транслятор проставляет значение по умолчанию или выдает ошибку (в случае обязательности данного поля). Операнды не могут быть отрицательными числами. В GPSS World операнды А, В, C могут быть действительными числами.
П р и м е р ы задания оператора GENERATE:
GENERATE 10,2 задает равномерный закон распределения. Значение операнда A равно десяти, В – двум. Интервал поступления транзактов – случайное число из отрезка модельного времени [8; 12], т. е. интервал поступления может приобретать с равной вероятностью одно из пяти значений: 8, 9, 10, 11, 12;
GENERATE 4 – задает детерминированные значения интервалов поступления транзактов. Значение операнда A равно четырем, В – нулю (по умолчанию). Транзакты входят в модель каждые четыре единицы модельного времени.
GENERATE ,,,1 – генерирует один транзакт. Значения операндов A, В, С равно нулю (по умолчанию), D – единице. В нулевой момент времени в модель входит один транзакт.
Кроме блока GENERATE для ввода транзактов в модель используется также блок SPLIT, который создает заданное число копий транзактов, вошедших в блок.
Удаление транзактов из модели
Транзакты удаляются из модели, попадая в блок TERMINATE (завершить). В этот момент освобождается память, выделенная под транзакт. Блоки TERMINATE всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. В модели может быть любое количество блоков TERMINATE [5].
Формат записи блока:
TERMINATE [A]
Операнд А задает величину уменьшения счетчика завершения, т. е. операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию A = 0. Вход транзакта в блок TERMINATE c нулевым значением операнда А не вызывает уменьшения счетчика завершения [5].
Счетчик завершения – это ячейка в памяти ЭВМ, которая хранит целое положительное число. Начальное значение счетчика задается разработчиком в виде значения операнда А команды START (начать). В процессе моделирования транзакты попадают в блок TERMINATE и из счетчика завершений вычитается значение параметра А блока TERMINATE. Моделирование заканчивается, когда значение счетчика становится равным нулю или отрицательному числу.
В модели может быть несколько блоков TERMINATE, но счетчик завершения – один (не путать с ограничителем транзактов в блоке GENERATE). Ограничитель задает число транзактов, которые войдут в модель, а счетчик – число транзактов, которые выйдут из модели. По окончании моделирования транзакты могут оставаться в модели [4].
Интерпретатор начинает моделирование по команде START.
Формат команды:
START A,[B],[C],[D]
В операнде А, как было отмечено ранее, задается начальное значение счетчика завершения. Назначение остальных операндов описано в работах [1, 4, 5].
