Смекни!
smekni.com

Методические указания по курсовому проектированию по курсу «Исследование систем управления» кафедра информационных технологий в экономике и бизнесе (стр. 12 из 20)

4. Операнд А имеет впереди символы RT (arrival rate), что обозначает определение доли приходов (относительной частоты) в какой то интервал. При этом варианте операндом Е оговаривается интервал времени являющийся шагом таблицы. Этот вид используется для определения такой статистики как « приход в течении часа » . Счётчик приходов ОБ TABULATE при каждом исполнении ОУ TABLE увеличивается на единицу. После того как определена таблица, управление осуществляется с помощью «контролёра транзактов », располагающегося в СБС, где к текущему значению абсолютного времени прибавляется значение времени, стоящее в операнде Е. При этом каждый раз производятся следующие действия: накопленное время записывается в таблицу, счётчик приходов обнуляется, контролируемый транзакт включается в СБС со временем равным текущему значению абсолютного времени плюс значение операнда Е.

В - не имеет значения по умолчанию, определяет собой верхнее значение первого ( нижнего ) интервала частот, в GPSS/H допускается использование числа с плавающей точкой. Первый интервал может простираться до минус бесконечности.

С – не имеет значения по умолчанию, представляет собой ширину интервала и постоянен для всех интервалов кроме первого и последнего. Естественно, что ширина интервала должна быть больше нуля и может представляться числом с плавающей точкой. (Для лучшего восприятия таблицы следует использовать целочисленные значения).

D – не имеет значения по умолчанию, определяет число частотных интервалов таблицы. Если первый символ операнда D буквенный - а именно W, то такая таблица является взвешенной . При этом ОБ TABULATE, используя свой операнд В создаёт взвешенные значения средних величин, стандартных отклонений, количества наблюдений. На рис. 3.2 приведена схема построения таблицы


1-ый 2-ой 3-ий D-1- ый Последний

С


-

В В+С В+2С В+(D-2)C B+(D-1)C
Рис.3.2 Схема построения таблицы

При построении таблицы используются следующие правила :

· Если, записываемое в таблицу значение меньше или равно верхней границе первого интервала, оно записывается в этот первый интервал ,

· Если, записываемое в таблицу значение больше верхней границы предпоследнего интервала, оно записывается в последний интервал ,

· Все другие значения включаются в свои частотные интервалы, по принципу меньше или равно значению верхнего предела промежуточного интервала,

· Когда происходит запись наблюдаемого значения, показания счётчика частотного интервала увеличивается на единицу.

Рассмотрим примеры записи ОУ TABLE :

1. SAM TABLE M1,100,100,10

2. SAM TABLE M1,100,100,W10

3. 10 TABLE IA,50,50,5

4. ARRIV TABLE RT50,50,10,1000

Первый и второй примеры для таблицы SAM, отличаются только тем, что вторая таблица взвешенная. В них верхняя граница первого интервала равна 100 , ширина промежуточных интервалов равна 100, число интервалов 10. В третьем примере для таблицы с номером 10, определяются промежутки между приходами транзактов, верхняя граница первого интервала равна 50, ширина промежуточных интервалов равна 50, число интервалов равно 5. В четвёртом примере для таблицы с именем ARRIV определяется доля приходов в долях 1000 ( операнд Е ), верхняя граница первого интервала равна 50, ширина промежуточных интервалов равна 50 , число интервалов равно 10.

В. Операторы управления логикой моделирования

DO/ENDO( Выполнить/ Завершить выполнение )
Эти два парных оператора служат для организации петли управления процессом ИМ. Когда необходимо провести несколько независимых прогонов МФ, существует два способа получения этих прогонов не выходя из процесса ИМ. Первый из них осуществляется с помощью ОУ CLEAR и парного с ним ОУ START , при этом число этих парных ОУ равняется числу желательных прогонов . Естественно, что при большом числе прогонов запись МФ перегружается этими указаниями. Второй способ - организация компактной записи с помощью парных ОУ DO/ENDDO, формат этих ОУ имеет вид :

< [label] DO A,B,[C] >

< [label] ENDDO >

label - не обязательный ярлык , который чаще всего отсутствует, характеризует собой имя организуемой пели ,

А - не имеет значения по умолчанию, символизирует собой индекс начала петли, представляющий собой целочисленную скалярную АМП, записываемый в виде &I=1.

B - не имеет значения по умолчанию, характеризует собой предельный номер конечного члена петли,

С – не обязательный операнд, по умолчанию равен единице, задаёт приращение индекса.

Когда индекс достигает предельного значения , исполняется ОУ ENDDO и петля управления прекращает своё существование. Если значения заданы числом с плавающей точкой, то число усекается до целого значения, отрицательные приращения программой не поддерживаются. Количество петель управления может достигать 19, причём они вкладываются друг в друга, создавая своеобразную иерархию, второстепенные петли в МФ изображаются с отступом вправо от основной петли, следующая вложенная петля также отступает вправо. Между ОУ DO/ENDDO размещаются другие ОУ , например CLEAR/START. Отметим важные особенности петли ОУ DO/ENDDO :

· DO/ENDDO создают структуру петли управления, а не петли транзактов, поэтому в петле присутствуют только ОУ, а не ОБ.

· Необходимо помнить, что операнды в петле должны записываться по правилам записи операндов, предусмотренных программой, т.е. без пробелов, появление пробела справа воспринимается программой как начало комментарий.

Рассмотрим пример записи петли управления:

DO &I=1,10,1

START 1

CLEAR

ENDDO

END

В примере петля управления задана операндами ОУ DO, операнд D можно было бы не писать, так как его значение по умолчанию и так равно 1, петля начинается с первого шага и заканчивается на 10 -м шаге. При каждом значении индекса происходит исполнение ОУ START/CLEAR . При отсутствии петли управления эту пару ОУ надо было бы написать 10 раз подряд. Отметим также, что при введении петли управления на первое место в модуле управления встаёт ОУ DO.

ОУ DO/ENDDO являются важными компонентами мощного и гибкого языка операторов управления (control statement language -CSL), являющегося частью GPSS/H .

Другие ОУ управления логикой

Другими компонентами CLS являются ОУ, обеспечивающий простоту вычислений - LET, ОУ ввода и вывода информации – GETLIST и PUTPIC, логические операторы IF,ELSEIF,ELSE ,ENDIF, ОУ способный обращаться и вызывать внешние подпрограммы - CALL , ОУ безусловного обращения GOTO . Все эти операторы представляют несомненный интерес , но их рассмотрение выходит за рамки предлагаемого материала.

3.3.3 Операторы описания

Ниже рассмотрим только основные ОО, которые будут использоваться в материале, приводимые ОО даются в алфавитном порядке.

INTEGER

Этот ОО используется для описания целочисленных АМП, представляющих собою скалярную одноразмерную переменную. Все целочисленные АМП должны быть определены в ОО INTEGER до их первого появления в МФ. Формат записи ОО INTEGER имеет вид :

< INTEGER A,B,C,… >

label - не имеет значения по умолчанию, появление ярлыка воспринимается как ошибка компиляции.

А – не имеет значения по умолчанию, отсутствие операнда воспринимается как ошибка компиляции, определяет имя целочисленной АМП.

В,С - имеют тот же смысл, что и операнд А и при необходимости определяют дополнительные целочисленные АМП.

Таким образом, ОУ INTEGER может определять несколько АМП одновременно. При этом АМП разделяются запятыми, если определяется одноразмерный массив, то число членов массива заключается в круглые скобки. Рассмотрим пример использования ОУ INTEGER

1. INTEGER &I,&J,&K

2. INTEGER &IVEC(25)

В первом примере задаются 3 различных АМП, во втором примере определяется массив, включающий в себя 25 членов. Существует ещё четыре ОО, описывающие другие типы АМП ( см.3.3.4).

OPERCOL ( переназначить начало записи операндов )

Этот ОО используется для переназначения стартовой позиции записи операндов, которая по умолчанию начинается с 25-ой колонки ( подробнее см. параграф 3.4) и может меняться от 10-ой до 60-ой колонки. Формат записи ОО OPERCOL (ORERand start COLumn ) имеет вид:

< OPERCOL A >,

А – по умолчанию равен 25, при наличии операнда меняет позицию начала записи операндов, в соответствии с числом стоящим в поле операнда (10 –60 ).

Приведём пример записи ОО OPERCOL :

OPERCOL 35

В примере стартовая позиция начала записи операндов изменена на 35.

Применение ОО OPERCOL особенно полезно, когда создаются одинарные или вложенные петли управления, ОО OPERCOL располагается в модуле описания.

REALLOCATE ( перераспределять )

Этот ОО используется для указания об увеличении общей памяти, которая в студенческой версии имеет объём равный 32720 байт, а обычно используется 10000 байт. Располагается ОО REALLOCATE в любом месте МФ, но разумней располагать его в модуле описания, чтобы не дожидаться появления сообщения об ошибке № 411 –« out of COMMON »- переполнение общей памяти. Формат записи ОО REALLOCATE имеет вид :