1 Лекция 7 Моделирование в системе GPSS Word
2 Вопросы лекции 1. СЧА: матрицы сохраняемых ячеек 2. Задание функций распределения пользователем 3. Модель PRI
СЧА: Матрицы сохраняемых ячеек 3
4 Матрица ячеек памяти – системный элемент, который представляет собой упорядоченный набор ячеек памяти. Задание матрицы Name MATRIX A,B,C, [D],[F],[G] Name –имя матрицы (метка – только строковая переменная. Не допускается использовать число!). Операнды А – не используется ( для совместимости со старыми версиями) В – число строк матрицы С – число столбцов матрицы D,E,F – максимальное количество элементов в третье, четвертом, пятом и шестом измерениях
СЧА: Матрицы сохраняемых ячеек 5 Пример определения матрицы ( 5 х 7) TraSr MATRIX,5,7 Обращение к элементам матрицы можно делать с помощью СЧА - МХ Примеры MX$Tab2 ( P4, P$Nal) – элемент матрицы Tab2, значение которого определено через значение в параметре транзакта 4 ( строка) и в параметре с именем Nal (столбец) MX$Sps( User,P3) - элемент матрицы Sps, значение которого определено через значение пользовательской переменной User ( строка) и в параметре 3 транзакта (столбец)
СЧА: Матрицы сохраняемых ячеек 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),
Задание функций распределения пользователем Встроенные ГСЧ системы GPSS вырабатывают целые случайные числа, равномерно распределенные от 0 до 999. При делении на 1000 получатся числа на интервале [0;1] Для моделирования случайной величины Х с заданной функцией распределения F(Xx) используется метод обратной функции. Если можно решить уравнение r=F (x), в котором связана случайная величины х, подчиненная распределению F(x), со случайной величиной r, распределенной равномерно на отрезке [0, 1], то можно найти в явном виде обратную функцию x=F -1 (r), позволяющую для разных значений r ( из диапазона от 0 до ) найти значения х, в соответствии с функцией распределения 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 r 1, x 1 /r 2, x 2 /r 3, x 3 /r 4, x 4 /r 5, x 5 /r 6, x 6 Символ 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, F(x) 1,0 0,9 0,6 0,4 0,1 x F - (r) 0,10,40,6 0,9 1,0 r a b c d e Графики функции распределения прямой и обратной функций для дискретной случайной величины
Задание функций распределения пользователем Пример задания непрерывной функции ( имеющей 10 значений). DISTR FUNCTION RN1, C10 r 1, x 1 /r 2, x 2 /r 3, x 3 /r 4, x 4 /r 5, x 5 /r 6, x 6 /r 7, x 7 r 8, x 8 /r 9, x 9 /r 10, x 10 Символ С означает, что функция непрерывная (от слова Continue – непрерывный), Вычисление значений непрерывной функции производится следующим образом. После обращения к ГСЧ (в нашем примере – генератор RN1), определяется интервал (r i, r i+1 ), на который выпадает полученное значение r аргумента-генератора. Затем на этом интервале выполняется линейная интерполяция с использованием соответствующих значений x i и x i+1 13
Задание функций распределения пользователем значение FN функции определяется по формуле: 14 FN=F -1 (r) x i+1 xixi r riri r r i+1... Определение значения обратной функции
Задание функций распределения пользователем Примеры Задание функции равномерного распределение интервалов прихода транзактов на интервале [50,90] RAVN FUNCTION RN4, C2 0,50/1,91 Функция равномерного распределения FROMABFUNCTIONRN2,D10.1,10/.2,20/.3,30/.4,40/.5,50/.6,60/.7,70/.8,80/.9,90/1,100 Функция равномерного распределения FU1FUNCTIONRN11,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, ,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99, ,5.3/.998,6.2/.999,7/.9998,8 Данные 24 точки обеспечивают достаточно точную аппроксимацию. Пример использования GENERATEA,FN$EXPDIS В данном примере вычисление интервалов времени производится путем умножения операнда A (среднее значение) на вычисленное значение функции. При чем, операнд А в данном блоке должен быть равен 1/λ, а операнд В – ссылка на функцию, которая в табличном виде задает зависимость x= -ln (1-r). 16
Модель PRI Моделирование работы канала PRI ( primary rate interface) PRI – канальный интерфейс системы передачи в системе в временным уплотнением, в которой скорость основного цифрового канала ( ОЦК) составляет 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 19 GENERATE TERMINATE ENTER LEAVE ADVANCE X$NAVER,FN$XPDIS V$TALK GENERATE X$TIMER TERMINATE 1 PRI GATE PRI TERMINATE PRI SNF (POINT1) Поступление вызовов Проверка занятости всех каналов PRI Разговор на протяжении времени TALK Если все заняты, вызов теряется Начало разговора Завершение разговора Завершение времени моделирования Завершение 1-й сегмент модели Модель обслуживания вызовов PRI TABULATE Табуляция статистических данных TAB00 о занятости PRI 2-й сегмент модели
Модель PRI 20 * * FUNCTION DEFINITION(S) * XPDISFUNCTIONRN1,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) * INITIALX$NAVER,50 INITIALX$AVTALK,1800 INITIALX$TIMER, * * VARIABLE DEFINITION(S) * TALKVARIABLEX$AVTALK#FN$XPDIS * * STORAGE CAPACITY DEFINITION(S) * PRISTORAGE60 * *TABLE DEFINITION(S) * TAB00TABLES$PRI,1,1,62 *
Модель PRI 21 ****************************************************** * MODEL SEGMENT 1 ****************************************************** GENERATEX$NAVER,FN$XPDIS GATE SNFPRI,POINT1 ENTERPRI ADVANCEV$TALK LEAVEPRI TABULATETAB00 TERMINATE * POINT1TERMINATE * ****************************************************** * MODEL SEGMENT 2 ****************************************************** GENERATEX$TIMER TERMINATE1
Модель PRI GPSS World Simulation Report - Model 7 PRI.10.1 Monday, September 27, :24:32 START TIME END TIME BLOCKS FACILITIES STORAGES NAME VALUE AVTALK NAVER POINT PRI TAB TALK TIMER XPDIS LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE GATE ENTER ADVANCE LEAVE TABULATE TERMINATE POINT1 8 TERMINATE GENERATE TERMINATE
Модель PRI STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY PRI TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TAB SAVEVALUE RETRY VALUE NAVER AVTALK TIMER
Модель PRI 24
Модель PRI 25
Модель PRI 26
Модель PRI 27 Анализ зависимости занятости каналов PRI при различной емкости системы передачи ( МКУ) для фиксированной входной нагрузки (1800/50=36 Эрл)
28 Литература Кудрявцев Е.М. GPSS Word. Основы имитационного моделирования различных систем.- М. ДМК Пресс, 2004 Учебное пособие по GPSS Word./Перевод с англ. – Казань, Изд-во «Мастер – Лайн», 2002 Богуш К.Ю., Богуш Ю.П., Шиян А.И. GPSS World Моделювання телекомунікаційних систем та мереж. Посібник для дипломного проектування. – ICЗЗІ НТУУ КПІ, 2010 Боев В.Д. Моделирование систем. Инструментальные средства GPSS World.- СПб, БХВ- Петербург, 2004 Шрайбер Т.Дж. Моделирование на GPSS: Пер. с англ. - М.: Машиностроение, GPSS/PC general purpose simulation. Reference Manual. - Minuteman software. P.O. Box 171. Stow, Massachusetts 01775, В.Н. Томашевський, Е.Г. Жданова "Імітаційне моделювання засобами GPSS / PC." - К.: ІЗМН, "ВІПОЛ", с. В.Н. Томашевський "Імітаційне моделювання систем та процесів." - К.: ІСДО, "ВІПОЛ", с. (мова українська).
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
31 Деякі об'єкти перед використанням повинні бути попередньо оголошені. У загальному випадку в них є такий атрибут, як розмір, що повинен бути відомий у моделі (Simulation Object). Ім'я, що перебуває в поле мітки і називається міткою об'єкта. Воно використовується для посилання на об'єкт. Наступні об'єкти повинні бути попередньо оголошені перед використанням: – багатоканальні пристрої повинні бути оголошені у твердженнях STORAGE; – арифметичні змінні повинні бути оголошені у твердженнях VARIABLE; – змінні із плаваючою точкою (комою) повинні бути оголошені у твердженнях FVARIABLE; – матриці повинні бути оголошені у твердженнях MATRIX, або у твердженнях мови PLUS Temporary Matrix; – таблиці повинні бути оголошені у твердженнях TABLE; – Q-таблиці повинні бути оголошені у твердженнях QTABLE; – функції повинні бути оголошені у твердженнях FUNCTION і послідовно оголошених значеннях функції; – параметри транзакту до моменту посилання на них повинні бути оголошені в блоках ASSIGN, MARK, READ, SELECT, SPLIT, COUNT або TRANSFER SUB.