Главная страница

Механики


Скачать 4.29 Mb.
НазваниеМеханики
Дата25.01.2023
Размер4.29 Mb.
Формат файлаpdf
Имя файлаAliev.pdf
ТипДокументы
#904727
страница38 из 49
1   ...   34   35   36   37   38   39   40   41   ...   49
имя
Значение
Q
Текущее значение длины очереди
QA
Среднее значение длины очереди
QC
Количество входов в очередь (увеличивается на величину операнда B блока QUEUE)
QM
Максимальное значение длины очереди
QT
Среднее время пребывания в очереди с учетом нулевых входов
QX
Среднее время пребывания в очереди для входов без учета нулевых входов
QZ
Количество нулевых входов в очередь, при которых время ожидания было равно нулю
Кроме того, могут использоваться следующие СЧА объектов:

СЧА таблиц:

TB$<Имя>– Среднее значение элементов таблицы

TC $<Имя>– Количество учтенных в таблице элементов

TD $<Имя>– Стандартное отклонение элементов таблицы

СЧА функции:

FN$<Имя>– результат вычисления функции;

СЧА переменной:

V$<Имя>– результат вычисления переменной.
Примеры
СЧА объектов:
FR3 – возвращает значение загрузки прибора с номером 3;
FT$Auto_Master – возвращает среднее время занятия транзактом прибора с именем Auto_Master.
S22 – возвращает количество занятых приборов в многоканальном устройстве с номером 22;
SM$Kassa_2m – возвращает максимальное количество занятых приборов в многоканальном устройстве с именем Kassa_2m.
V$F_5 – возвращает значение переменной F_5.
К СЧА системы относятся такие глобальные переменные как:

АС
1 – значение абсолютного модельного времени (с момента начала моделирования или последней команды CLEAR);

С
1 – значение относительного модельного времени (с момента последней команды RESET);

TG1 – текущее значение счетчика завершения;

Z1 – свободная оперативная память ЭВМ в байтах.
К СЧА транзактов относятся:

MP<Число>или MP$<Имя>– транзитное время транзакта

270
Раздел 6. Имитационное моделирование
(абсолютное модельное время минус значение, содержащееся в параметре
<Число> или
<Имя>);

P<Число>или P$<Имя>– значение параметра <Число>или
<Имя>;

PR – приоритет транзакта;

M1 – резидентное время транзакта (абсолютное модельное время минус время появления транзакта в модели);

XN1– номер активного транзакта.
6.4.7.
Встроенные
вероятностные
распределения
Встроенная библиотека процедур GPSS World содержит более 20 вероятностных распределений, в том числе:

равномерное (Uniform);

экспоненциальное (Exponential);

геометрическое (Geometric);

Пуассона (Poisson);

Бета (Beta);

Гамма (Gamma);

биномиальное (Binomial);

дискретно-равномерное (Discrete Uniform);

треугольное (Triangular);

нормальное (Normal);

Парето (Pareto); …
Для обращения к вероятностному распределению необходимо указать имя библиотечной процедуры и её параметры, заключённые в круглые скобки и отделённые друг от друга запятой:
<Имя процедуры>(G,А,В, …)
Здесь G – номер генератора равномерно распределённых случайных чисел (от 1 до 999) – используется в качестве аргумента для формирования случайных величин с заданным законом распределения. Остальные параметры A, B, …, количество которых для разных распределений составляет от 1 до 4, задают непосредственно параметры вероятностного распределения.
Ниже рассматриваются только некоторые из перечисленных распределений, наиболее часто используемые в моделях массового обслуживания.
1. Равномерное распределение:
UNIFORM (G,Min,Max), где Min и Max – соответственно минимальное и максимальное значение равномерно распределённой случайной величины.
2. Экспоненциальное распределение:
EXPONENTIAL (G,Min,Mean), где Mean – математическое ожидание (среднее значение) случайной

