Лекция 7 Моделирование в системе GPSS Word 1

advertisement
Лекция 7
Моделирование в системе GPSS Word
1
Вопросы лекции
1.
2.
3.
СЧА: матрицы сохраняемых ячеек
Задание функций распределения пользователем
Модель PRI
2
СЧА: Матрицы сохраняемых ячеек
3
СЧА: Матрицы сохраняемых ячеек
Матрица ячеек памяти
– системный элемент, который представляет собой
упорядоченный набор ячеек памяти.
Задание матрицы
Name
MATRIX
A,B,C, [D],[F],[G]
Name –имя матрицы (метка – только строковая переменная.
Не допускается использовать число!).
Операнды
А – не используется ( для совместимости со старыми
версиями)
В – число строк матрицы
С – число столбцов матрицы
D,E,F – максимальное количество элементов в третье,
четвертом, пятом и шестом измерениях
4
СЧА: Матрицы сохраняемых ячеек
Пример определения матрицы ( 5 х 7)
TraSr MATRIX
,5,7
Обращение к элементам матрицы можно делать с помощью СЧА
- МХ
Примеры
MX$Tab2 ( P4, P$Nal) – элемент матрицы Tab2,
значение которого определено через значение в параметре
транзакта 4 ( строка) и в параметре с именем Nal (столбец)
MX$Sps( User,P3)
- элемент матрицы Sps,
значение которого определено через значение пользовательской
переменной User ( строка) и в параметре 3 транзакта (столбец)
5
СЧА: Матрицы сохраняемых ячеек
MX$Sps( User,P3)
- элемент матрицы Sps, значение которого
определено через значение пользовательской переменной User
( строка) и в параметре 3 транзакта (столбец)
Если задать
Skl
EQU 6 ; переменной присвоить значение 6
то запись
Skl
MATRIX , 10,7
позволяет заменить имя Skl на номер 6, по которому можно
обращаться к матрице.
Например,
MX6(13,6) - определяется элемент матрицы номер 6 с
координатой ( 13, 6)
6
СЧА: Матрицы сохраняемых ячеек
Пример задания значений матрицы 5х5
CON
MATRIX ,5,5 ; определение имени и размера матрицы
INITIAL MX$CON(1,1),0 ; задание значения элементу (1,1)
INITIAL MX$CON(1,2),1
INITIAL MX$CON(1,3),0
INITIAL MX$CON(1,4),0
INITIAL MX$CON(1,5),1
……..
INITIAL MX$CON(5,4),1
INITIAL MX$CON(5,5),0
1
2
3
4
5
1
0
1
0
0
1
2
1
0
1
0
0
3
0
1
0
1
0
4
0
0
1
0
1
5
1
0
0
1
0
7
Задание функций распределения
пользователем
Встроенные ГСЧ системы GPSS вырабатывают целые случайные
числа, равномерно распределенные от 0 до 999.
При делении на 1000 получатся числа на интервале [0;1]
Для моделирования случайной величины Х с заданной функцией
распределения F(X≤x) используется метод обратной функции.
Если можно решить уравнение
r=F (x),
в котором связана случайная величины х, подчиненная
распределению F(x), со случайной величиной r , распределенной
равномерно на отрезке [0, 1], то можно найти в явном виде
обратную функцию
x=F -1 (r) ,
позволяющую для разных значений r ( из диапазона от 0 до
0.999999) найти значения х, в соответствии с функцией
распределения F(x)
8
Задание функций распределения
пользователем
Функция задается в виде
имя FUNCTION A,B
 имя – уникальное имя функции, используемое для
ссылок на нее;
 A – стандартный числовой атрибут, являющийся
аргументом функции;
 B – тип функции и количество точек таблицы, задающей
обратную функцию.
Объект типа функция имеет единственный СЧА с названием FN
В системе GPSS можно задавать дискретные и непрерывные
числовые функции
9
Задание функций распределения
пользователем
Например, значения случайной величины Х с равномерным
распределением на отрезке [a, b] вычисляются по формуле
x=F-1(r)=a+r(b-a).
Если в блоках GENERATE А,В и ADVANCE А,В, используются
операнд В в виде модификатора-интервала, то
a=А-В
(b-a)=2В,
В системе GPSS используется формула
х=А-В+RN1*(2B+1).
Прибавление 1 обусловлено тем, что в GPSS отбрасывается
дробная часть вычисленного значения и если не прибавить 1,
то блоки будут вырабатывать случайные величины,
распределенные равномерно на отрезке [A-B,A+B-1], а не на
отрезке [A-B,A+B].
10
Задание функций распределения
пользователем

