< REALLOCATE A,B >
А - не имеет значения по умолчанию, представляет собой имя переназначаемого объекта (в нашем случае – памяти),
В - по умолчанию равен 10000 байт, представляет собой число, обозначающее запрашиваемый объём памяти ( до 32720 байт ).
В программе существует другая возможность увеличения объёма общей памяти, непосредственно в командной строке можно записать опцию MAXCOM после имени файла, что автоматически увеличивает объём общей памяти до максимума, действие этой опции перекрывает эффект действия ОО REALLOCATE , но увеличивает время ИМ.
Рассмотрим пример применения ОО REALLOCATE :
REALLOCATE COM,20000
В примере общая память переназначается до значения 20000 байт.
В языке GPSS/H имеется мощное средство для хранения данных, получаемых при моделировании; сбора статистики и создания собственных образцов файла отчета. Это так называемые &-переменные -АМП (они начинаются со знака & - “амперсант”). Эти переменные могут быть целочисленными (integer), вещественными (real), или символьными (character).
Для использования таких переменных в вашей модели необходимо объявить об их использовании в начале программы с помощью следующих операторов описания:
INTEGER
Этот ОО используется для описания целочисленных &-переменных. Формат оператора следующий:
INTEGER avar, …,
где avar – имя очередной целочисленной &-переменной.
REAL
Используется для описания вещественных &-переменных. Формат:
REAL avar, …,
где avar – имя очередной целочисленной &-переменной.
CHAR
Формат этого оператора, описывающего символьные &-переменные, несколько отличается от формата двух предыдущих:
CHAR *N avar,…,
где N – количество символов в переменной.
VCHAR
Аналогично предыдущему оператору, но описанная таким образом переменная может быть любой длины, но не более N.
В описанных выше операторах есть возможность придать переменной новое качество: описать ее как линейный массив (вектор). Для этого количество элементов массива указывается в скобках после имени переменной (подобно аналогичным операторам в других языках программирования).
LET
Этот оператор описания используется для присвоения &-переменным любых видов новых значений. Располагается этот оператор в разделе описания и имеет формат:
<LET avar=xpress>,
где avar – имя переменной, а xpress – любое математическое выражение с использованием функций, &-переменных, стандартных числовых атрибутов и т.д., либо число или строка (для строчных &-переменных). Этот оператор описания может располагаться в модели непосредственно после описания соответствующих переменных. В случаях, когда необходимо задать значение переменной непосредственно в теле программы, используется оператор BLET. С его помощью можно записывать математические выражения с участием СЧА, амперсант-переменных, постоянных и математических функций.
На практике часто встречаются случайные величины, распределение которых неравномерно, а подчиняется, например, нормальному закону, закону Эрланга или Вейбулла. Для моделирования процессов, связанных с этими величинами, предназначены такие средства языка GPSS/H, как генераторы случайных чисел и функции.
В GPSS/H имеется восемь встроенных генераторов случайных чисел (ГСЧ), которые реализуют процедуру генерации псевдослучайного числа из диапазона (0;1) с равномерным распределением вероятности. Как известно, из распределенных таким образом может быть получен поток чисел, распределенных по любому другому закону. Именно таким приемом пользуется GPSS/H для получения разнообразных законов.
При работе программы GPSS/H встроенный ГСЧ при каждом запросе выдает случайное число. Чтобы получить это число в явном виде, можно воспользоваться СЧА потока случайных чисел:
СЧА | Описание |
RN(j) | Создает поток псевдослучайных чисел с генератора с номером j. Если используется в качестве аргумента функции, числа получаются с плавающей запятой, равномерно распределенные в интервале (0,1), исключая концы интервала. В прочих случаях – числа целые, распределены равномерно в интервале (0,999), включая концы интервала. |
FRN(j) | Создает число из потока псевдослучайных чисел с номером j. Числа получаются с плавающей запятой, равномерно распределенные в интервале (0,1), исключая концы интервала. |
Используя СЧА потоков случайных чисел, можно задавать случайные функции. В GPSS/H обычно используется табличный способ задания функций. Для определения функции служит управляющий оператор FUNCTION (см. 3.3.2).
В GPSS/H имеется также библиотека встроенных функций, реализующих часто применяемые законы распределения случайных чисел. Ниже перечислены некоторые из них.
RVBIN
Описывает дискретное биномиальное распределение. Параметрами являются: номер ГСЧ, количество испытаний и вероятность успешного испытания.
RVERL
Описывает М-распределение Эрланга с параметрами: номер ГСЧ, целое положительное m и среднее.
RVEXPO
Описывает экспоненциальное распределение с параметрами: номер ГСЧ, заданное среднее.
RVGAMA
Описывает гамма-распределение. Задаются: номер ГСЧ, параметр формы и параметр шкалы.
RVNORM
Описывает числа с нормальным распределением. Параметры: номер ГСЧ, среднее и стандартное отклонение.
Использование встроенных функций значительно облегчает написание и отладку программ. Ниже приведены примеры использования встроенных функций:
GENERATE RVEXPO(3,1.00),,0.5: первая цифра указывает на номер генератора случайных чисел (номер генератора не влияет на результаты моделирования, так как стартовая позиция генераторов одинакова), вторая указывает на время прихода транзактов распределенное по экспоненциальному закону со средним, равным 1; далее операнд В отсутствует по определению, так как операнд А задает закон распределения, операнд С определяет,что первый транзакт приходит через 0,5 единиц модельного времени,
BLET &m=2.17, &sigma=3.99
ADVANCE RVNORM (3,&m,&sigma): ГСЧ номер 3, время задержки транзакта распределено по нормальному закону с математическим ожиданием, равным 2,17 и среднеквадратическим отклонением, равным 3,99.
Работа с моделью на языке GPSS/H (студенческая версия) состоит из создания, отладки и использования модели (программы). Рассмотрим эти задачи последовательно в том порядке, в котором они обычно решаются на практике. Причем режим отладки (дебагера) рассмотрим в параграфе 3.6.
Студенческая версия GPSS/H даёт полное представление о возможностях ЯИМ, способствует его осознанному изучению и позволяет приобрести необходимые навыки. Отличия от профессиональной версии заключаются:
· в способе управления пакетом, так студенческая версия работает под MS DOS непосредственно или в любой оболочке типа NC, VC, Far. В качестве рекомендации можно посоветовать не выходить в эмуляцию DOS, а работать в любой из указанных оболочек.
· в размере модельного файла - не более 125 операторов блоков – ОБ, 250 операторов всех видов, при увеличении числа операторов появляется сообщение: «ERROR: STUDENT VERSION IS LIMITED TO 125 BLOCKS».
· в ограничении общей памяти - не более 32720 байтов. Это ограничение особенно заметно при плохом выборе параметров входных потоков и потоков обслуживания, так как обычно используется только 10000 байт памяти.. При этом следует сообщение о переполнении памяти , которого не следует бояться
(Error 411 -Out of COMMON . –Add/change REALLOCATE Stmt ?) с просьбой изменить параметры или переназначить объём памяти до 32720 байт командой MAXCOM или изменить значения в пределах больше 10000 и до 30000 командой REALLOCATE имеющей синтаксис:
< REALLOCATE COM,byte >
· в стоимости пакета - студенческая версия дешевле более чем на полтора порядка.
В остальном , идеология студенческого и профессионального пакетов не отличаются друг от друга .
При инсталяции дистрибутива необходимо проделать следующее:
· Войти в сессию, какой либо командной оболочки,
· Поставить дискету с дистрибутивом в дисковод,
· Выбрать директорию для размещения GPSS/H,
· В меню запуска программы набрать: A:\ INSTALL,
· Внести изменения в AUTOEXEC.BAT,
· Перезапустить компьютер.
Запуск программы осуществляется путём набора в командной строке:
< GPSSH filename.gps > Enter
filename означает имя модельного файла, выбранного из списка файлов, имеющихся в программе или созданного исследователем с помощью редактора оболочки. После успешного моделирования появляется новый файл (листинг отчёта) с тем же именем, но имеющий расширение .lis, который можно просмотреть, используя клавиши F3 или F4. В случае наличия в МФ ошибок компиляции появляется усечённый листинг, содержащий указания об ошибках, но не имеющий результатов моделирования.
Предупреждение:
1. Несмотря на наличие в командной строке названия GPSS/H после приглашения надо обязательно набирать имя программы GPSSH, и после пробела имя МФ (либо использовать горячие клавиши Ctrl –j) , находясь курсором на МФ.
2. Вновь создаваемому МФ обязательно присваивать расширение .gps
3. Никогда не пытайтесь запускать программу файлом gpssh.exe !
После создания МФ и его записи в редакторе оболочки (формат записи см. ниже) процесс моделирования распадается на две фазы:
· Начало компиляции, с появлением на экране сообщения “ Pass 1 (with source listing) “ , во время этой фазы считывается МФ, проверяются синтаксические ошибки, происходит нумерация строк МФ,
· Процесс компиляции, с появлением сообщения “ Pass 2 …” , во время этой фазы МФ преобразуется в форму удобную для исполнения и производится распределение памяти. При отсутствии ошибок начинается моделирование, предваряемое сообщением “Simulation begins “
Эти сообщения читаются в сеансе DOS, при моделировании в командной оболочке эти сообщения не появляются, процесс моделирования оканчивается практически сразу (время моделирования МФ из 100 операторов исчисляется миллисекундами) и в списке файлов появляется файл отчёта .lis (листинг), либо содержащий данные о процессе моделирования, либо об ошибках. Никакой специальной команды для выхода из процесса моделирования при работе в командных оболочках подавать не надо.