Главная » Все файлы » Просмотр файлов из архивов » Документы » Краткое руководство по моделированию на языке GPSS

Краткое руководство по моделированию на языке GPSS, страница 4

2017-12-27СтудИзба

Описание файла

Документ из архива "Краткое руководство по моделированию на языке GPSS", который расположен в категории "". Всё это находится в предмете "имитационное моделирование дискретных процессов" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "имитационное моделирование дискретных процессов" в общих файлах.

Онлайн просмотр документа "Краткое руководство по моделированию на языке GPSS"

Текст 4 страницы из документа "Краткое руководство по моделированию на языке GPSS"

2. SAVEVALUE WES+,2

Значение сохраняемой величины X$WES увеличивается на 2.

Оператор MATRIX

Матрица сохраняемых величин – это совокупность параметров, предназначенная для сохранения скалярных значений, организованная в виде двумерной матрицы. Адресация такой величины имеет вид МХ ( I, J ), где МХ – стандартное имя матрицы; I,J – номера или имена элемента матрицы МХ.

Оператор определяет матрицу сохраняемых величин. Имеет декларирующий характер и располагается выше описаний треков.

Синтаксис. <имя матрицы> MATRIX A,B,C

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

А - неиспользуемое поле (для совместимости с ранними версиями GPSS).

В - максимальное количество элементов в первом измерении. (количество строк матрицы). Допустимое значение – целое число. Обязательный операнд

С - максимальное количество элементов во втором измерении (количество столбцов матрицы). Допустимое значение – целое число. Обязательный операнд.

Пример.

REZULT MATRIX ,15, 3

Оператор определяет матрицу с именем REZULT с 15 строками и 3 столбцами.

Блок MSAVEVALUE

Назначение. Блок присваивает, увеличивает или уменьшает значение элемента матрицы сохраняемых величин.

Синтаксис. MSAVEVALUE A[±],B,C,D

Операнд

Назначение

Значение

Значение
по умолчанию

A

Имя изменяемой матрицы сохраняемых величин

Имя / число / СЧА

Обязательный операнд

B

Номер строки матрицы

Имя / число / СЧА

Обязательный операнд

C

Номер столбца матрицы

Имя / число / СЧА

Обязательный операнд

D

Значение, которое присвоено, прибавлено или вычтено из элемента матрицы

Имя / число / СЧА

Обязательный операнд

Особенности выполнения.

  1. Матрица должна быть предварительно определена с помощью оператора определения данных MATRIX.

  2. Если операнд А сопровождается знаком «+», то к значению элемента матрицы, определенного операндами А, B и C, прибавляется значение, определенное операндом D.

  3. Если операнд А сопровождается знаком «-»,то из значения элемента матрицы, определенного операндами А, B и C, вычитается значение, определенное операндом D.

  4. Если за операндом А нет знака, то значение элемента матрицы, определенного операндами А, B и C, заменяется значением, определенным операндом D.

Пример.

MSAVEVALUE DATA,4,5,P7

Элементу матрицы DATA с номером строки 4 и номером столбца 5 присваивается значение седьмого параметра активного транзакта.

Обращение к этому элементу в арифметических и других выражениях имеет вид MX(4, 5)

Оператор VARIABLE

VARIABLE является оператором-функцией, определяющим арифметическую целую переменную, имеющую имя V I, где V – стандартное обозначение переменной типа оператор-функция, I – номер или имя функции VARIABLE.

Синтаксис: <имя переменной> VARIABLE <арифметическое выражение>

Имя переменной - символическое или числовое имя переменной, ставится в поле меток.

Арифметическое выражение определяет значение данной переменной.

Примеры.

1. 5 VARIABLE 46+P6

Арифметическая переменная с числовым именем 5 равна сумме числа 46 и значения параметра 6 активного транзакта.

Обращение к этой переменной имеет вид V5.

2. SUM VARIABLE (P3 + Р4)/5