Пример задания дискретной функции ( имеющей 6 значений).
DISC FUNCTION RN3, D6
r1, x1/r2, x2/r3, x3/r4, x4/r5, x5/r6, x6
Символ D означает, что функция дискретная (от слова Discreet –
дискретный) ,

Пример задания функции пользователем
Пусть случайные интервалы прихода заявок в СМО
принимают значения 30, 50, 80, 90 и 120 секунд с
вероятностями 0.1, 0.3, 0.2, 0,3 и 0.1 соответственно.
11
Задание функций распределения
пользователем
Пример
DISC FUNCTION RN1, D5
.1, 30/.4, 50/.6, 80/.9, 90/1, 120
F(x)
F-(r)
e
1,0
d
0,9
c
0,6
 b
0,4
a
0,1
30
50
80
90
120
x
0,1
0,4
0,6
0,9
1,0
r
Графики функции распределения прямой и обратной функций
для дискретной случайной величины
12
Задание функций распределения
пользователем
Пример задания непрерывной функции ( имеющей 10 значений).
DISTR FUNCTION RN1, C10
r1, x1/r2, x2/r3, x3/r4, x4/r5, x5/r6, x6/r7, x7
r8, x8/r9, x9/r10, x10
Символ С означает, что функция непрерывная (от слова Continue –
непрерывный) ,

Вычисление значений непрерывной функции производится
следующим образом.
После обращения к ГСЧ (в нашем примере – генератор RN1),
определяется интервал (ri , ri+1), на который выпадает
полученное значение r аргумента-генератора. Затем на этом
интервале выполняется линейная интерполяция с
использованием соответствующих значений xi и xi+1
13
Задание функций распределения
пользователем
.

значение FN функции определяется по формуле:
FN=F-1(r)
хi 1  xi
FN  xi  (r  ri )
ri 1  ri
xi+1
xi


ri
r
ri+1
r
Определение значения обратной функции
14
Задание функций распределения
пользователем
Примеры

Задание функции равномерного распределение интервалов
прихода транзактов на интервале [50,90]
RAVN FUNCTION RN4, C2
0,50/1,91

Функция равномерного распределения
FROMAB
FUNCTION
RN2,D10
.1,10/.2,20/.3,30/.4,40/.5,50/.6,60/.7,70/.8,80/.9,90/1,100
Функция равномерного распределения
FU1
FUNCTION
RN11,D9
.111,2/.222,3/.333,4/.444,5/.555,6/.666,7/.777,8/.888,9/1,10

15
Задание функций распределения
пользователем

Задание экспоненциального распределения
EXPDIS FUNCTION RN1,C24
,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.
85 .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
Данные 24 точки обеспечивают достаточно точную аппроксимацию.

Пример использования
GENERATE
A,FN$EXPDIS
В данном примере вычисление интервалов времени производится
путем умножения операнда A (среднее значение) на
вычисленное значение функции.
При чем, операнд А в данном блоке должен быть равен 1/λ, а
операнд В – ссылка на функцию, которая в табличном виде
задает зависимость x= -ln (1-r).
16
Модель PRI
Моделирование работы канала PRI ( primary rate interface)
PRI – канальный интерфейс системы передачи в системе в
временным уплотнением, в которой скорость основного
цифрового канала ( ОЦК) составляет 2048 кбит/с.
2048 кбит/с = 32* 64кбит/с



Использование каналов:
30 рабочих ( разговорных) каналов
1 общий канал синхронизации (ОКС)
1 канал сигнализации
Все разговорные каналы общедоступны и занимаются для
обеспечения разговора по мере их свободности.
17
Модель PRI
Модель 9. Модель PRI - Модель имитации работы
многоканального устройства PRI как СМО с отказами






