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

Механики


Скачать 4.29 Mb.
НазваниеМеханики
Дата25.01.2023
Размер4.29 Mb.
Формат файлаpdf
Имя файлаAliev.pdf
ТипДокументы
#904727
страница41 из 49
1   ...   37   38   39   40   41   42   43   44   ...   49
Exponential(5,0,10) задают соответственно
: 5 – номер исходного стандартного
(
встроенного
) генерато
- ра равномерно распределенных случайных величин
; 0 – смещение выраба
- тываемой случайной величины
; 10 – среднее значение интервала
Второе изменение в
операторе
ADVANCE, в
котором используется другая форма задания равномерно распределенной случайной величины
– в
виде библиотечной процедуры
(Uniform(25,4,12))
из встроенной в
GPSS библиотеки вероятностных распределений
Первый параметр процедуры
Uniform определяет номер встроенного генератора равномерно распреде
- лённых в
интервале
(0; 1) случайных величин
, а
второй и
третий парамет
- ры
– границы интервала
(
соответственно нижняя и
верхняя
) формируемой равномерно распределенной случайной величины
Третье изменение в
операторе
TERMINATE, в
котором параметр
А
задан равным
2.
Это значит
, что при каждом попадании транзакта в
этот оператор из счетчика завершений будет вычитаться не
1, как в
предыду
- щем примере
, а
2.
Следовательно
, моделирование завершится после прохо
- ждения через модель не
100 000 транзактов
, а
только
50 000.
6.7.3.
Модель
2:
многоканальная
СМО
с
накопителем
ограниченной
ёмкости
и
обслуживанием
заявок
по
закону
Эрланга
(M/E
2
/1/r)
Положим теперь
, что в
предыдущую модель внесены следующие изменения
(
рис
.6.8):
1)
система содержит
K=4 идентичных обслуживающих приборов
, причём заявка может занять любой свободный прибор
;
2)
накопитель имеет ограниченную
ёмкость
10
=
r
, при этом заявка
, заставшая накопитель заполненным
, получает отказ в
обслуживании и
теряется
;
3)
длительность обслужи
- вания заявок в
одном приборе распределена по закону
Эрланга
2- го порядка со средним значением
40 секунд

294
Раздел 6. Имитационное моделирование
Текст
GPSS-модели с
комментариями (выделены курсивом):
Рассмотрим изменения
, внесенные в
предыдущую
GPSS- модель и
выделенные жирным шрифтом
Первое изменение заключается в
появлении в
GPSS- модели
«
Области описания
», которая содержит оператор
STORAGE, задающий имя
(
Uzel) многоканального устройства
(
памяти
) и
количество обслуживающих приборов
(
ёмкость памяти
), равное
4.
Второе изменение заключается в
появлении в
GPSS- модели нового оператора
(
блока
)
TEST, позволяющего смоделировать накопитель с
ограниченной
ёмкостью перед многоканальным устройством
Рассмотрим оператор
TEST более подробно в
контексте данного примера
Для этого сопоставим оператор
TEST, записанный в
общем виде
, с
оператором
TEST в
нашей модели
:
TEST Х A, B, C
TEST L Q$ch_1, 10, Otkaz
Здесь
:
Х
– условный оператор
(
в нашем примере
L означает
«
меньше
»);
A
СЧА
, значение которого проверяется в
соответствии с
заданным условным оператором
(
в нашем примере
Q$ch_1 означает проверку длины очереди с
именем
ch_1);
B – контрольное значение
, с
которым сравнивается значение число
- вого атрибута
, указанного в
параметре
A (
в нашем примере длина очереди
ch_1 сравнивается во значением
10);
C – имя альтернативного оператора
, которому передается транзакт
, если указанное условие не выполняется
(
в нашем примере транзакт будет передан оператору
TERMINATE с
именем
Otkaz).
Таким образом
, транзакт
, попав в
указанный опреатор
TEST, перейдет к
следующему по порядку оператору при условии
, что длина очереди
ch_1 меньше
10, и
к оператору
TERMINATE с
меткой
Otkaz, если в
очереди
ch_1 уже находятся
10 заявок
Uzel
STORAGE
4; задание числа приборов в устройстве с именем Uzel
******************************************
*Область исполняемых блоков (Основной модуль)
GENERATE
(Exponential(11,0,10)); формирование простейшего потока
TEST
L
Q$ch_1,10,Otkaz; проверка длины очереди
QUEUE ch_1; регистрация момента поступления заявки в очередь ch_1
ENTER
Uzel; попытка занять один из приборов устройства Uzel
DEPART ch_1; регистрация момента покидания заявки очереди ch_1
ADVANCE
(Exponential(21,0,20)+Exponential(31,0,20)); задержка заявки
*
в среднем на 40 единиц модельного времени
LEAVE
Uzel; освобождение одного прибора многоканального
*
устройства Uzel
TERMINATE 1; удаление обслуженной заявки из модели и уменьшение
*
счетчика завершений
Otkaz TERMINATE 1; удаление заявки, получившей отказ

Раздел 6. Имитационное моделирование
295
Третье изменение состоит в
использовании операторов
ENTER и
LEAVE,
моделирующих занятие и
освобождение многоканального устрой
- ства
, вместо операторов
SEIZE и
RELEASE, использующихся для однока
- нального устройства
Заметим
, что в
операторах
ENTER и
LEAVE, в
отличие от
SEIZE и
RELEASE, могут использоваться два операнда
A и
B, где второй операнд
B определяет количество занимаемых или освобож
- даемых приборов
(
каналов
), причем при отсутствии операнда
B его значе
- ние по умолчанию принимается равным
1.
В
операторе
ADVANCE реализуется случайная задержка заявки в
соответствии с
законом распределения
Эрланга
2- го порядка в
виде суммы двух экспоненциально распределенных случайных величин со средними значениями в
20 секунд
(
одна единица модельного времени равна одной секунде
) так
, что средняя задержка заявки в
приборе составляет
40 секунд
Еще одной особенностью данной модели является наличие двух операторов
TERMINATE.
Первый оператор удаляет из модели
обслужен-
ные заявки
(
транзакты
), при этом из
«Счетчика
завершений» вычитается единица
Второй оператор удаляет из модели
необслуженны
е заявки
, то есть заявки
, заставшие при поступлении в
систему накопитель заполнен
- ным и
получившие отказ в
обслуживании
, при этом из
«Счетчика
завер-
шений
» также вычитается единица
Возникает вопрос
: «
Можно ли для вывода из модели обслуженных и
необслуженных заявок использовать только один оператор
TERMINATE?».
Ответ
: «
Да
, можно
!».
Зачем же тогда надо было использовать
2 оператора
TERMINATE?
Ответ достаточно простой
Второй оператор нужен только для того
, чтобы получить информацию о
доле обслуженных и
доле потерянных
(
не обслуженных
) заявок
Из стандартного отчета
(
рис
.6.9) видно
, что число обслуженных транзактов
, прошедших через первый оператор
TERMINATE, равно
938291, а
число необслуженных
(
потерянных
) транзактов
, прошедших через второй оператор
TERMINATE,
равно
61709.
Таким образом
, вероятность потери заявки в
моделируемой системе составляет
61709/(938291+61709)=0,061709, то есть
6,2% от общего числа поступивших в
систему заявок
Отметим
, что наличие в
обоих операторах
TERMINATE операнда
, равного
1, означает
, что моделирование завер
- шится при достижении суммарного числа обслуженных и
необслуженных заявок
, покинувших систему
, значения
, указанного в
операнде
А
команды
START (
в данной модели это значение равно
500000).
Если в
первом операторе
TERMINATE операнд будет отсутствовать
, что по умолчанию соответствует значению
0, то моделирование завершится
, когда число
необслуженных (потерянных) заявок достигнет указанного в
команде
START
значения
И
наоборот
, если операнд будет отсутствовать во
вто-
ром
операторе
TERMINATE, то моделирование завершится
, когда число
обслуженных заявок достигнет указанного в
команде
START значения
На рис
.6.9 представлен стандартный отчет
, полученный для рассмотренной модели при задании команды

296
Раздел 6. Имитационное моделирование
START 1000000, означающем
, что моделирование завершается после прохождения через систему
миллиона
заявок
(
транзактов
).
Следует обратить внимание на то
, что завершение процесса модели
- рования происходит по числу транзактов
, прошедших через операторы
TERMINATE, а
не по числу транзактов
, сформированных оператором
GENERATE.
В
нашей модели через операторы
TERMINATE с
номерами
(
LOC
) 8 и
9 прошли соответственно
938291 и
61709 транзактов
(
см раздел
LABEL
отчета
), что в
сумме составляет ровно
1000000 транзактов
, как указано в
команде
START.
В
то же время
, количество транзактов
, сформированных в
операторе
GENERATE равно
1000006, то есть на
6 транзактов больше
, чем покинуло модель
Эти шесть транзактов на момент завершения моделирования остались в
модели и
, как видно в
том же разделе отчета
, они находятся в
блоках
QUEUE (2 транзакта
), ENTER (1 транзакт
), ADVANCE (3 транзакта
).
GPSS World Simulation Report - Untitled Model 2.1
Thursday, September 21, 2006 20:48:27
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10007445.339 9 0 1
NAME VALUE
CH_1 10001.000
OTKAZ 9.000
UZEL 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000006 0 0 2 TEST 1000006 0 0 3 QUEUE 938297 2 0 4 ENTER 938295 1 0 5 DEPART 938294 0 0 6 ADVANCE 938294 3 0 7 LEAVE 938291 0 0 8 TERMINATE 938291 0 0
OTKAZ 9 TERMINATE 61709 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
CH_1 10 3 938297 138746 4.231 45.125 52.955 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
UZEL 4 0 0 4 938295 1 3.753 0.938 0 2
CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
1000004 0 10007414.480 1000004 4 5
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1000007 0 10007447.972 1000007 0 1 999995 0 10007482.391 999995 6 7 1000003 0 10007495.279 1000003 6 7 1000001 0 10007496.268 1000001 6 7
Рис.6.9. Стандартный отчет к Модели 2

Раздел 6. Имитационное моделирование
297
6.7.4.
Модель
2.
А
:
дополнительная
статистика
в
виде
гистограмм
Стандартный отчёт
, формируемый автоматически после завершения моделирования
, если в
команде
START не был задан параметр
NP, содержит основные результаты моделирования
, состав которых может быть задан перед моделированием
Для этого в
главном меню нужно выбрать пункт
«Edit/Settings …» и
на странице
«Reports» («
Отчёты
») журнала настроек модели с
помощью набора флажков задать состав результатов
, включаемых в
отчёт
В
некоторых случаях требуется получить результаты моделирования не только в
виде средних значений вероятностных характеристик
, но и
в виде гистограмм
, отображающих законы
(
плотности
) распределений случайных величин
Положим
, что в
рассмотренной модели
2 результаты моделирования должны быть представлены в
виде гистограмм плотностей распределений времени ожидания и
времени пребывания заявок
Ниже представлен
текст
GPSS-модели с
соответствующими добавлениями
:
Рассмотрим изменения
, внесенные в
предыдущую модель и
выделенные жирным шрифтом
Во-первых,
в области описания появились два новых оператора
– команды
:
QTABLE и
TABLE.
Сопоставим эти операторы
, записанные в
общем виде
, с
операторами в
нашей модели
:
<Имя> QTABLE A, B, C, D
T_w QTABLE ch_1, 15, 15, 10
************************************************************************
* Область описания
Uzel
STORAGE
4; задание числа приборов в устройстве с именем Uzel
T_w
QTABLE
ch_1,15,15,10
T_u
TABLE
M1,30,30,10
******************************************
* Область исполняемых блоков (Основной модуль)
GENERATE (Exponential(11,0,10)); формирование простейшего потока
TEST L
Q$ch_1,10,Otkaz; проверка длины очереди ch_1
QUEUE ch_1; регистрация момента поступления заявки в очередь
ENTER
Uzel; попытка занять один из приборов устройства Uzel
DEPART ch_1; регистрация момента покидания очереди ch_1
ADVANCE (Exponential(21,0,20)+Exponential(31,0,20)); задержка
*
заявки в среднем на 40 единиц модельного времени
LEAVE
Uzel; освобождение одного прибора многоканального
*
устройства Uzel
TABULATE T_u
TERMINATE 1; удаление обслуженной заявки из модели и уменьшение
*
счетчика завершений
Otkaz
TERMINATE 1; удаление заявки, получившей отказ
**********************************************************************

