Лекция 5 Моделирование в системе GPSS Word 1 Вопросы лекции 1. 2. 3. Модель работы переговорного пункта Блоки условного перехода Модель системы М/М/1 с отказами 2 Моделирование в системе GPSS Модель исследования значений ГСЧ RN1 * The RMULT Command initializes up to 7 random number generators with new seeds. Only random number generators numbered 7 or below can be controlled by an RMULT Command. RMULT 1,2,3,4,5,6,7 * RMULT 50,2,3,4,5,6,7 * RMULT 999,2,3,4,5,6,7 GENERATE X$TIMER SAVEVALUE AVER1,RN1 SAVEVALUE AVER2,RN1 SAVEVALUE AVER3,RN1 SAVEVALUE AVER4,RN1 SAVEVALUE AVER5,RN1 SAVEVALUE AVER6,RN1 SAVEVALUE AVER7,RN1 SAVEVALUE AVER8,RN1 SAVEVALUE AVER9,RN1 SAVEVALUE AVER10,RN1 SAVEVALUE AVER11,RN1 SAVEVALUE AVER12,RN1 SAVEVALUE AVER13,RN1 SAVEVALUE AVER14,RN1 SAVEVALUE AVER15,RN1 SAVEVALUE AVER16,RN1 SAVEVALUE AVER17,RN1 SAVEVALUE AVER18,RN1 SAVEVALUE AVER19,RN1 SAVEVALUE AVER20,RN1 TERMINATE 1 Start 1 Первоначальное значение для RN7 Первоначальное значение для RN1 3 Моделирование в системе GPSS Результаты моделирования: последовательности чисел генератора RN1 RMULT 1,2,3,4,5,6,7 RMULT 50,2,3,4,5,6,7 RMULT 999,2,3,4,5,6,7 SAVEVALUE SAVEVALUE SAVEVALUE AVER1 AVER2 AVER3 AVER4 AVER5 AVER6 AVER7 AVER8 AVER9 AVER10 AVER11 AVER12 AVER13 AVER14 AVER15 AVER16 AVER17 AVER18 AVER19 AVER20 RETRY 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 VALUE 638.000 428.000 989.000 351.000 301.000 705.000 759.000 327.000 879.000 128.000 633.000 657.000 351.000 320.000 592.000 735.000 560.000 599.000 60.000 385.000 AVER1 AVER2 AVER3 AVER4 AVER5 AVER6 AVER7 AVER8 AVER9 AVER10 AVER11 AVER12 AVER13 AVER14 AVER15 AVER16 AVER17 AVER18 AVER19 AVER20 RETRY 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 VALUE 165.000 706.000 346.000 161.000 736.000 701.000 480.000 65.000 2.000 969.000 529.000 951.000 84.000 430.000 675.000 968.000 675.000 374.000 296.000 953.000 AVER1 AVER2 AVER3 AVER4 AVER5 AVER6 AVER7 AVER8 AVER9 AVER10 AVER11 AVER12 AVER13 AVER14 AVER15 AVER16 AVER17 AVER18 AVER19 AVER20 RETRY 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 VALUE 618.000 136.000 810.000 840.000 597.000 726.000 703.000 554.000 746.000 71.000 981.000 998.000 8.000 323.000 898.000 354.000 487.000 782.000 213.000 828.000 Модификатор генератора псевдо-случайных чисел RN М = 1 ( по умолчанию) При М=0 все значения ГСЧ будут равны 0 4 Модель работы переговорного пункта Модель обслуживания абонентов на переговорном пункте Модель описывает процесс обслуживания абонентов одним таксофоном переговорного пункта Описание процесса моделирования Имитация потока прихода абонентов (через промежутки времени) Ожидание освобождения таксофона Занятие таксофона Использование таксофона в течении длительности разговора (увеличение времени на длительность разговора) Освобождение таксофона Удаление абонента 5 Модель работы переговорного пункта Допущения в модели Поток абонентов – простейший Длительность разговора подчиняется экспоненциальному распределению Время ожидания освобождения таксофона неограниченно Модель 4 состоит из двух сегментов Сегмент 1 - Генерации потока заявок и моделирования процесса обслуживания Сегмент 2 – Управление модельным временем ( задание длительности моделирования) 6 Модель работы переговорного пункта 1-й сегмент модели GENERATE X$AVER,FN$XPDIS QUEUE Прибытие абонента на переговорный пункт Абонент занимает место в очереди к таксофону, QPHONE SEIZE PHONE DEPART QPHONE ADVANCE V$TALK PHONE RELEASE Абонент занимает телефон Абонент освобождает очередь Розговор на протяжении времени TALK Освобождение телефону по окончании разговора TERMINATE 2-й сегмент модели GENERATE X$TIMER TERMINATE 1 Завершение времени моделирования Завершение моделирования Модель обслуживания абонентов на переговорному пункте 7 Модель работы переговорного пункта * Модель 4 * 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$AVER,300 INITIAL X$AVTALK,180 INITIAL X$TIMER,200000 * * VARIABLE DEFINITION(S) *TALK VARIABLE X$AVTALK#FN$XPDIS ************************************************************************************ * MODEL SEGMENT 1 ************************************************************************************ GENERATE X$AVER,FN$XPDIS QUEUE QPHONE SEIZE PHONE DEPART QPHONE ADVANCE V$TALK RELEASE PHONE TERMINATE ************************************************************************************ * MODEL SEGMENT 2 ************************************************************************************ GENERATE X$TIMER TERMINATE 1 8 Модель работы переговорного пункта GPSS World Simulation Report - Untitled Model 1.1.1 Friday, August 27, 2010 13:57:52 START TIME 0.000 NAME AVER AVTALK PHONE QPHONE TALK TIMER XPDIS LABEL 1 2 3 4 5 6 7 8 9 END TIME BLOCKS FACILITIES STORAGES 200000.000 9 1 0 VALUE 10001.000 10002.000 10006.000 10005.000 10004.000 10003.000 10000.000 LOC BLOCK TYPE GENERATE QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE GENERATE TERMINATE ENTRY COUNT CURRENT COUNT RETRY 663 0 0 663 0 0 663 0 0 663 0 0 663 0 0 663 0 0 663 0 0 1 0 0 1 0 0 9 Модель работы переговорного пункта FACILITY PHONE ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY 663 0.559 168.500 1 0 0 0 0 0 QUEUE QPHONE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 6 0 663 292 0.577 174.028 310.999 0 SAVEVALUE AVER AVTALK TIMER RETRY VALUE 0 300.000 0 180.000 0 200000.000 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER 665 0 200000.426 665 0 1 666 0 400000.000 666 0 8 VALUE 10 Модель работы переговорного пункта Journal ( отчет о выполнении модели) 08/27/10 13:57:17 08/27/10 13:57:17 08/27/10 13:57:52 08/27/10 13:57:52 08/27/10 13:57:52 200000.000000. 08/27/10 13:57:52 Window. Model Translation Begun. Ready. START 1 Simulation in Progress. The Simulation has ended. Clock is Reporting in Untitled Model 1.1.1 - REPORT 11 Блоки условного перехода Блок TRANSFER реализует условную передачу транзакта в новый блок TRANSFER A,B,C,D Операнды A - режим передачи : BOTH, ALL, PICK, FN, P, SBR, SIM, fraction, Name, PosInteger, ParenthesizedExpression, SNA, SNA*Parameter, or Null. B - номер блока или метка. C - номер блока или метка или инкрементальная величина для режимов: FN и P. D - модификатор номера блока для режима ALL Mode. По умолчанию 1. 12 Блоки условного перехода Пример TRANSFER .75,,New_Place При поступлении транзакта в блок TRANSFER с вероятностью 0.75 тразакт переходит в блок с именем NEW_PLACE. В остальных 25% случаев, транзакты переходят в блок, следующий за блоком TRANSFER ( если указан операнд В, то в блок , указанный операндом В) 13 Блоки условного перехода Режим “Both” ( “Both Mode”) В этом режиме, когда транзакт входит в блок TRANSFER, проверяется блок, обозначенный операндом В. Если этот блок «готов» принять транзакт, то транзакт переходит в этот блок, иначе транзакт переходит в блок, обозначенный операндом С. Если и этот блок «не готов», транзакт содержится в блоке. Режим “ALL” ( “ALL Mode”) При поступлении транзакта в блок TRANSFER , проверяется блок, обозначенный операндом В, Если он «готов» принять транзакт, транзакт переходит в него. Если нет, проверяются последовательно все последующие до блока отмеченного операндом С ( включительно), т.е. все блоки от указателя в операнде В до указателя в операнде С. Транзакт переходит в тот блок, который (первым в этой последовательности блоков) готов его принять.. 14 Блоки условного перехода Пример, TRANSFER BOTH, First_Place,Second_Place Когда транзакт входит в блок TRANSFER , тестируется блок с именем First_Place. Если транзакт может в него войти, то он переходит в этот блок. Если блок First_Place не может принять транзакт, проверяется блок с именем Second_Place. Если тест положителен, транзакт переходит в этот блок. Если блок Second_Place не может принять транзакт, транзакт задерживается в блоке TRANSFER до ближайшего момента, когда он будет выведен. 15 Блоки условного перехода Пример, TRANSFER ALL, First_Place, Second_Place, Сurrent При поступлении транзакта в блок TRANSFER , тестируется блок с именем First_Place. Если транзакт может в него войти, то он переходт в этот блок. Если блок First_Place не может принять транзакт, проверяется следующий за ним блок на «возможность приема транзакта». Вплоть до блока с именем, указанным в операнде C. Смысл режима «ALL» в том, что проверяются все блоки от указателя в операнде B (”First_Place”) до указателя в операнде C (“Second_Place”). В операнде D фиксируется указатель блока, который смог принять транзакт 16 Блоки условного перехода Если ни один из блоков не может “принять” транзакт, транзакт задерживается в блоке TRANSFER до ближайшего момента, когда он будет выведен. Проверка такого момента осуществляется в каждый момент модельного времени. Для реализации механизма сдерживания (задержки) транзактов в блоках TRANSFER в системе используется цепь повторных попыток (Retry Chain). В цепь повторных попыток транзакты попадают когда они переходят в блоки проверки условия возможности дальнейшего продвижения: анализа возможности переместить транзакт в блоки, указанные в операндах В и С. 17 Блоки условного перехода Подобный механизм проверки ( и при необходимости сдерживания (задержки) транзактов) выполняется когда транзакт пытается войти в блоки GATE, TEST, TRANSFER ALL, TRANSFER BOTH. 18 Блоки условного перехода Блок GATE изменяет направление движения транзактов в зависимости от состояния блока GATE O A,B Операнды O - оператор проверки ( тестирования) условия возможности войти в блок. Условия проверки: FNV, FV, I, LS, LR, M, NI, NM, NU, SE, SF, SNE, SNF, SNV, SV, U. A - Указатель блока, в который входит транзакт при положительном тестировании. Указатель принимает значения: Name, PosInteger, ParenthesizedExpression, SNA, or SNA*Parameter. B - Указатель блока, в который входит транзакт при отрицательном тестировании. Указатель принимает значения: Name, PosInteger, ParenthesizedExpression, SNA, or SNA*Parameter. 19 Блоки условного перехода Примеры. GATE SNF MotorPool Активный транзакт входит в блок GATE если емкость многоканального устройства ( МКУ) MotorPool не полностью занята ( Storage Not Full) и проходит в следующий блок. Если емкость МКУ полностью занята, активный транзакт блокируется в блоке GATE до момента, пока не освободиться хотя бы один канал МКУ MotorPool. GATE SNF MotorPool, EXIT В данном примере, если в момент поступления транзакта в блок GATE, емкость МКУ MotorPool полностью занята, транзакт переходит к блоку с указателем EXIT. Если есть свободная емкость, транзакт переходит в следующий блок. 20 Блоки условного перехода Примеры. GATE SNE MotorPool,CupboardIsBare В данном примере активный транзакт всегда входит в блок GATE. Если емкость (Storage Entity) МКУ MotorPool не пуста (Storage Not Empty), т.е. занят хоть один канал), транзакт переходит в следующий блок. Если все каналы свободны (unsuccessful test), транзакт переходит в блок с указателем CupboardIsBare 21 Блоки условного перехода Значения оператора проверки (условия) : FNV - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство занято. FV - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство свободно. I - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство в состоянии прерванного обслуживания . NI - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство в состоянии непрерванного обслуживания. NU - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство не используется. 22 Блоки условного перехода Значения оператора проверки (условия) : SE - проверка состояния МКУ, указанного операндом А. Тест положителен, если все каналы устройства не работают ( не используются) SF - проверка состояния МКУ, указанного операндом А. Тест положителен, если все каналы устройства работают (используются). SNE - проверка состояния МКУ, указанного операндом А. Тест положителен, если заняты все каналы устройства. SNF - проверка состояния МКУ, указанного операндом А. Тест положителен, если есть хоть один доступный канал для использования . SNV - проверка состояния МКУ, указанного операндом А. Тест положителен, если МКУ недоступно. SV - проверка состояния МКУ, указанного операндом А. Тест положителен, если МКУ доступно 23 Модель системы М/М/1 с отказами Сравнение реализации моделей в системе Exel и GPSS World Имитационная модель одноканальной системы обслуживания с отказами ( M/M/1) Допущения : Входной поток вызовов – простейший с параметром l Время обслуживания имеет экспоненциальное распределение с параметром m Время – дискретное Система имеет два стационарных состояния канала: Свободен Занят Изменения состояния происходит при поступлении и завершении обслуживания заявки. 24 Модель системы М/М/1 с отказами Модель в программе Exel Массив случайных чисел равномерно распределенных в интервале [ 0 ; 1 ] для входного для времени потока обслуживания 0,528828427 0,186617023 0,318985792 0,055345515 0,277020023 0,746375611 0,940935776 0,298751924 0,93488182 0,51326396 0,102603594 0,316712463 0,012981275 0,453171737 0,593557854 0,513701649 0,957282928 0,395014069 0,977504586 0,104120184 0,355384618 0,659687853 0,871739091 0,91225325 0,216741875 0,341788087 0,096769418 0,783109218 0,232768582 0,464537809 0,80209964 0,149927145 0,930834021 0,453779327 0,381424031 0,331108304 0,151603769 0,427477469 0,422357852 0,441772791 0,587633947 0,381989469 0,845847563 0,951970793 0,374609591 0,428648021 0,020125964 0,638252949 0,757556478 0,190869131 0,515885016 0,753171819 0,441625323 0,848657348 параметр потока № заявки в потоке 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 27 t между соседними заявками во входном потоке 0,637091234 1,678696769 1,142608717 2,894159652 1,283665489 0,292526306 0,060880393 1,208141734 0,067335154 0,666965023 2,276882319 1,149760975 4,344247334 0,791484115 0,521620591 0,666112632 0,043656291 0,928833898 0,022752296 2,262209429 1,034554646 0,415988506 0,137265107 0,091837641 1,529048151 1,073564364 2,335424264 Выходной поток Состояние канала обслужния 1 Т - время поступления заявок на обслуживание 0,637091234 2,315788002 3,458396719 6,35255637 7,636221859 7,928748165 7,989628558 9,197770292 9,265105445 9,932070469 12,20895279 13,35871376 17,7029611 18,49444521 19,0160658 19,68217843 19,72583473 20,65466862 20,67742092 22,93963035 23,97418499 24,3901735 24,52743861 24,61927625 26,1483244 27,22188876 29,55731303 m =1 0 - свободен / 1 - занят 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 Длительность обслуживания заявки 0,244483106 1,457710528 0,766712327 0,22052244 1,8976058 0,071674298 0,790144263 0,963843582 1,105309754 1,886484947 0,849853695 0,861902333 0,816959576 0,531651064 0,962362238 0,167416121 0,049220924 0,981870886 0,847119161 3,905744562 0,449020602 0,277657186 1,656167263 0,661871375 0,283461897 0,817293442 0,164099769 13 48% T - время освобожения канала обслуживания 0,881574339 3,77349853 3,77349853 6,57307881 9,533827659 9,533827659 9,533827659 9,533827659 9,533827659 11,81855542 13,05880648 14,2206161 18,51992067 18,51992067 19,97842804 19,97842804 19,97842804 21,63653951 21,63653951 26,84537491 26,84537491 26,84537491 26,84537491 26,84537491 26,84537491 28,0391822 29,72141279 обслуженные заявки Входной поток l =1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 13 25 Модель системы М/М/1 с отказами Модель 5 Имитационная модель М/М/1 (с отказами) в системе GPSS Word * Модель М/М/1 с отказами Ttime TABLE M1,0,0.5,20 GENERATE (Exponential(1,0,1)) TRANSFER both,met1,met2 met1 SEIZE Channel DVANCE (Exponential(1,0,1)) RELEASE Channel met2 TABULATE Ttime TERMINATE 1 Start 1000 26 Модель системы М/М/1 с отказами GPSS World Simulation Report - Model 5 MM1с отказами .28.1 Monday, November 04, 2013 13:38:41 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 997.949 7 1 0 NAME CHANNEL MET1 MET2 TTIME LABEL 1 2 MET1 4 5 MET2 7 VALUE 10001.000 3.000 6.000 10000.000 LOC BLOCK TYPE GENERATE TRANSFER 3 SEIZE ADVANCE RELEASE 6 TABULATE TERMINATE ENTRY COUNT CURRENT COUNT RETRY 1001 0 0 1001 0 0 504 0 0 504 1 0 503 0 0 1000 0 0 1000 0 0 27 Модель системы М/М/1 с отказами FACILITY CHANNEL ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY 504 0.504 0.999 1 1000 0 0 0 0 TABLE TTIME MEAN 0.503 FEC XN PRI 1002 0 1000 0 BDT ASSEM CURRENT NEXT PARAMETER 998.118 1002 0 1 998.429 1000 4 5 STD.DEV. RANGE 0.866 _ 0.000 0.000 0.500 0.500 1.000 1.000 1.500 1.500 2.000 2.000 2.500 2.500 3.000 3.000 3.500 3.500 4.000 4.000 4.500 4.500 5.000 5.000 5.500 5.500 6.000 6.000 6.500 6.500 7.000 7.000 7.500 RETRY FREQUENCY CUM.% 0 497 49.70 202 69.90 120 81.90 64 88.30 44 92.70 25 95.20 23 97.50 11 98.60 5 99.10 5 99.60 2 99.80 1 99.90 0 99.90 0 99.90 0 99.90 1 100.00 VALUE 28 Модель системы М/М/1 с отказами Модель М/М/1 Результаты моделирования 29 Литература Кудрявцев Е.М. 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 с. (мова українська). 30 Спасибо за внимание! 31