Цель исследования – оценить занятость каналов PRI при
фиксированной ( заданной) нагрузке
PRI – 30 канальная СМО с отказами
Для оценки состояния занятости рабочих каналов, в модели
используется блок GATE с параметром SNF ( storage not full).
Если в момент поступления транзакта ( заявки) в МКУ есть
свободный канал, он занимается, иначе заявка теряется.
Длительность занятия канала заявкой определяется
разыгранным временем AVTALK#FN$XPDIS, где AVTALK – средняя
длительность разговора.
Занятость каналов МКУ оценивается по СЧА МКУ
Входной поток – простейший, длительность обслуживания
имеет экспоненциальное распределение
18
Модель PRI
1-й сегмент модели
GENERATE
X$NAVER,FN$XPDIS
GATE
SNF
PRI
(POINT1)
Поступление
вызовов
Проверка занятости
всех каналов PRI
Если все заняты, вызов
теряется
2-й сегмент модели
ENTER
PRI
ADVANCE
моделирования
Разговор на протяжении
времени TALK
V$TALK
LEAVE
Завершение времени
Начало разговора
PRI
GENERATE
Завершение разговора
Завершение
моделирования
X$TIMER
TABULATE
TAB00
TERMINATE
Табуляция
статистических данных
о занятости PRI
TERMINATE
1
(POINT1) TERMINATE
Модель обслуживания вызовов PRI
19
Модель PRI
*
*
FUNCTION DEFINITION(S)
*
XPDIS
FUNCTION RN1,C24
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
*
*
SAVEVALUE INITIALIZATION(S)
*
INITIAL
X$NAVER,50
INITIAL
X$AVTALK,1800
INITIAL
X$TIMER,2000000
*
*
VARIABLE DEFINITION(S)
*
TALK
VARIABLE X$AVTALK#FN$XPDIS
*
*
STORAGE CAPACITY DEFINITION(S)
*
PRI
STORAGE 60
*
*
*
TABLE DEFINITION(S)
*
TAB00
TABLE
S$PRI,1,1,62
*
20
Модель PRI
******************************************************
*
MODEL SEGMENT 1
******************************************************
GENERATE
X$NAVER,FN$XPDIS
GATE SNF PRI,POINT1
ENTER
PRI
ADVANCE V$TALK
LEAVE
PRI
TABULATE
TAB00
TERMINATE
*
POINT1
TERMINATE
*
******************************************************
*
MODEL SEGMENT 2
******************************************************
GENERATE
X$TIMER
TERMINATE
1
21
Модель PRI














GPSS World Simulation Report - Model 7 PRI.10.1
Monday, September 27, 2010 18:24:32
START TIME
END TIME BLOCKS FACILITIES STORAGES
0.000
2000000.000 10
0
1
NAME
VALUE
AVTALK
10002.000
NAVER
10001.000
POINT1
8.000
PRI
10005.000
TAB00
10006.000
TALK
10004.000
TIMER
10003.000
XPDIS
10000.000
LABEL










POINT1
LOC BLOCK TYPE
1 GENERATE
2 GATE
3 ENTER
4 ADVANCE
5 LEAVE
6 TABULATE
7 TERMINATE
8 TERMINATE
9 GENERATE
10 TERMINATE
ENTRY COUNT CURRENT COUNT RETRY
40313
0
0
40313
0
0
30510
0
0
30510
29
0
30481
0
0
30481
0
0
30481
0
0
9803
0
0
1
0
0
1
0
0
22
Модель PRI




STORAGE
PRI
TABLE
TAB00

























SAVEVALUE
NAVER
AVTALK
TIMER
CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
30 1 0 30 30510 1 27.573 0.919 0 0
MEAN STD.DEV.
RANGE
RETRY FREQUENCY CUM.%
26.786 2.222
0
8.000 9.000
1 0.00
9.000 10.000
0 0.00
10.000 11.000
1 0.01
11.000 12.000
3 0.02
12.000 13.000
5 0.03
13.000 14.000
1 0.04
14.000 15.000
1
0.04
15.000 16.000
9
0.07
16.000 17.000
27
0.16
17.000 18.000
48
0.31
18.000 19.000
103 0.65
19.000 20.000
209 1.34
20.000 21.000
425 2.73
21.000 22.000
786 5.31
22.000 23.000
1267 9.47
23.000 24.000
1823 15.45
24.000 25.000
2643 24.12
25.000 26.000
3650 36.09
26.000 27.000
4900 52.17
27.000 28.000
6461 73.37
28.000 29.000
8118 100.00
RETRY
VALUE
0
50.000
0
1800.000
0 2000000.000
23
Модель PRI
24
Модель PRI
25
Модель PRI
26
Модель PRI

Анализ зависимости занятости каналов PRI при различной
емкости системы передачи ( МКУ) для фиксированной входной
нагрузки (1800/50=36 Эрл)
36.038
40
35
30
35.735
26.786
25
MEAN
20
STD.DEV.
15
2.222
5
0
5.759
5.764
10
30
60
90
27
Литература








Кудрявцев Е.М. GPSS Word. Основы имитационного
моделирования различных систем.- М. ДМК Пресс, 2004
Учебное пособие по GPSS Word./Перевод с англ. – Казань,
Изд-во «Мастер – Лайн», 2002
Богуш К.Ю., Богуш Ю.П., Шиян А.И. GPSS World Моделювання
телекомунікаційних систем та мереж. Посібник для
дипломного проектування . – ICЗЗІ НТУУ КПІ, 2010
Боев В.Д. Моделирование систем. Инструментальные средства
GPSS World.- СПб, БХВ- Петербург, 2004
Шрайбер Т.Дж. Моделирование на GPSS: Пер. с англ. - М.:
Машиностроение, 1980.
GPSS/PC general purpose simulation. Reference Manual. Minuteman software. P.O. Box 171. Stow, Massachusetts 01775,
1986.
В.Н. Томашевський, Е.Г. Жданова "Імітаційне моделювання
засобами GPSS / PC." - К.: ІЗМН, "ВІПОЛ", 1998. - 123 с.
В.Н. Томашевський "Імітаційне моделювання систем та
процесів." - К.: ІСДО, "ВІПОЛ", 1994. - 124 с. (мова
українська).
28
Спасибо за внимание!
29









1.1. Ланцюга транзактів
Транзакти в певні моменти модельного часу направляються до інших об'єктів GPSS шляхом запису в
списки зв'язків, які називаються ланцюжками (або ланцюгами). Деякі об'єкти, наприклад, такі як прилади
(Facilities) мають кілька ланцюгів. Інші об'єкти мають тільки єдиний ланцюг повторних спроб (Retry
Chain). Будь-який транзакт може перебувати в декількох ланцюгах. Однак заняття транзактом ланцюга
одного виду іноді перешкоджає його розміщенню в інших ланцюгах. Наприклад, якщо транзакт перебуває в
одному або більше ланцюгах переривання (Interrupt Chain), те він не може перебувати в ланцюзі
майбутніх подій (Future Events Chain).
Транзакт не може перебувати більш ніж в одному з перелічених нижче ланцюгів:
– ланцюг майбутніх подій (Future Events Chain),
– ланцюг поточних подій (Current Events Chain),
– ланцюг затримки приладу або багатоканального пристрою (Facility or Storage Delay Chain),
– ланцюг приладу для транзактів, що очікують рішення, (Facility Pending Chain);
– ланцюг користувача (User Chain).
Транзакт може очікувати відповідно до будь-якого числа заданих умов, може перебувати в будь-якому
числі транзактних груп, і може бути перехоплений з будь-якого числа приладів у будь-який момент. Це
значить, що будь-який одиночний транзакт може перебувати в будь-якій кількості ланцюгів переривання
(Interrupt Chains), у будь-якій кількості ланцюгів груп (Group Chains) і в будь-якій кількості ланцюгів
повторних спроб (Retry Chains) у той самий час.
30










Деякі об'єкти перед використанням повинні бути попередньо оголошені. У
загальному випадку в них є такий атрибут, як розмір, що повинен бути відомий
у моделі (Simulation Object). Ім'я, що перебуває в поле мітки і називається
міткою об'єкта. Воно використовується для посилання на об'єкт.
Наступні об'єкти повинні бути попередньо оголошені перед використанням:
– багатоканальні пристрої повинні бути оголошені у твердженнях STORAGE;
– арифметичні змінні повинні бути оголошені у твердженнях VARIABLE;
– змінні із плаваючою точкою (комою) повинні бути оголошені у твердженнях
FVARIABLE;
– матриці повинні бути оголошені у твердженнях MATRIX, або у твердженнях
мови PLUS Temporary Matrix;
– таблиці повинні бути оголошені у твердженнях TABLE;
– Q-таблиці повинні бути оголошені у твердженнях QTABLE;
– функції повинні бути оголошені у твердженнях FUNCTION і послідовно
оголошених значеннях функції;
– параметри транзакту до моменту посилання на них повинні бути оголошені в
блоках ASSIGN, MARK, READ, SELECT, SPLIT, COUNT або TRANSFER SUB.
31
Download