Арифметическая переменная с символическим именем SUM равна сумме значений 3-го и 4-го параметров активного транзакта, деленной на 5.

Обращение к этой переменной имеет вид V$SUM.

Арифметическая переменная может использоваться как:

  • элемент другой арифметической переменной, булевой переменной;

  • аргумент функции, таблицы;

  • операнд блока

Оператор FVARIABLE

FVARIABLE является оператором-функцией, определяющим арифметическую переменную с фиксированной точкой, имеющую имя FV I, где FV – стандартное обозначение, I – номер или имя функции FVARIABLE.

Синтаксис. <имя переменной> FVARIABLE <арифметическое выражение>

Имя переменной - символическое или числовое имя переменной, ставится в поле меток.

Арифметическое выражение определяет значение переменной.

Пример.

PBR FVARIABLE (Sl-S$CAN)/5+3.6

Ссылка на арифметическую переменную с фиксированной точкой выполняется так же, как и на арифметическую переменную.

Оператор BVARIABLE

Оператор определяет булеву переменную.

Синтаксис. <имя переменной> BVARIABLE <булево выражение>

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

Пример.

FLAG BVARIABLE BV$CAN1’AND’BV$CAN2

Значение переменной FLAG равно 1, если булевы переменные CAN1 и CAN2 имеют значение TRUE, и равно 0 в других случаях.

Оператор FUNCTION (упрощенная транскрипция)

Оператор определяет функцию GPSS, заданную таблично.

Синтаксис. <имя функции> FUNCTION А,ВN

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

А - аргумент функции; обязательный операнд. Допустимые значения – имя, число, СЧА.

В - тип функции (одна буква) и N - количество пар данных в списке данных функции. Обязательный операнд.

Обращение к функции выглядит, как FN I, где I – имя функции.

Существует несколько типов функций. Тип определяется операндом В оператора FUNCTION.

За строкой FUNCTION А,ВN сразу же должна следовать строка, содержащая список пар данных, разделенных символом «/». Каждая пара данных определяет значения аргумента X и значения функции Y, разделенные запятой. Список данных используются для вычисления значения функции по заданным значениям аргумента.

В данной транскрипции оператора представимо 2 типа функций. Полное изложение вариантов задания функции приведено в приложении.

  1. Функции типа С – непрерывные числовые функции.

В списке данных функций типа С значения X и Y должны быть целочисленными (Integer) или вещественными (Real). Значения X и Y хранятся, как числа с плавающей точкой двойной точности.

Вычисление функции начинается с вычисления аргумента. Далее определяется интервал (Xi;Xi+1), на котором находится вычисленное значение аргумента и на этом интервале выполняется линейная интерполяция двойной точности с использованием соответствующих значений Yi и Yi+1. Результатом является значение функции двойной точности. Если аргумент попадает за предельные значения области определения функции, возвращается значение функции в ближайшей предельной точке.

Примеры.

1) ART FUNCTION X1,C3

1.1,10.1/20.5,98.7/33.3,889.2

Оператор определяет кусочно-линейную функцию с двумя линейными участками. Если мы обращаемся к функции FN$ART, то по значению сохраняемой величины Х1 вычисляется функция в соответствии с заданной совокупностью точек.

Пример приближенного представления обратного экспоненциального распределения со средним, равным 1.

2) Xpdis FUNCTION RN1,С24

0,0/.1,.104/.2, .222/.3, .355/.4, .509/.5, .69/.6,.915/.7,1.2/.75,1.38

.8, 1.6/.84, 1.83/.88, 2.12/.9, 2.3/.92, 2.52/.94, 2.81/.95, 2.99/.96,3.2

.97, 3.5/.98, 3.9/.99, 4.6/.995, 5.3/.998,6.2/.999,7/.9998,8

  1. Функции типа D - дискретные функции.

В списках данных функций типа D значения X должны быть целочисленными или вещественными, а значения Y – целочисленными, вещественными или именами.

