Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Режим безусловной передачи.




Разработка и эксплуатация моделей в среде GPSS World.

Моделирование систем массового обслуживания.

Использование функций

Функции предназначены для вычисления значения переменной, соответствующего некоторому значению аргумента. Определение функций осуществляется табличным способом. Чтобы задать функцию с помощью оператора описания функции необходимо:

1. присвоить функции имя;

2. задать аргумент функции;

3. задать тип функции

4. задать число точек, по которым строится функция;

5. задать значения аргумента и соответствующие им значения функции.

Формат оператора описания функции:

Имя функции FUNCNION A,B

Имя функции может быть числовое или символьное.

Операнд А задает аргумент функции. Аргументом может быть:

1. ссылка на генератор случайных чисел в виде RN<номер генератора>;

2. стандартный числовой атрибут;

3. ссылка на любую другую функцию.

Операнд В задает тип функции и число точек, по которым строится функция, в виде

1. С<число точек>, С — непрерывная числовая функция;

2. D<число точек>, D — дискретная числовая функция;

3. L<число точек>, L — табличная числовая функция;

4. Е<число точек>, Е — дискретная атрибутивная функция;

5. М<число точек>. М - табличная атрибутивная функция.

За каждым оператором описания функции FUNCNION следуют операторы описания координат функции в виде

X1,Y1/X2,Y2/…/Xn,Yn

где Xi. и Yi. координаты i-и точки функции.

В качестве Х используют накопленную (суммарную) частоту (вероятность), в качестве Y – значение случайной величины или метку.

Если имя функции числовое, то к значению функции обращаемся: FN<число>,

Если имя функции символьное, то: FN$<имя функции>.

Для генерации потока транзактов можно использовать библио­течные процедуру (функции).

При генерации потока транзактов по экспоненциальному закону распределения используют блок:

GENERATE (EXPONENTIAL(Stream, Locate, Scale)) .

При вызове вероятностного распределения требуется определить аргу­мент Stream, который определяет номер генератора случайных чисел в виде RN<номер генератора>.

Большинство вероятностных распределений имеют ряд параметров, называемых обычно Locate, Scale и Shape. Аргумент Locate использует­ся после построения распределения и прибавляется к нему. Это позво­ляет перемещать функцию распределения вдоль оси X. Аргумент Scale обычно изменяет масштаб функции распределения, а аргумент Shape изменяет ее форму. Во встроенной системе помощи для каждой стан­дартной процедуры вероятностного распределения приведена формула плотности распределения и устанавливается соответствие между аргу­ментами Locate, Scale, Shape библиотечной процедуры и переменными, используемыми в формуле плотности распределения.

Сохраняемые величины

Для задания переменных используют операторINITIAL

INITIAL <А>,<В>

Оператор записывается вне тела основной программы.

Операнд <А> определяет сохраняемую величину с символьным именем в виде X$<имя ячейки> или с номером в виде Х<номер ячейки>. В поле <В> задается первоначальное значение.

Блок ASSIGN

Используется для определения и изменения параметров транзактов

При входе транзакта в модель начальные значения всех его параметров устанавливаются в ноль. Для изменения параметров транзактов используется блок ASSIGN (НАЗНАЧИТЬ). При входе транзактов в блок ASSIGN параметры могут задаваться или изменяться. Формат блока:

ASSIGN А,В,С .

Операнд А определяет имя или номер модифицируемого или задаваемого параметра.

Блок ASSIGN может использоваться в режиме замещения значения параметра и в режиме увеличения или уменьшения значения параметра.

В режиме увеличения текущее значение параметра увеличивается на значение, указанное в операнде В.

В режиме уменьшения текущее значение параметра уменьшается на величину, указанную в операнде В.

В режимах увеличения и уменьшения после операнда А перед запятой, разделяющей операнды А и В, соответственно режиму ставятся знаки "+" или "-".

В режиме замещения после операнда А ничего не ставится

Операнд С (если используется) определяет во сколько раз необходимо увеличить операнд В

Изменение направления движения транзактов

Блок TRANSFER

Блок TRANSFER (передать) предназначен для передачи входящего в этот блок транзакта в любой другой блок модели и может быть использован в разных режимах. Существуют следующие режимы работы блока:

1. безусловный режим - переход к указанному блоку;

2. статистический режим — выбор случайным образом одного из двух блоков;

