Лекция 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