
- •Раздел I. Gpss – язык и система моделирования.
- •Раздел II. Объекты системы моделирования
- •В языке gpss применяются два класса объектов:
- •- Динамические, порождаемые в процессе моделирования: транзакты (xac).
- •Initial Ячейка1, Значение1,…, Ячейка к, ЗначениеК
- •Раздел III. Средства языка, имитирующие статические и динамические свойства транзактов при моделировании дискретных процессов
- •Вв матсн аа
- •Раздел IV. Особенности построения моделей дискретных
- •Процессов
- •Раздел V . Задания к лабораторным работам
- •Раздел I. Gpss – язык и система моделирования.
- •Раздел II. Объекты системы моделирования……………………
- •Раздел III. Средства языка, имитирующие статические и
- •Раздел IV. Особенности построения моделей дискретных
- •Раздел V. Задания к лабораторным работам
- •Литература
Initial Ячейка1, Значение1,…, Ячейка к, ЗначениеК
Изменение значения ячейки можно выполнить применением блоков
SINCREMENT A,B,C SDECREMENT A,B,C
где А – номер ячейки, В – добавляемое или соответственно вычитаемое значение, С – тип ячейки.
Примеры.
INITIAL XH$1,77,XF$2,555,XL$3,3.81; первой (полусловной) ячейке присваивается начальное значени 77, второй (полнословной) – целое 555, третьей – вещественное 3.81.
SAVEVALUE 2+, P$3; вторая ячейка увеличивается на значение третьего параметра транзакта, вошедшего в данный блок.
SAVEVALUE 3-, FN$EXP,XL; третья ячейка уменьшается на значение функции EXP.
SAVEVALUE 5,3; значение 3 заносится в полнословную ячейку 5.
SINCREMENT 1,2; первая ячейка увеличивается на 2.
SDECREMENT Р$2,XH$3,H; ячейка, номер которой равен значению второго параметра транзакта, уменьшается на значение третьей ячейки.
SINCREMENT 4,V$5,XL; четвертая ячейка (в которой чисо представлено в форме с плавающей точкой) увеличивается на значение пятой переменной.
SDECREMENT 6,FN$EXP; шестой ячейке присваивается значение функции EXP, которая должна быть описана по соответствующей форме.
2.7. ТАБЛИЦЫ
Для сбора статистических данных о различных отчетах модели и для представле-ния их в стандартной табличной форме используют таблицы. Занесение информации в таблицу осуществляется в момент входа очередного транзакта в блок TABULATE A,B, где А – имя или номер таблицы, B – вес, указывающий, сколько раз значение должно быть занесено во взвешенную таблицу (по умолчанию В=1).
Описание структуры таблицы и типа данных (СЧА), заносимых в таблицу, осуществляется в разделе объявления данных по форме
num TABLE A, B, C, D, E
где num – имя или номер таблицы (совпадает с полем А блока TABULATE A,B) ;
А – поле, в котором может быть записан либо аргумент таблицы, т.е. заносимая в таблицу величина и аргумент таблицы может сопровождаться знаком "-" (минус), либо признаки режима формирования данных в таблице: режим IA –промежуточный интервал; режим RT – интенсивность прихода;
B – верхняя граница нижнего интервала;
C – ширина интервала;
D – число интервалов;
E – интервал времени ( только для RT - режима ).
При входе транзакта в блок TABULATE, которой ссылается на таблицу num, аргумент А этой таблицы вычисляется и заносится в эту таблицу. При этом если за операндом А стоит знак "-", то в таблицу заносится разность двух соседних значений табулируемой величины. Если в поле А указан режим IA, в таблицу заносится интервал времени между приходом двух транзактов в блок TABULATE.
Стандартные числовые атрибуты таблиц:
TB$j - среднее значение фиксируемой в таблице j переменной;
TC$j - число входов в таблицу j;
TD$j - стандартное среднеквадратичное отклонение табулируемой переменной.
Примеры.
Tab1 TABLE P$3,0,5,10
Когда транзакт входит в блок TABULATE, который ссылается на таблицу Tab1, в нее заносится соответствующее значение параметра 3 этого транзакта.
Tab2 TABLE P$3-,0.5,10
Когда транзакт входит в блок TABULATE, который ссылается на таблицу Tab2, в нее заносится разность между значениями параметра 3 текущего и предшествующего транзакта.
Tab3 TABLE IA,0,5,10
Когда транзакт входит в блок TABULATE, который ссылается на таблицу Tab3, в нее заносятся интервалы времени между последовательными приходами текущего и предыдущего транзакта.
2.8. ФУНКЦИИ И ПЕРЕМЕННЫЕ
Функции служат для отображения зависимостей между двумя величинами. В GPSS имеется группа из восьми стандартных (встроенных) функций RN$i, i = 1,...,8, при обращении к каждой из которых вычисляется непрерывная случайная величина, обозначаемая далее через Х, заданная на интервале (0, 1) и имеющая равновероятное распределение. Эти функции можно использовать для получения значений случайных величин, распределенных по некоторому другому закону. Зависимость произвольно задаваемой случайной величины Y от Х следует в GPSS-программе представить в виде конечной последовательности значений пар "аргумент Х, функция У" по такой форме:
Имя_функции FUNCTION RN$i, тип_ функции [; комментарий]
Последовательность пар координат (точек), разделяемых знаком "/"
В GPSS предусмотрено два типа функций: непрерывные ( Сn ) и дискретные (Dn), где n - количество точек, задаваемых парами координат Х,Y. Графически непрерывная функция может быть представлена в виде последовательности прямолинейных отрезков, которые соединяют соседние точки на плоскости Х,Y, т.е. для непрерывной функции методом линейной интерполяции определяется значение Y в любой точке заданного интервала значений Х. Дискретная функция определена только в задаваемых точках.
Примеры.
F1 FUNCTION Р$3,D4; дискретная функция F1, зависит от параметра 3 транзакта
0,5/1,9/2,4/3,10; параметр 3 принимает значения 0,1,2,3, функция F1 – значения 5,9,4,10
*
F2 FUNCTION RN$1,C3; непрерывная функция F2 зависит от значений RN$1
.2,300/.5,700/1,1000; при RN$1, принимающем значения от 0 до 0.2, F2 получает
* значения от 0 до 300 в соответствии с линейной зависимостью Y от X: Y=1500*X.
*
PP FUNCTION V$3,D3; дискретная функция PP зависит от переменной номер 3
2,V$4/3,V$5/6,FN$PUAS; при V$3=2 значения функции PP вычисляются
*по формуле, записываемой для переменной V$4, при V$3=3 – по формуле, *записываемой для переменной V$5, при V$3=6 функция РР принимает
*значение функции PUAS.
Переменные применяются для определения значений по формулам, состоящим из СЧА или СЛА и соответствующих операций. В GPSS-программе целочисленные и булевы переменные описываются оператором VARIABLE, а переменные с плавающей точкой – оператором FVARIABLE, которые имеют формат:
Имя_переменной VARIABLE формула
В формуле могут использоваться операции сложить +, вычесть -, умножить *, разделить /, разделить по модулю @, найти отношение =, >, <, >=, <=.
Примеры.
11 FVARIABLE XH$1*FN$EXP/XH$2+1
15 VARI XH$6-XH$8
V1 VARIABLE XH$1*(P$1-1)
V2 VARI P$2+FN$NORM
V3 FVAR S$MON*XF$5/10;
V4 FVAR V$V2+3.5; переменная V4 вычисляется как сумма значения переменной V2 и числа 3.5.
5 FVAR FN$EXP*3.14
Примечание.
В приведенных выше примерах имена переменных V1,V2,V3,V4 должны быть объявлены. Переменные в первой, второй и в последней строке не объявляются и задаются номерами 11,15, 5.