Раздел 6. Имитационное моделирование
271 величины, распределённой по экспоненциальному закону;
Min – смещение распределения относительно нуля (минимальное значение случайной величины).
3. Распределение Пуассона:
POISSON (G,Mean), где Mean – математическое ожидание (среднее значение) случайной величины.
4. Геометрическое распределение:
GEOMETRIC (G,P), где P – параметр распределения, принимающий значения в интервале (0;1).
Библиотечные процедуры вероятностных распределений могут использоваться в выражениях, в том числе арифметических, а также в качестве операнда A в операторах GENERATE и ADVANCE. В последнем случае они рассматриваются как выражения языка PLUS и должны быть заключены в круглые скобки.
6.5.
Операторы
блоков
GPSS World
6.5.1.
Общие
сведения
В GPSS World используются 53 оператора блоков. Среди операторов блоков имеются так называемые взаимодополняющие операторы, представляющие собой пару операторов, каждый из которых является зеркальным отображением другого оператора, означающим, что совокупность действий, реализуемых одним оператором, является противоположной по отношению к совокупности действий, реализуемых другим оператором. Примерами взаимодополняющих операторов могут служить операторы GENERATE и TERMINATE, SEIZE и RELEASE,
QUEUE и DEPART, ENTER и LEAVE, PREEMPT и RETURN.
Для построения имитационных моделей простейших систем и сетей массового обслуживания в среде GPSS World оказывается достаточным использование примерно половины из всех операторов блоков, которые по функциональному назначению могут быть разбиты на следующие группы:
1. Операторы генерирования, задержки и удаления транзактов:
GENERATE, ADVANCE, TERMINATE.
2. Операторы одноканальных устройств (приборов): SEIZE,
RELEASE.
3. Операторы многоканальных устройств (памятей): ENTER, LEAVE.
5. Операторы очередей: QUEUE, DEPART.
4. Условные операторы: TEST, TRANSFER, GATE.
5. Операторы приоритетного обслуживания: PRIORITY, PREEMPT,
RETURN.
6. Оператор логических ключей: LOGIC.
7. Прочие операторы: ASSIGN, MARK, TABULATE.

272
Раздел 6. Имитационное моделирование
Операторы могут быть без операндов или содержать от 1 до 7 операндов, некоторые из которых могут быть необязательными, то есть могут отсутствовать. В последнем случае значения необязательных операндов принимаются по умолчанию. Если после отсутствующего операнда в операторе имеются другие операнды, то признаком отсутствия необязательного операнда служит лишняя запятая. Например, следующая запись в поле операций: <,,C> означает, что операнды A и B не используются, и их значения принимаются по умолчанию.
Ниже представлены краткие описания операторов, наиболее часто используемых при построении имитационных моделей массового обслуживания. При изображении структуры оператора необязательные
операнды заключены в квадратные скобки.
Отсутствие обязательных операндов приводит к ошибке.
6.5.2. GENERATE (
ГЕНЕРИРОВАТЬ
)
Назначение оператора: генерирование транзактов в соответствии с заданным правилом формирования интервалов между транзактами.
Формат оператора:
GENERATE [A],[B],[C],[D],[E]
Значения операндов:
A – средний интервал времени между генерируемыми транзактами или вероятностное распределение интервала из встроенной библиотеки процедур, заключённое в круглые скобки;; [по умолчанию – ноль];
B – величина полуинтервала равномерно распределенного интервала или модификатор таблично заданной функции; [по умолчанию – ноль];
С
– смещение – момент формирования первого транзакта; [по умолчанию – ноль];
D – ограничитель – число генерируемых данным оператором транзактов; [по умолчанию – не ограничено];
Е
– уровень приоритета от 0 до 127 (чем больше номер, тем выше приоритет); [по умолчанию – ноль].
Примечание
. Несмотря на то, что операнды A и D – необязательные операнды, в операторе GENERATE обязательно должен использоваться один из них: либо операнд A , либо операнд D.
Примеры:
GENERATE 25; интервал времени между генерируемыми транзактами – величина детерминированная равная 25, количество генериру-емых транзактов не ограничено.
GENERATE ,,,25;операнды A, B и C не используются, и их значения равны нулю по умолчанию; это означает, что в нулевой момент модельного времени будут сгенерированы ровно 25 транзактов.
GENERATE 25,10; интервал времени между транзактами – величина случайная, равномерно распределенная в интервале (25±10), т.е. от 15 до 35.

