Механики
Скачать 4.29 Mb.
|
GPSS-модель и прокомменти - руем только выделенные жирным шрифтом изменения ( операторы ), кото - рые были внесены в модель разомкнутой СеМО для ее преобразования в модель замкнутой СеМО 1) Модель содержит на один модуль больше , чем модель разомкнутой СеМО Дополнительный третий модуль реализует завершение процесса моделирования путем задания временного интервала функционирования реальной ( исследуемой ) системы 320 Раздел 6. Имитационное моделирование 2) Для получения более наглядных временных гистограмм в операторах QTABLE и TABLE модуля 0 изменены параметры , задающие длину и число частотных интервалов , значения которых были подобраны экспериментальным путем 3) В модуль 1 внесены 3 изменения • Во - первых , изменился оператор GENERATE, который принял вид : GENERATE ,,,5 В этом операторе указан только четвертый операнд , определяющий число генерируемых им транзактов за все время моделирования Поскольку первый параметр отсутствует , то в нулевой момент модельного времени будут сформированы 5 транзактов , которые поступят в очередь первого узла Таким образом , в моделируемой СеМО появятся 5 заявок • Во - вторых , появился новый оператор с меткой : ************************************************************************* * Модель 7 линейной замкнутой однородной СеМО с двумя узлами и М=5 ************************************************************************* * Модуль 0: область описания Uz_1 STORAGE 2; задание числа приборов в узле 1 Tw_1 QTABLE 1,0, 0.5,30; время ожидания в узле 1 Tw_2 QTABLE 2, 10,10,30; время ожидания в узле 2 T_U TABLE M1, 40,40,30; время пребывания в сети ****************************************** * Модуль 1: моделирование процесса обслуживания заявок в узле 1 GENERATE ,,,5; формирование в нулевой момент времени пяти заявок Met_1 MARK ; отметка момента времени поступления заявки в сеть Met_3 QUEUE 1; регистрация момента поступления заявки в очередь узла 1 ENTER Uz_1; попытка занять один из приборов узла 1 DEPART 1; регистрация момента покидания заявки очереди узла 1 ADVANCE 15,5; задержка (обслуживание) заявки в узле 1 LEAVE Uz_1; выход обслуженной заявки из узла 1 TRANSFER .8,,Met_2; передача транзакта с вероятностью 0,8 в узел 2 TABULATE T_U TRANSFER ,Met_1; безусловная передача транзакта в узел 1 ****************************************** * Модуль 2: моделирование процесса обслуживания заявок в узле 2 Met_2 QUEUE 2; регистрация момента поступления заявки в очередь узла 2 SEIZE 2; попытка занять прибор узла 2 DEPART 2; регистрация момента покидания заявки очереди узла 2 ADVANCE (Exponential(50,0,20)); обслуживание заявки в узле 2 RELEASE 2; освобождение прибора и выход заявки из узла 2 TRANSFER ,Met_3; безусловная передача транзакта в узел 1 ************************************************************************ * Модуль 3: завершение процесса моделирования по длительности моделирования GENERATE 10000000; задание единичной длительности моделирования TERMINATE 1; уменьшение счетчика завершения на 1 ************************************************************** Раздел 6. Имитационное моделирование 321 Met_1 MARK . Оператор MARK (ОТМЕТИТЬ) предназначен для записи значения абсолютного времени в качестве одного из параметров транзакта ( отметка транзакта ) и , в общем случае , имеет вид : MARK А . Единственный операнд А задает имя или номер параметра активно - го транзакта , в который записывается значение таймера абсолютного времени , причём при его отсутствии значение абсолютного времени по умолчанию помещается на место ранее записанного времени входа транзакта в модель Этот оператор в рассматриваемой GPSS- модели используется для отметки момента прохождения заявкой « нулевой точки », относительно которой измеряется время пребывания заявок в замкнутой СеМО • В - третьих , в конце модуля 1 вместо оператора TERMINATE вставлен оператор TRANSFER ,Met_1 , реализующий безусловную передачу транзакта к блоку с меткой Met_1, что соответствует в модели возврату заявки в узел 1. 4) Дополнительный модуль 3 состоит только из двух операторов : GENERATE 10000000 TERMINATE 1 Такой модуль применяется в GPSS- моделях для реализации заверше - ния процесса моделирования по времени, прошедшему в моделируемой системе , а не по числу обслуженных в системе заявок ( прошедших через модель транзактов ). В соответствии с этими операторами в момент модельного времени ( времени , который наступит в реальной исследуемой системе ), равный 10000000, в блоке GENERATE модели появится транзакт , который сразу же попадет в блок TERMINATE и будет уничтожен При этом значение счётчика завершений будет уменьшено на единицу Если модель была запущена командой START 1, установившей начальное значение счётчика завершений в 1, то после вычитания 1 значение счётчика завершений станет равным 0 и процесс моделирования завершится Таким образом , если в предыдущей модели завершение моделирования осуще - ствлялось по числу заявок , покинувших СеМО , то в данной модели использовалось другое условие завершения моделирования – по времени , прошедшему в моделируемой системе На рис .6.19 представлен фрагмент отчёта , из которого могут быть получены все основные характеристики функционирования замкнутой СеМО ( наиболее интересные и важные результаты моделирования выделены жирным шрифтом ). 322 Раздел 6. Имитационное моделирование Видно , что время завершения моделирования ( END TIME) в точности совпадает с временем , заданным в модуле 3 GPSS- модели Оператор GENERATE сгенерировал за время моделирования только Рис.6.19. Фрагмент отчета к модели замкнутой СеМО GPSS World Simulation Report - Untitled Model 1.1.1 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 10000000.000 18 1 1 … LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 5 0 0 MET_1 2 MARK 124309 0 0 MET_3 3 QUEUE 622086 0 0 4 ENTER 622086 0 0 5 DEPART 622086 0 0 6 ADVANCE 622086 1 0 7 LEAVE 622085 0 0 8 TRANSFER 622085 0 0 9 TABULATE 124304 0 0 10 TRANSFER 124304 0 0 MET_2 11 QUEUE 497781 3 0 12 SEIZE 497778 0 0 13 DEPART 497778 0 0 14 ADVANCE 497778 1 0 15 RELEASE 497777 0 0 16 TRANSFER 497777 0 0 17 GENERATE 1 0 0 18 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE.TIME AVAIL. OWNER PEND INTER RETRY DELAY 2 497778 0.993 19.949 1 4 0 0 0 3 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 4 0 622086 444845 0.145 2.330 8.178 0 2 4 3 497781 12528 2.929 58.836 60.355 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY UZ_1 2 1 0 2 622086 1 0.933 0.467 0 0 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TW_1 2.330 4.796 0 _ - 0.000 444845 71.51 0.000 - 0.500 6254 72.51 0.500 - 1.000 6350 73.53 14.000 - _ 28460 100.00 TW_2 58.836 39.993 0 _ - 10.000 38373 7.71 10.000 - 20.000 39655 15.68 20.000 - 30.000 49849 25.69 290.000 - _ 71 100.00 T_U 402.214 438.431 0 _ - 40.000 24771 19.93 40.000 - 80.000 4846 23.83 80.000 - 120.000 8414 30.60 1160.000 - _ 8158 100.00 Раздел 6. Имитационное моделирование 323 Рис.6.20. Разомкнутая СеМО с неоднородным потоком заявок 2 p 10 «0» 1 p 12 «0» 5 транзактов , которые постоянно циркулировали в модели При этом через первый узел ( блок ENTER) транзакты прошли 622086 1 = N раз , через второй ( блок SEIZE) – 497778 2 = N раз , а через нулевую точку ( блок TABULATE) – 124304 0 = N раз Последнее значение позволяет рассчитать одну из основных сетевых характеристик замкнутой СеМО – производи - тельность сети , как отношение числа заявок ( транзактов ), прошедших через нулевую точку СеМО за время моделирования 10000000 = T , к этому времени : 1 1 0 0 ч 75 , 44 с 0124304 , 0 10000000 124304 − − ≈ = = = T N λ , то есть примерно 45 заявок в час. Коэффициенты передач для каждого из узлов могут быть рассчитаны следующим образом: 5 124304 622086 0 1 1 ≅ = = N N α и 4 124304 497778 0 2 2 ≅ = = N N α Загрузки узлов (UTIL.) соответственно равны: 467 , 0 1 = ρ и 993 , 0 2 = ρ Средние длины очередей (AVE.CONT.) в узлах СеМО составляют: 144 , 0 1 = l и 929 , 2 2 = l Использование в модели таблиц для построения гистограмм плотностей распределений времён ожидания заявок в узлах СеМО и времени пребывания заявок в сети, кроме средних значений временных характеристик, позволяет получить их среднеквадратические отклонения: c 33 , 2 1 = w ; c 796 , 4 1 = w σ ; c 836 , 58 2 = w ; c 993 , 39 2 = w σ ; c 214 , 402 = U ; c 431 , 438 = U σ 6.7.12. Модель 8: разомкнутая СеМО с неоднородным потоком заявок Положим, что в линейную разомкнутую СеМО с двумя узлами поступает неоднородный поток заявок двух классов (рис.6.20). Заявки класса 1 (сплошная линия) и класса 2 (пунктирная линия) поступают в узел 1 и образуют простейшие потоки со средними интервалами 100 и 50 секунд соответственно. После об- служивания в узле 1 заявки класса 1 с вероятностью 8 , 0 12 = p переходят на обслуживание в узел 2 и с вероятностью 2 , 0 10 = p покидают СеМО. Заявки класса 2 обслужи- ваются только в узле 1, после чего покидают СеМО. 324 Раздел 6. Имитационное моделирование Длительности обслуживания заявок класса 1 и 2 в двухканальном узле 1 представляют собой равномерно распределённые случайные величины в интервалах (15±5) и (10 ±5) секунд соответственно. Длительность обслуживания заявок класса 2 в одноканальном узле 2 – величина случайная, распределенная по экспоненциальному закону со средним значением 20 секунд. Краткое описание рассматриваемой СеМО: • количество потоков (классов) заявок: 2 = H ; • количество узлов в сети: 2 = n ; • количество обслуживающих приборов в узле 1: 2 1 = K ; • количество обслуживающих приборов в узле 2: 1 2 = K ; • емкость накопителей в узлах сети – не ограничена, то есть в сети не может быть потерь заявок, что обусловливает линейность сети; • потоки заявок класса 1 и класса 2 – простейшие; • средний интервал между поступающими заявками класса 1: c 100 ) 1 ( 0 = a ; • средний интервал между поступающими заявками класса 2: c 50 ) 2 ( 0 = a ; • длительность обслуживания заявок класса 1 в узле 1 распределена равномерно в интервале от 10 до 20 с: c 5 15 ) 1 ( 1 ± = b ; • длительность обслуживания заявок класса 2 в узле 1 распределена равномерно в интервале от 5 до 15 с: c 5 10 ) 2 ( 1 ± = b ; • длительность обслуживания заявок класса 1 в узле 2 распределена по экспоненциальному закону со средним значением 20 с: c 20 ) 1 ( 2 = b Текст GPSS-модели разомкнутой СеМО с неоднородным потоком заявок представлен на следующей странице. В рассматриваемой GPSS-модели, в отличие от модели 5 двухузло- вой РСеМО с однородным потоком заявок, появился третий модуль, моде- лирующий процессы поступления и обслуживания заявок класса 2 в узле 1. Таким образом, при моделировании СеМО с неоднородным потоком заявок количество исполняемых модулей GPSS-модели определяется как произведение количества классов заявок на количество узлов моделируемой СеМО. На рис 6.21 представлен отчет с результатами имитационного моделирования разомкнутой СеМО с двумя классами заявок для значения 1000000 операнда А в команде START, заданного при запуске процесса моделирования. Анализ представленного отчета позволяет получить основные характеристики функционирования разомкнутой СеМО с неоднородным потоком заявок (наиболее интересные и важные результаты моделиро- вания выделены жирным шрифтом). Раздел 6. Имитационное моделирование 325 В процессе моделирования через разомкнутую СеМО прошло 1000000 0 = N заявок обоих классов. Все обслуженные заявки попали в два блока TERMINATE и были удалены из модели. По количеству транзактов каждого класса, прошедших через соот- ветствующие блоки ENTER, SEIZE и TERMINATE можно рассчитать коэффициенты передач для заявок класса 1 ( ) 1 ( 1 α , ) 1 ( 2 α ) и 2 ( ) 2 ( 1 α , ) 2 ( 2 α ) в узлах 1 и 2 разомкнутой СеМО соответственно: 5 333403 1671938 ) 1 ( 1 ≅ = α и 4 333403 1338533 ) 1 ( 2 ≅ = α , 1 666597 666597 ) 2 ( 1 = = α и 0 ) 2 ( 2 = α , что соответствует теоретическим значениям, которые могут быть рассчи- таны путём решения системы линейных алгебраических уравнений (4.16), как это описано в п.4.4.2. Загрузки узлов СеМО (UTIL.) равны: 476 , 0 1 = ρ и 802 , 0 2 = ρ ************************************************************************* * Модель 8 разомкнутой СеМО с неоднородным потоком заявок ************************************************************************* * Модуль 0: область описания Uzel_1 STORAGE 2; задание числа приборов в узле 1 ****************************************** * Модуль 1: поступление и обслуживание заявок класса 1 в узле 1 GENERATE (Exponential(10,0,100)); формирование потока заявок класса 1 Met_1 QUEUE Quz1_k1; момент поступления в очередь узла 1 ENTER Uzel_1; попытка занять один из приборов узла 1 DEPART QUz1_k1; момент покидания очереди узла 1 ADVANCE 15,5; задержка (обслуживание) в узле 1 LEAVE Uzel_1; выход обслуженной заявки из узла 1 TRANSFER .8,,Met_2; передача заявки с вероятностью 0,8 в узел 2 TERMINATE 1; удаление из модели (СеМО) обслуженной заявки класса 1 ****************************************** * Модуль 2: моделирование процесса обслуживания заявок класса 1 в узле 2 Met_2 QUEUE QUz2_k1; момент поступления в очередь узла 2 SEIZE Uzel_2; попытка занять прибор узла 2 DEPART QUz2_k1; момент покидания очереди узла 2 ADVANCE (Exponential(50,0,20)); обслуживание в узле 2 RELEASE Uzel_2; выход обслуженной заявки из узла 2 TRANSFER ,Met_1; безусловная передача транзакта в узел 1 ******************************************* * Модуль 3: поступление и обслуживание заявок класса 2 в узле 1 GENERATE (Exponential(10,0,50)); формирование потока заявок класса 2 QUEUE QUz1_k2; момент поступления в очередь узла 1 ENTER Uzel_1; попытка занять один из приборов узла 1 DEPART QUz1_k2; момент покидания очереди узла 1 ADVANCE 10,5; задержка (обслуживание) в узле 1 LEAVE Uzel_1; выход обслуженной заявки из узла 1 TERMINATE 1; удаление из модели (СеМО) обслуженной заявки класса 2 326 Раздел 6. Имитационное моделирование Среднее число заявок класса 1 в очереди (AVE.CONT.) в узлах 1 и 2 СеМО: 120 , 0 ) 1 ( 1 = l и 232 , 3 ) 1 ( 2 2 = = l l . Среднее число заявок класса 2 в START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 33345310.868 21 1 1 NAME VALUE MET_1 2.000 MET_2 9.000 QUZ1_1 10002.000 QUZ1_2 10001.000 QUZ2 10003.000 UZEL_1 10000.000 UZEL_2 10004.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 333406 0 0 MET_1 2 QUEUE 1671938 0 0 3 ENTER 1671938 1 0 4 DEPART 1671937 0 0 5 ADVANCE 1671937 1 0 6 LEAVE 1671936 0 0 7 TRANSFER 1671936 0 0 8 TERMINATE 333403 0 0 MET_2 9 QUEUE 1338533 0 0 10 SEIZE 1338533 0 0 11 DEPART 1338533 0 0 12 ADVANCE 1338533 1 0 13 RELEASE 1338532 0 0 14 TRANSFER 1338532 0 0 15 GENERATE 666597 0 0 16 QUEUE 666597 0 0 17 |