Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Режим безусловной передачи.Стр 1 из 2Следующая ⇒
Разработка и эксплуатация моделей в среде 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 — меньше или равно (отношение истинное, если значение аргумента поля <А> меньше или равно значению аргумента поля <В>); GЕ— больше или равно (отношение истинное, если значение аргумента поля <А> больше или равно значению аргумента поля <В>); Е — равно (отношение истинное, если значения обоих аргументов полей <А> и <В> равны); L — меньше (отношение истинное, если значение аргумента поля <А> меньше значения аргумента поля <В>); G— больше (отношение истинное, если значение аргумента поля <А> больше или равно значению аргумента поля <В>); NE — не равно (отношение истинное, если значения аргументов полей <А> и <В> не равны). Если отношение аргументов истинно, транзакт переходит к следующему по номеру блоку. Если отношение ложно, транзакт переходит к блоку, имя которого задано полем <С>.
|
||
Последнее изменение этой страницы: 2018-05-29; просмотров: 309. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |