SIMULATE Начало моделирования
STORAGE S(STA1),2 Задание станков в группе А
REALLOCATE COM,20000 Увеличение размера динамиче
ской памяти
GENERATE RVEXPO(1,28) Поступление заготовок
ADVANCE RVNORM(3,32,10) Транспортировка заготовки
.
.
.
END
Изменение последовательности
Псевдослучайных чисел
Для розыгрыша случайных чисел в GPSS/H используются 8 датчиков равномерного распределения в интервале (0, 1). Эти датчики являются датчиками псевдослучайных чисел, т.е. если каждый цикл работы генератора псевдослучайных чисел начинается с одними и теми же исходными данными (начальными значениями), то на выходе получаются одинаковые последовательности чисел. Следовательно, при многократных прогонах модели стохастического процесса датчики будут при обращении к ним выдавать одну и ту же последовательность чисел. Т.е. результаты нескольких прогонов будут одинаковыми (не случайными). Для достоверности выводов на основе результатов моделирования необходимо провести несколько прогонов (действительно случайных) и найти среднее значение определяемой величины. Для этого необходимо изменить последовательность (алгоритм) случайных чисел. В GPSS/H это возможно сделать, используя оператор RMULT.
Оператор RMULT–устанавливает начальные значения датчиков псевдослучайных чисел и изменяет их последовательность. По умолчанию начальные значения всех датчиков разные.
В операндах А, В, С, D, E, F, G и Н записываются начальные значения для датчиков 1-го, ..., 8-го соответственно. Эти значения могут быть любыми, ноне превышающими 10 знаков.
Например,
RMULT 123,15,,,347
начальные значения (и последовательность псевдослучайных чисел) 1-, 2- и 5-го датчиков изменяются. Начальные значения всех остальных датчиков остаются неизменными.
Оператор RMULT ставят:
а) до первого оператора START для установления начальных значений генераторов;
б) между операторами START для восстановления начальных значений генераторов;
в) между операторами START для определения новых начальных значений генераторов.
При прогоне моделей в рассмотренных выше примерах можно заметить, что при использовании различных датчиков случайных чисел результаты тоже различны. Возникает вопрос: «А какой из этих результатов верный?». Для получения такого результата необходимо провести несколько прогонов, изменяя последовательность псевдослучайных чисел (изменяя номера генераторов), а затем взять среднее значение либо провести достаточно долгое моделирование.
Проведение нескольких экспериментов
За один прогон модели
При проведении имитационных экспериментов часто приходится выполнять несколько прогонов, лишь слегка изменяя модель. Например, необходимо исследовать влияние изменения интервала движения какого-либо транспортного средства или интервалов потока заготовок на показатели всей системы, т.е. провести эксперименты на модели с различным временем задержки транзакта в блоке ADVANCE. Для этого нужно запустить модель, проанализировать информацию в сформированном стандартном файле отчета моделирования, исправить временную задержку в нужном блоке модели, опять запустить модель и повторить эту последовательность действий.
Было бы удобно, если бы вместо серии выполнений независимых заданий с изменением программы все это можно было сделать за один прогон модели, а именно:
1. После завершения моделирования и распечатки статистических данных внести некоторые изменения в модель:
а) переопределить операнды одного или нескольких блоков модели без изменения типов самих блоков;
б) переопределить типы блоков;
в) расширить модель за счет добавления сегментов.
2. После модификации модели подготовить ее к повторному прогону:
а) сбросить всю статистику модели в нулевое состояние;
б) удалить все транзакты, которые оставались в модели в конце моделирования предыдущего прогона.
Каждый из перечисленных шагов может быть выполнен средствами языка GPSS/H. Шаг 2 выполняется при помощи оператора CLEAR.
Оператор CLEAR–удаляет все транзакты из модели, сбрасывает таймер абсолютного и относительного времени, а также всю статистику относительно объектов (если нет ограничений). Не воздействует на переменные и на генераторы случайных чисел.
Для изменения значений переменных используют оператор LET. Изменить последовательность значений, произведенных генератором случайных чисел, возможно при помощи оператора RMULT. Эти операторы будут рассмотрены ниже.
Формат CLEAR:
CLEAR n1,n2,...
необязательные операнды n1, n2, ... – имена объектов, параметры которых не должны сбрасываться (по умолчанию вся статистика сбрасывается).
Если CLEAR вставлен между двумя START, то после первого прогона все транзакты в модели будут удалены и вся статистика сброшена. GPSS/H продолжит выполнение модели, когда встретится со вторым оператором START:
START 1
CLEAR
START 1
Пример моделирования
Допустим, что в нижеприведенной модели необходимо определить загрузку прибора при различных временах обслуживания (13.4; 11.5; 9.2).
SIMULATE