Раздел 6. Имитационное моделирование
273
GENERATE 25,FN$Erlang; интервал времени между транзак- тами – величина случайная, распределенная по закону, заданному в виде табличной функции Erlang.
GENERATE 25,10,100,250,5; интервал времени между транзак- тами – равномерно распределенная величина в интервале от 15 до 35; момент формирования первого транзакта равен 100 единицам модельного времени; всего за время моделирования этим оператором будет сгенерировано 250 транзактов, после чего формирование транзактов прекратится; всем сгенерированным транзактам будет присвоен приоритет, равный 5.
GENERATE (Exponential(1,0,50)); интервал времени между транзактами – величина случайная, распределенная по экспоненциальному закону со средним значением 50.
Следует обратить внимание, что в последнем примере имя библио- течной процедуры с параметрами Exponential(1,0,50) заключается в круг- лые скобки. Параметры процедуры Exponential имеют следующий смысл: первый параметр – номер встроенного генератора равномерно распреде- лённых в интервале (0; 1) случайных чисел (может иметь значения от 1 до
999); второй и третий параметры – соответственно смещение
(минимальное значение) и среднее значение (математическое ожидание) случайной величины, распределённой по экспоненциальному закону.
6.5.3. TERMINATE (
ЗАВЕРШИТЬ
)
Назначение оператора: удаление транзактов из модели.
Формат оператора:
TERMINATE [A]
Значения операндов:
A – указатель уменьшения счетчика завершений (целое положи- тельное число); [по умолчанию – ноль].
Примеры:
TERMINATE 1; транзакт, поступивший в данный блок, удаляется из модели, и счетчик завершения процесса моделирования, начальное значение которого устанавливается командой START, уменьшается на 1.
TERMINATE; транзакт удаляется из модели, при этом значение счетчика завершения процесса моделирования не изменяется.
6.5.4. ADVANCE (
ЗАДЕРЖАТЬ
)
Назначение оператора: задержка транзакта на заданное время.
Формат оператора:
ADVANCE [A],[B]
Значения операндов:
A – среднее время задержки или вероятностное распределение из встроенной библиотеки процедур, заключённое в круглые скобки; [по умолчанию – ноль];

274
Раздел 6. Имитационное моделирование
B – величина полуинтервала равномерно распределенного интервала задержки или модификатор таблично заданной функции; [по умолчанию – ноль].
Примеры:
ADVANCE 50; поступивший транзакт задерживается в данном блоке на 50 единиц времени.
ADVANCE 50,10; время задержки транзакта – величина случай- ная, равномерно распределенная в интервале от 40 до 60 (50 ± 10).
ADVANCE 50,FN$Erl_1; время задержки транзакта – величина случайная, распределенная по закону, заданному в виде табличной функции Erl_1, со средним значением 50.
ADVANCE (Exponential(33,10,50)); время задержки – величина случайная, распределенная по экспоненциальному закону (из встроенной библиотеки процедур) со средним значением 50; номер встроенного генератора равномерно распределённых случайных чисел равен 33; смещение равно 10, то есть случайная величина, распределённая по экспоненциальному закону, принимает значения, начиная от 10.
6.5.5. SEIZE (
ЗАНЯТЬ
)
Назначение оператора: занятие транзактом прибора.
Формат оператора:
SEIZE A
Значения операндов:
A – идентификатор (число или имя) занимаемого прибора.
Примеры:
SEIZE 4; транзакт пытается занять прибор с номером 4; если прибор занят другим транзактом, то поступивший транзакт помещается в список задержки этого прибора, где находится до момента освобождения прибора, после чего этот транзакт занимает освободившийся прибор и продолжает свое движение к следующему блоку.
SEIZE Pribor_Disk; транзакт пытается занять прибор с именем
Pribor_Disk; далее по аналогии с предыдущим примером.
6.5.6. RELEASE (
ОСВОБОДИТЬ
)
Назначение
оператора: удаление транзакта из прибора
(освобождение прибора).
Формат оператора:
RELEASE A
Значения операндов:
A – идентификатор (число или имя) освобождаемого прибора.
Примеры:
RELEASE 4; транзакт освобождает прибор с номером 4.
RELEASE Pribor_Disk; транзакт освобождает прибор с именем
Pribor_Disk.