3. режим ВОТН — последовательный выбор одного из двух блоков;

4. режим АLL - последовательный выбор одного из нескольких бло­ков;

5. режим РIСК — выбор случайным образом одного из нескольких блоков;

6. режим FN — функциональный режим;

7. режим Р — параметрический режим;

8. режим SBR — подпрограммный режим;

9. режим SIМ — одновременный режим.

В общем случае блок TRANSFER имеет следующий формат:

TRANSFER А,В,С,D

В зависимости от режима использования блока TRANSFER меняется число и назначение используемых операндов блока. Рассмотрим три основных режима, чаще других применяемых на практике.

Статистический режим.

TRANSFER А,В,С .

В этом режиме операнд А используется и не является зарезервированным словом, предназначенным для обозначения режима (ВОТН, АLL, РIСК, FN, Р, SBRК). В этом режиме осуществляется передача транзакта в один из двух блоков случайным образом.

Операнд А определяет вероятность передачи транзакта в блок, позиция которого задана операндом С; операнд В определяет позицию блока, в который должен перейти транзакт с вероятностью 1-А, операнд С определяет позицию блока, в который должен перейти транзакт с вероятностью равной значению операнда А. Позиция блока - это номер или метка блока.

Если значение операнда А - положительное целое число, то вероятность интерпретируется в долях тысячи. Если при задании вероятности в операнде А первый символ записи значения операнда есть "." (десятичная точка), то значение вероятности интерпретируется как де­сятичная дробь, например, 0.235. Таким образом, если значение операнда А записать в виде "333", либо ".333", то результат в обоих слу­чаях будет одинаковым. Если значение операнда А окажется меньше или равно нулю, то все транзакты будут направляться в блок, указанный в операнде В. Если значение операнда А окажется больше или равно 1000, то все транзакты будут направляться в блок, указанный в операнде С.

Режим безусловной передачи.

TRANSFER ,В

В этом режиме операнд А не используется; операнд В определяет позицию блока, в который должен перейти транзакт. Так как операнд А не используется, то перед операндом В должна стоять запятая. В режиме безусловной передачи блок TRANSFER не может отказывать транзакту во входе. Если в данном режиме транзакт входит в блок TRANSFER, то он сразу же пытается войти в блок, указанный в операнде В. Если блок, указанный в операнде В, не принимает транзакт, то транзакт остается в блоке TRANSFER и в дальнейшем и при каждом просмотре списка текущих событий будет повторять попытки перейти в заданный блок.

Режим ВОТН. Если в операнде А стоит зарезервированное слово ВОТН, то блок TRANSFER работает в режиме ВОТН.

В этом режиме входящий в блок TRANSFER транзакт сначала пытается перейти к блоку, указанному в операнде В. Если это сделать не удается, то транзакт пытается перейти в блок, указанный в операнде С. Если транзакт не сможет перейти ни к тому, ни к другому блоку, то он остается в блоке TRANSFER и при каждом просмотре списка текущих событий будет повторять в том же порядке попытки перехода до тех пор, пока не сможет выйти из блока TRANSFER.

TEST X A,B,C

Блок определяет номер следующего блока для вошедшего в него транзакта в зависимости от того, выполняется требуемое условие или нет. Блок управляет потоком транзактов, проверяя выполнение ал­гебраических отношений между значениями, заданными в полях <А> и <В>. Во вспомогательном поле операции <Х> записывается один из шес­ти условных операторов:

LE — меньше или равно (отношение истинное, если значение аргу­мента поля <А> меньше или равно значению аргумента поля <В>);

— больше или равно (отношение истинное, если значение аргу­мента поля <А> больше или равно значению аргумента поля <В>);

Е — равно (отношение истинное, если значения обоих аргументов полей <А> и <В> равны);

L — меньше (отношение истинное, если значение аргумента поля <А> меньше значения аргумента поля <В>);

G— больше (отношение истинное, если значение аргу­мента поля <А> больше или равно значению аргумента поля <В>);

NE — не равно (отношение истинное, если значения аргументов по­лей <А> и <В> не равны).

Если отношение аргументов истинно, транзакт переходит к следую­щему по номеру блоку. Если отношение ложно, транзакт переходит к блоку, имя которого задано полем <С>.

 










Последнее изменение этой страницы: 2018-05-29; просмотров: 256.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...