298
Раздел 6. Имитационное моделирование
<Имя> TABLE A, B, C, D
T_u TABLE M1, 30, 30, 10
Первый оператор
(
команда
)
QTABLE
формирует таблицу для гистограммы плотности распределения времени ожидания заявок в
очереди
, имя которой указано в
операнде
A.
Имя
T_w задаёт имя таблицы
(
гистограммы
), а
операнды
A, B, C и
D задают соответственно
:
A=
ch_1 – имя очереди
, для которой формируется гистограмма
;
B=
15 – верхнюю
(
правую
) границу первого частотного интервала гистограммы
;
C=
15
величину всех остальных частотных интервалов
;
D=
10 – количество частотных интервалов
Второй оператор
TABLE
формирует таблицу для гистограммы плотности распределения времени пребывания заявок в
системе
Имя
T_u, как и
в предыдущем случае
, задает имя таблицы
(
гистограммы
), а
операнды
A, B, C и
D задают соответственно
:
A=
M1 – величину
, для которой формируется гистограмма
; в
нашем примере
M1
представляет собой
СЧА
, определяющее резидентное время
, вычисляемое как разность между текущим значением модельного времени
, определяемым в
момент вхождения транзакта в
блок
TABULATE, и
временем появления транзакта в
модели
, то есть временем поступления заявки в
систему
, являющимся одним из параметров транзакта
;
B=
30 – верхнюю границу первого частотного интервала
;
C=
30 –
величину всех остальных частотных интервалов
;
D=
10 – количество частотных интервалов
Таким образом
, команда
TABLE
используется совместно с
блоком
TABULATE, который регистрирует момент прохождения транзактом
(
заявкой
) определенного места в
модели
Соответственно блок
TABULATE
должен находиться в
модели в
том месте
, относительно которого измеряется искомое время
Таким местом при измерении времени пребывания заявки в
моделируемой системе является точка выхода заявки из системы
, когда транзакт покидает прибор многоканальной системы
В
качестве параметра
A оператора
TABULATE
выступает имя соответству
- ющей таблицы
(
гистограммы
).
В
нашем случае эта таблица и
соответствующая ей гистограмма имеет имя
T_u.
Оператор
TABLE так же
, как и
QTABLE, позволяет сформировать гистограмму плотности распределения случайной величины и
имеет аналогичную структуру
Основное отличие
TABLE от
QTABLE
состоит в
том
, что оператор
TABLE позволяет формировать гистограмму плотности распределения случайной величины между двумя
, в
общем случае
, про-
извольными моментами времени, в
то время как
QTABLE всегда форми
- рует гистограмму плотности распределения
времени ожидания в очереди.
На рис
.6.10 представлен фрагмент стандартного отчета
, полученного для рассмотренной модели при задании команды

Раздел 6. Имитационное моделирование
299
START 100000, означающем
, что моделирование завершено после прохождения через систему
ста тысяч
заявок
(
транзактов
).
Жирным шрифтом в
отчёте выделены результаты формирования двух таблиц для построения гистограмм плотности распределения
:
T_Wвремени ожидания заявок в
очереди
;
T_Uвремени пребыв
ания заявок в
системе
На рис
. 6.11 показаны гистограммы плотностей распределений времени пребывания
1   ...   37   38   39   40   41   42   43   44   ...   49


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