Функция типа D задает одно и то же значение функции Yi для всех значений аргумента Xi-1< X ≤Xi. Значения X в списке данных функции должны быть неубывающими. Внутренне они сохраняются, как числа двойной точности. Когда вычисляется функция, значения X в списке данных функции просматриваются от наименьшего к наибольшему. Когда найдено значение X, которое больше или равно текущему значению аргумента, возвращается соответствующее ему значение Y. Если такое значение X отсутствует, возвращается значение Y или именованная величина, соответствующая самому большому значению X.

Примеры.

1) LIR FUNCTION X$A2,D5

1.1,6.9/2.1,7/6.33,9.4/7,10/9.9,12.01

2) RAF FUNCTION RN1,D5

0,0/.2,7.2/.4,6.667/.8,9.92/1.0,10

Оператор INITIAL

Оператор INITIAL задает начальное значение сохраняемым величинам, элементам матрицы, логическим ключам.

Синтаксис. INITIAL А,В

А - логический ключ, сохраняемая величина, элемент матрицы, определенные как СЧА. Операнд А должен иметь форму СЧА классов LS, X, MX или имени матрицы. В операнде А нельзя использовать параметры транзакта.

В - присваиваемое значение

Если операнд А указывает на логический ключ, присваиваются только значения 0 или 1. Если операнд В явно задан как 0, то присваивается значение 0. В противном случае присваивается 1. Если операнд А задает имя матрицы, всем ее элементам присваивается значение, указанное операндом В. По умолчанию это 1. Для задания элемента двумерной матрицы может использоваться СЧА класса MX.

Примеры

INITIAL Х21,17

INITIAL L$KLU,1

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

Блок TRANSFER (упрощенная транскрипция)

Назначение. Блок передает транзакт на указанный блок.

Синтаксис. TRANSFER [A],B

Операнд

Назначение

Значение

Значение по умолчанию

A

Вероятность Р продолжения движения транзакта по треку

Число / СЧА

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

B

Номер или метка блока, куда переходит транзакт с вероятностью (1-Р)

Имя / число / СЧА

Нет

Особенности выполнения.

  1. Режим статистической передачи

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

Пример

TRANSFER 0.3,LAB1

Транзакт с вероятностью 0.3 продолжает движение дальше по треку, с вероятностью 0.7 – поступает на блок, помеченный меткой LAB1.

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

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

Пример

TRANSFER ,NO_SERV

При входе транзакта в блок TRANSFER, он передается в блок с меткой NO_SERV.

Полное изложение синтаксиса блока помещено в приложении.

Блок TEST

Назначение. Блок выполняет навигацию транзакта в зависимости от результата операции отношения, заданной в этом же блоке.

Синтаксис. TEST X A,B[,C]

Операнд

Назначение

Значение

Значение по умолчанию

X

Операция отношения (см.выше)

Условная операция отношения

Обязательный операнд

A

Левая часть отношения

Имя / число / СЧА

Обязательный операнд

B

Правая часть отношения

Имя / число / СЧА

Обязательный операнд

C

Метка или номер блока, в который будет передан транзакт

Имя / число / СЧА

Режим отказа

Особенности выполнения.

Блок TEST функционирует в двух режимах:

  1. Если операнд С не используется, блок TEST функционирует в режиме отказа. Когда транзакт пытается войти в блок TEST, работающий в режиме отказа, и заданное условие не выполняется, транзакт блокируется, и ему не позволяется войти в блок TEST, проверка повторяется до тех пор, пока условие не будет выполнено. После выполнения заданного условия активный переходит к следующему по порядку блоку.

  2. Если операнд С используется, блок TEST функционирует в режиме передачи транзакта. Когда транзакт пытается войти в такой блок TEST и проверяемое условие не выполняется, транзакт переходит к блоку, указанному в операнде С. Если проверяемое условие выполняется, активный транзакт входит в блок TEST и затем переходит к следующему по порядку блоку.

Примеры.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее