Лекция 4 Основы моделирования в системе GPSS Word 1 Вопросы лекции 1. 2. Основные блоки и команды языка GPSS Построение моделей в системе GPSS Word 2 Основные блоки и команды языка GPSS Основные модельные блоки Блок генерации транзактов GENERATE A,B,C,D,Е А – время между соседними генерациями В – модификатор значения А: интервал времени равномерно распределен в интервале [ A-B, A+B] C – время создания транзакта D – граничное число транзактов, которое может быть введено в модель через данный блок GENETATE E – приоритет транзактов GENERATE A,B,C,D,E Блок GENERATE имитирует поток заявок, поступающих в систему путем задания интервала времени между соседними заявками в потоке. 3 Основные блоки и команды языка GPSS GENERATE A,B,C,D,E Operands A - Mean inter generation time. Optional. The operand must be Null, Name, Number, String, ParenthesizedExpression, or DirectSNA. You may not use Transaction Parameters. B - Inter generation time half-range or Function Modifier. Optional. The operand must be Null, Name, Number, String, ParenthesizedExpression, or DirectSNA. You may not use Transaction Parameters. C - Start delay time. Time increment for the first Transaction. Optional. The operand must be Null, Name, Number, String, ParenthesizedExpression, or DirectSNA. You may not use Transaction Parameters. D - Creation limit. The default is no limit. Optional. The operand must be Null, Name, PosInteger, String, ParenthesizedExpression, or DirectSNA. You may not use Transaction Parameters. E - Priority level. Optional. Zero is the default. The operand must be Null, Name, integer, String, ParenthesizedExpression, or DirectSNA. You may not use Transaction Parameters. 4 Основные блоки и команды языка GPSS Примеры описания входного потока GЕNЕRATE 60 ; задает генерацию заявок через каждые 60 единиц времени GANARATE 60,5 ; генерация заявок с интервалом времени, значения которого равномерно распределены в диапазоне [55;65] При моделировании важно выбрать соответствие модельного времени с временем реальным процесса. 1 ед. модельного времени {1 с, 1мин, 1ч, 0,001с, 1год, …} Соответствие модельного времени реальному задает исследователь сам (перед написанием модели) !!! Например, GЕNЕRATE 1 ; генерация заявок раз в минуту (1 ед. мод. вр. = 1 мин) GЕNЕRATE 60 ; генерация заявок раз в минуту ( 1 ед. мод. вр. = 1 с) 5 Основные блоки и команды языка GPSS Блок удаления транзактов из модели ТERMINATE A А – необязательный операнд, задающий значение инкрементального уменьшения счетчика числа завершений модельных прогонов Задание значения счетчика завершений START А А – величина счетчика завершений Элементарная модель потока заявок Модель 1 ( равномерный поток) GENERATE 10,5 TERMINATE 1 Start 1000 Модель имитирует поток из 1000 заявок, в котором значение интервала времени равномерно распределено в диапазоне [5,15]. 6 Основные блоки и команды языка GPSS Блок задержки транзактов ADVANCE ADVANCE ADVANCE A,B A,B Операнды А –обязательный операнд, задающий среднее времени, после которого транзакт должен выйти из цепи будущих событий, т.е. задержан до момента наступления события продолжения движения по модельным блокам B – значение отклонения или функция модифицирующая величину А (равномерное отклонение в интервале А+В) Примеры. ADVANCE 60 ; обеспечивает задержку на 60 ед. модельно времени ADVANCE 101.6, 50.3 ; транзакт задерживается на время, равномерно распределенное в интервале ( 101,6 - 50,3; 101,6 + 50,3). 7 Основные блоки и команды языка GPSS Блок статистической обработки TABULATE A,B А – имя таблицы, сбора и обработки статистических данных TABULATE B A Например, когда транзакты входят в блок TABULATE TABULATE Sales ; осуществляется статистическая обработка параметра, заданного в таблице Sales, описанной в команде Table 8 Основные блоки и команды языка GPSS Команда TABLE определяет статистическую частость значений. NAME TABLE A,B,C,D Метка/Операнд NAME – метка (имя) объекта. A – аргумент таблицы, значения которого табулируются в виде частотного распределения.. B – нижний интрервал значений ( верхня границя первого частотного класса) C – ширина интервала. D – количество интервалов ( частотных классов) 9 Основы моделирования в системе GPSS Word Пример Sales TABLE M1, 0,0.5, 10 Данная команда предписывает фиксировать время пребывания транзакты в системе (М1параметр транзакта (системный числовой атрибут ), определять средние значения М1 строить гистограмму частоты попадания значений М1 в каждый из 10 интервалов модельного времени в диапазоне от 0 с шагом 0.5 . Оценка частости попадания интервалы от 0 до 5 с шагом 0.5. Всего 10 интервалов 0,5 | 1,0 | 1,5 | 2,0| 2,5 | … | 5 10 Построение моделей в системе GPSS Word Элементарная модель простейшего потока заявок Модель 2 ( с расчётом интервала) Tinter TSRV Table M1,0,0.5,20 ; табуляция от 0 с шагом 0.5 20-ти интервалов FVARIABLE -1#LOG((1+RN1)/1000); интенсивность - 1 заявка/1 ед.модельного времени GENERATE 1 ADVANCE V$TSRV TABULATE Tinter TERMINATE 1 Start 10000 В модель вводятся 10000 транзактов. Каждый задерживается блоком ADVANCE на длительность Tsrv ( в соответствии разыгранным значением Dt по экспоненциальному распределению). Блок ТABULATE учитывает разыгранное значение Dt и блок TARMINATE выводит транзакты из модели (счетчик завершений уменьшается на 1). 11 Построение моделей в системе GPSS Word Расчет значения переменной TSRV TSRV FVARIABLE -1#LOG((1+RN1)/1000) В данном случае, задана интенсивность - 1 заявка/1ед.модельного времени Расчет значений переменной TSRV основан на применении соотношения между значением ДСЧ i и экспоненциально распределенной величиной ∆ti Dti 1 ln i Интервал времени Dt между соседними заявками в простейшем потоке ( экспоненциальным распределением Dt) подчинен распределению: Р(Dt) = Р(<Dt)=1- λe –λDt p (Dt) = λe –λDt Генератор случайных чисел ( ГСЧ) RN1 выдает случайное целое число в диапазоне 0…999 12 Построение моделей в системе GPSS Word Расчет значения переменной TSRV TSRV FVARIABLE -1#LOG((1+RN1)/1000) Алгоритм генерации псевдослучайных чисел в GPSS World базируется на мультипликативном конгруэнтном алгоритме Лемера полного периода. Период последовательности равен 231-2 и он не включает 0, т.е. алгоритм дает псевдослучайные числа на интервале [ 0 ; 2147483647 ] и генерирует 2 147 483 646 уникальных случайных чисел до момента их повторения. Системный числовой атрибут класса RN выдает числа от 0 до 999 включительно. Для вычислений случайных функций используются случайные числа в диапазоне от 0 до 0,999999 включительно. 13 Построение моделей в системе GPSS Word Листинг программы моделирования простейшего потока заявок 14 Построение моделей в системе GPSS Word Диаграмма значений интервала времени между заявками 15 Построение моделей в системе GPSS Word Элементарная модель простейшего потока заявок ( на основе встроенной функции Exponential) Модель 3 Tinter Table M1,0,0.5,20 GENERATE 1 ADVANCE (Exponential(1,0,1)) Tabulate Tinter TERMINATE 1 Start 10000 В модели используется встроенная функция экспоненциального распределения Real = EXPONENTIAL(Stream, Locate, Scale) 16 Построение моделей в системе GPSS Word Real = EXPONENTIAL(Stream, Locate, Scale) Аргументи Stream – номер генератора случайных чисел ( целое число). Обязательный. Действительное целое число. Locate ( ) – значение сдвига которое используется для описания распределения. Обязательный. Действительное число. Может определяться из выражения Expression. Scale ( ) – показатель распределения . Строго положительный. позитивним. Обязательный. Действительное число. Может определяться из выражения Expression. Возвращаемое значение функции Real – действиельное число, которое выдается как отдельное значение вероятностного распределения Функция плотности вероятности 1 ( x ) / , x e f ( x) 0 17 Построение моделей в системе GPSS Word Листинг программы моделирования простейшего потока заявок 18 Построение моделей в системе GPSS Word Диаграмма значений интервала времени между заявками 19 Построение моделей в системе GPSS Word Вопрос ??? Почему в моделях перед табуляцией используется блок задержки ? МОДЕЛЬ 2 GENERATE 1 ADVANCE V$TSRV TABULATE Tinter TERMINATE 1 Start 10000 МОДЕЛЬ 3 GENERATE 1 ADVANCE (Exponential(1,0,1)) Tabulate Tinter TERMINATE 1 Start 10000 20 Основные блоки и команды языка GPSS Для имитации работы обслуживающих устройств с системе используются блоки SEIZE – при входе в блок транзакт выполняет попытку получить право овладеть прибором . RELEASE – при входе транзакта в блок прибор освобождается PREEMPT – при входе в блок транзакт выполняет попытку получить право овладеть прибором, с возможностью перемещения ранее занявшего прибор транзакта. RETURN – при входе транзакта в блок возвращается право использования прибором FAVAIL – при входе транзакта в блок прибор переводится в состояние доступности. FUNAVAIL – при входе транзакта в блок прибор переводится в состояние недоступности. 21 Основные блоки и команды языка GPSS Например, SEIZE A SEIZE A RELEASE А RELEASE A Описывают прибор А, который занимается транзактом, если свободен в момент его поступления в блок SEIZE и освобождение прибора при поступлении в блок RELEASE . Блоки SEIZ и RELEASE - это парные блоки 22 Основные блоки и команды языка GPSS Блоки моделирующие работу очереди Блок занятия очереди QUEUE А QUEUE B A A – имя очереди Блок освобождения очереди DEPART A DEPURT A B А – имя очереди Данные блоки ведут статистический учет параметров очереди: Длину очереди, Среднюю длину очереди Время пребывания транзакта в очереди 23 Основные блоки и команды языка GPSS Блоки многоканального устройства (МКУ) задание емкости МКУ A STORАGE B A – имя многоканального устройства B – емкость многоканального устройства Блок МКУ ENTER A,B ENTER B A А – имя прибора В – число единиц емкости, на которые надо уменьшать емкость многоканального устройства при вхождении в блок транзакта (по умолчанию В=1) 24 Основные блоки и команды языка GPSS Блоки многоканального устройства (МКУ) Блок освобождения МКУ LEAVE A,В LEAVE A B А – имя прибора В – число единиц емкости, на которые надо увеличить емкость многоканального устройства( по умолчанию В=1) при вхождении в блок транзакта Блоки принудительного изменения состояния МКУ SAVAIL – переводит МКУ в доступное состояние. SUNAVAIL – переводит МКУ в недоступное состояние. 25 Литература Кудрявцев Е.М. GPSS Word. Основы имитационного моделирования различных систем.- М. ДМК Пресс, 2004 Учебное пособие по GPSS Word./Перевод с англ. – Казань, Изд-во «Мастер – Лайн», 2002 Богуш К.Ю., Богуш Ю.П., Шиян А.И. GPSS World Моделювання телекомунікаційних систем та мереж. Посібник для дипломного проектування . – ICЗЗІ НТУУ КПІ, 2010 Боев В.Д. Моделирование систем. Инструментальные средства GPSS World.- СПб, БХВ- Петербург, 2004 Максимей И.В. Имитационное моделирование на ЭВМ. - М.: Радио и связь, 1988. Шрайбер Т.Дж. Моделирование на GPSS: Пер. с англ. - М.: Машиностроение, 1980. GPSS/PC general purpose simulation. Reference Manual. Minuteman software. P.O. Box 171. Stow, Massachusetts 01775, 1986. 26 Спасибо за внимание! 27