Раздел 6. Имитационное моделирование
275
6.5.7. QUEUE (
СТАТЬ
В
ОЧЕРЕДЬ
)
Назначение оператора: занесение транзакта в очередь (точнее – регистрация статистики очереди, связанная с фиксацией момента поступления транзакта в очередь и увеличением ее длины).
Формат оператора:
QUEUE A,[B]
Значения операндов:
A – идентификатор (число или имя) очереди;
B – количество элементов, на которое должна увеличиться длина очереди; [по умолчанию – один].
Примеры:
QUEUE 3; присоединение транзакта к очереди с номером 3 и увеличение ее длины на 1 (по умолчанию).
QUEUE Jeck,5; присоединение транзакта к очереди с именем Jeck и увеличение ее длины на 5.
6.5.8. DEPART (
ПОКИНУТЬ
ОЧЕРЕДЬ
)
Назначение оператора: удаление транзакта из очереди (точнее – регистрация статистики очереди, связанная с уменьшением ее длины и фиксацией момента удаления транзакта из очереди с целью определения времени ожидания).
Формат оператора:
DEPART A,[B]
Значения операндов:
A – идентификатор (число или имя) очереди;
B – количество элементов, на которое должна уменьшиться длина очереди; [по умолчанию – один].
Примеры:
DEPART 3; удаление транзакта из очереди с номером 3 и уменьшение ее длины на 1 (по умолчанию).
DEPART Jeck,5; удаление транзакта из очереди с именем Jeck и уменьшение ее длины на 5.
6.5.9. ENTER (
ВОЙТИ
)
Назначение
оператора: вход транзакта в многоканальное устройство.
Формат оператора:
ENTER A,[B]
Значения операндов:
A – идентификатор (число или имя) многоканального устройства;
B – количество занимаемых приборов многоканального устройства;
[по умолчанию – один].
Примеры:
ENTER 5; транзакт поступает в многоканальное устройство с

276
Раздел 6. Имитационное моделирование
номером 3 и занимает один прибор (по умолчанию).
ENTER MANY,4; транзакт, поступая в многоканальное устрой- ство с именем MANY, занимает 4 прибора.
6.5.10. LEAVE (
ВЫЙТИ
)
Назначение оператора: удаление транзакта из многоканального устройства.
Формат оператора:
LEAVE A,[B]
Значения операндов:
A – идентификатор (число или имя) многоканального устройства;
B – количество освобождаемых приборов многоканального устройства; [по умолчанию – один].
Примеры:
LEAVE 5; транзакт покидает многоканальное устройство с номером 3 и освобождает 1 прибор (по умолчанию).
LEAVE MANY,4; транзакт, покидая многоканальное устройство с именем MANY, освобождает 4 прибора.
6.5.11. TEST (
ПРОВЕРИТЬ
)
Назначение оператора: поверка значения (обычно СЧА) и передача активного транзакта в блок, отличный от последующего, если указанное условие не выполняется.
Формат оператора:
TEST Х A,B,[C],
Значения операндов:
A – проверяемое значение;
B – контрольное значение;
C – имя (метка) блока назначения C; [по умолчанию – Режим отказа];
Х
– оператор отношения, определяющий условие проверки операнда
А
с операндом В:
Значения
Х
Интерпретация
в смысле блока TEST
G
A больше B?
GE
A больше или равно B?
E
A равно B?
NE
A не равно B?
LE
A меньше или равно B?
L
A меньше B?
Блок TEST может функционировать в двух режимах:

в режиме альтернативного выхода (если задан операнд C);

в режиме отказа (если операнд C не задан).
Когда транзакт пытается войти в блок TEST в режиме альтернативного выхода и проверяемое условие не выполняется, транзакт

Раздел 6. Имитационное моделирование
277 передается блоку, указанному в операнде С.
Когда транзакт пытается войти в блок TEST в режиме отказа (при отсутствии операнда С) и заданное условие не выполняется, транзакт блокируется до тех пор, пока условие не будет выполнено.
Примеры:
TEST LE Q1,5,Otk_1; если проверяемое условие «длина очереди 1 меньше или равна 5?» выполняется, то активный транзакт передается следующему оператору, в противном случае он направляется к оператору с меткой Otk_1.
1   ...   34   35   36   37   38   39   40   41   ...   49


написать администратору сайта