Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
В.Д. Боев, Р.П. Сыпченко.docx
Скачиваний:
176
Добавлен:
19.09.2019
Размер:
7.07 Mб
Скачать

6.2.6. Методы изменения маршрутов движения транзактов в модели

Для изменения маршрутов движения транзактов в модели применяются блоки DISPLACE, LOOP, GATE, TEST и TRANSFER. Здесь мы рассмотрим методы применения блоковTRANSFER и DISPLACE.

6.2.6.1. Блок transfer

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

TRANSFER [A],[B],[C],[D]

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

  • , (по умолчанию) - безусловный;

  • - статистический, выбор случайным образом одного из двух блоков;

  • ВОТН - последовательный выбор одного из двух блоков;

  • ALL - последовательный выбор одного из нескольких блоков;

  • PICK - выбор случайным образом одного из нескольких блоков;

  • FN - функциональный;

  • P - параметрический;

  • SBR - подпрограммный;

  • SIM - одновременный.

Операнд А может принимать указанные выше значения, а также может быть именем, положительным целым числом, выражением в скобках, СЧА, СЧА*параметр.

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

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

Режим безусловной передачи. B режиме безусловной передачи операнд А не используется. Операнд B указывает имя блока, в который транзакт должен попытаться войти. Блок TRANSFER не может отказать транзакту во входе.

Например:

TRANSFER ,Oper

После входа транзакт сразу же пытается войти в блок с меткой Oper. Если этот блок отказывает во входе, транзакт остается в блоке TRANSFER.

Рассмотрим еще один пример использования безусловного режима блока TRANSFER. Пусть требуется поток обслуженных транзактов перед удалением из модели разделить на четыре составляющие. Первый параметр каждого транзакта имеет одно из четырех присвоенных ранее значений: 1, 2, 3 или 4. Вначале для разделения потока используем блок TEST.

. . .

TEST E P1,1,Met2

Met2 TERMINATE

TEST E P1,2,Met3

TERMINATE

Met3 TEST E P1,3,Met4

TERMINATE

Met4 TERMINATE

Теперь этот же фрагмент модели перепишем с использованием блока TRANSFER.

. . .

Met1 TRANSFER ,(Met1+P1)

TERMINATE

TERMINATE

TERMINATE

TERMINATE

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

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

Значение операнда А, записываемого после точки, рассматривается как трехзначное число, показывающее (в долях от тысячи), какая доля входящих в блок транзактов должна быть направлена в блок С. Остальные транзакты направляются в блок B или к следующему по номеру блоку, если операнд B опущен.

Числовое значение операнда А может быть задано любым СЧА. При этом возможны следующие случаи:

  • значение операнда А меньше или равно нулю;

  • значение операнда А равно или больше 1 000 ;

  • значение операнда А больше нуля, но меньше 1 000.

Если вычисленное значение операнда А меньше или равно нулю, то будет производиться безусловная передача транзакта к блоку B. Если значение операнда А больше или равно 1 000, то будет осуществляться безусловная передача транзакта к блоку С. В третьем случае блок TRANSFER работает в обычном режиме.

Например:

TRANSFER .P5,,Rrw

Трехзначное число, записанное в параметре 5 транзакта, входящего в блок TRANSFER, интерпретируется как вероятность (в долях от тысячи) того, что транзакт будет передаваться блоку Rrw, а в остальных случаях - следующему блоку, так как операнд B не используется.

Режим статистической передачи удобно использовать, например, в таких случаях. При моделировании работы цеха по производству деталей известно, что 12,5%изготовленных деталей бракуется. В модели это можно реализовать так:

. . .

TRANSFER .125,Sam,Wzw

. . .

Транзакты, имитирующие изготовленные в цехе детали, в 12,5% случаев будут направлены к блоку с

меткой Wzw, а в остальных 87,5% случаях - к блоку с меткой Sam.

Можно указать генератор - источник случайных чисел. Для этого нужно выбрать Edit/Settings Правка/Настройки ). Затем выбрать страницу Random Numbers (Случайные числа ) и ввести номер генератора в поле ввода, отмеченное TRANSFER. После инсталляции по умолчанию используется генератор номер 1.