1 Лекция 5 Моделирование в системе GPSS Word
2 Вопросы лекции 1. Модель работы переговорного пункта 2. Блоки условного перехода 3. Модель системы М/М/1 с отказами
Моделирование в системе 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 GENERATEX$TIMER SAVEVALUEAVER1,RN1 SAVEVALUEAVER2,RN1 SAVEVALUEAVER3,RN1 SAVEVALUEAVER4,RN1 SAVEVALUEAVER5,RN1 SAVEVALUEAVER6,RN1 SAVEVALUEAVER7,RN1 SAVEVALUEAVER8,RN1 SAVEVALUEAVER9,RN1 SAVEVALUEAVER10,RN1 SAVEVALUEAVER11,RN1 SAVEVALUEAVER12,RN1 SAVEVALUEAVER13,RN1 SAVEVALUEAVER14,RN1 SAVEVALUEAVER15,RN1 SAVEVALUEAVER16,RN1 SAVEVALUEAVER17,RN1 SAVEVALUEAVER18,RN1 SAVEVALUEAVER19,RN1 SAVEVALUEAVER20,RN1 TERMINATE1 Start 1 3 Первоначальное значение для RN1 Первоначальное значение для RN7
Моделирование в системе GPSS RMULT 1,2,3,4,5,6,7RMULT 50,2,3,4,5,6,7RMULT 999,2,3,4,5,6,7 SAVEVALUE RETRY VALUE AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER SAVEVALUE RETRY VALUE AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER SAVEVALUE RETRY VALUE AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER AVER Модификатор генератора псевдо-случайных чисел RN М = 1 ( по умолчанию) При М=0 все значения ГСЧ будут равны 0 Результаты моделирования: последовательности чисел генератора RN1
5 Модель работы переговорного пункта Модель описывает процесс обслуживания абонентов одним таксофоном переговорного пункта Описание процесса моделирования Имитация потока прихода абонентов (через промежутки времени) Ожидание освобождения таксофона Занятие таксофона Использование таксофона в течении длительности разговора (увеличение времени на длительность разговора) Освобождение таксофона Удаление абонента Модель обслуживания абонентов на переговорном пункте
Модель работы переговорного пункта Допущения в модели Поток абонентов – простейший Длительность разговора подчиняется экспоненциальному распределению Время ожидания освобождения таксофона неограниченно Модель 4 состоит из двух сегментов Сегмент 1 - Генерации потока заявок и моделирования процесса обслуживания Сегмент 2 – Управление модельным временем ( задание длительности моделирования) 6
Модель работы переговорного пункта 7 GENERATE QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE X$AVER,FN$XPDIS QPHONE PHONE V$TALK GENERATE X$TIMER TERMINATE 1 PHONE Прибытие абонента на переговорный пункт Абонент занимает Розговор на протяжении времени TALK место в очереди к таксофону, Абонент занимает Абонент освобождает очередь Освобождение телефону телефон Завершение времени моделирования Завершение 1-й сегмент модели 2-й сегмент модели Модель обслуживания абонентов на переговорному пункте QPHONE по окончании разговора
Модель работы переговорного пункта * Модель 4 *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$AVER,300 INITIALX$AVTALK,180 INITIALX$TIMER, * * VARIABLE DEFINITION(S) *TALKVARIABLEX$AVTALK#FN$XPDIS ************************************************************************************ * MODEL SEGMENT 1 ************************************************************************************ GENERATEX$AVER,FN$XPDIS QUEUEQPHONE SEIZEPHONE DEPARTQPHONE ADVANCEV$TALK RELEASEPHONE TERMINATE ************************************************************************************ * MODEL SEGMENT 2 ************************************************************************************ GENERATEX$TIMER TERMINATE1 8
Модель работы переговорного пункта GPSS World Simulation Report - Untitled Model Friday, August 27, :57:52 START TIME END TIME BLOCKS FACILITIES STORAGES NAME VALUE AVER AVTALK PHONE QPHONE TALK TIMER XPDIS LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE GENERATE TERMINATE
Модель работы переговорного пункта FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY PHONE QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY QPHONE SAVEVALUE RETRY VALUE AVER AVTALK TIMER FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
Модель работы переговорного пункта Journal ( отчет о выполнении модели) 08/27/10 13:57:17 Model Translation Begun. 08/27/10 13:57:17 Ready. 08/27/10 13:57:52 START 1 08/27/10 13:57:52 Simulation in Progress. 08/27/10 13:57:52 The Simulation has ended. Clock is /27/10 13:57:52 Reporting in Untitled Model REPORT Window. 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 не может принять транзакт, проверяется следующий за ним блок на «возможность приема транзакта». Вплоть до блока с именем, указанным в операнде С. Смысл режима «ALL» в том, что проверяются все блоки от указателя в операнде В до указателя в операнде С. В операнде D фиксируется указатель блока, который смог принять транзакт 16
Блоки условного перехода Если ни один из блоков не может принять транзакт, транзакт задерживается в блоке TRANSFER до ближайшего момента, когда он будет выведен. Проверка такого момента осуществляется в каждый момент модельного времени. Для реализации механизма сдерживания (задержки) транзактов в блоках TRANSFER в системе используется цепь повторных попыток (Retry Chain). В цепь повторных попыток транзакты попадают когда они переходят в блоки проверки условия возможности дальнейшего продвижения: анализа возможности переместить транзакт в блоки, указанные в операндах В и С. 17
Блоки условного перехода 18 Подобный механизм проверки ( и при необходимости сдерживания (задержки) транзактов) выполняется когда транзакт пытается войти в блоки GATE, TEST, TRANSFER ALL, TRANSFER BOTH.
Блоки условного перехода Блок 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
Блоки условного перехода 20 Примеры. GATE SNF MotorPool Активный транзакт входит в блок GATE если емкость многоканального устройства ( МКУ) MotorPool не полностью занята ( Storage Not Full) и проходит в следующий блок. Если емкость МКУ полностью занята, активный транзакт блокируется в блоке GATE до момента, пока не освободиться хотя бы один канал МКУ MotorPool. GATE SNF MotorPool, EXIT В данном примере, если в момент поступления транзакта в блок GATE, емкость МКУ MotorPool полностью занята, транзакт переходит к блоку с указателем EXIT. Если есть свободная емкость, транзакт переходит в следующий блок.
Блоки условного перехода 21 Примеры. GATE SNE MotorPool,CupboardIsBare В данном примере активный транзакт всегда входит в блок GATE. Если емкость (Storage Entity) МКУ MotorPool не пуста (Storage Not Empty), т.е. занят хоть один канал), транзакт переходит в следующий блок. Если все каналы свободны (unsuccessful test), транзакт переходит в блок с указателем CupboardIsBare
Блоки условного перехода 22 Значения оператора проверки (условия) : FNV - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство занято. FV - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство свободно. I - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство в состоянии прерванного обслуживания. NI - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство в состоянии непрерванного обслуживания. NU - проверка состояния прибора (Facility), указанного операндом А. Тест положителен, если устройство не используется.
Блоки условного перехода 23 Значения оператора проверки (условия) : SE - проверка состояния МКУ, указанного операндом А. Тест положителен, если все каналы устройства не работают ( не используются) SF - проверка состояния МКУ, указанного операндом А. Тест положителен, если все каналы устройства работают (используются). SNE - проверка состояния МКУ, указанного операндом А. Тест положителен, если заняты все каналы устройства. SNF - проверка состояния МКУ, указанного операндом А. Тест положителен, если есть хоть один доступный канал для использования. SNV - проверка состояния МКУ, указанного операндом А. Тест положителен, если МКУ недоступно. SV - проверка состояния МКУ, указанного операндом А. Тест положителен, если МКУ доступно
24 Модель системы М/М/1 с отказами Сравнение реализации моделей в системе Exel и GPSS World Имитационная модель одноканальной системы обслуживания с отказами ( M/M/1) Допущения : Входной поток вызовов – простейший с параметром Время обслуживания имеет экспоненциальное распределение с параметром Время – дискретное Система имеет два стационарных состояния канала: Свободен Занят Изменения состояния происходит при поступлении и завершении обслуживания заявки.
25 Модель системы М/М/1 с отказами =1 Модель в программе Exel
26 Модель системы М/М/1 с отказами Модель 5 Имитационная модель М/М/1 (с отказами) в системе GPSS Word * Модель М/М/1 с отказами Ttime TABLE M1,0,0.5,20 GENERATE (Exponential(1,0,1)) QUEUE wait TRANSFER both,met1,met2 met1 SEIZE Channel DEPART wait ADVANCE (Exponential(1,0,1)) RELEASE Channel met2 TABULATE Ttime TERMINATE 1 Start 1000
27 Модель системы М/М/1 с отказами GPSS World Simulation Report - Model 5 MM1с отказами.26.1 Friday, August 27, :27:19 START TIME END TIME BLOCKS FACILITIES STORAGES NAME VALUE CHANNEL MET MET TTIME WAIT LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 ENERATE QUEUE TRANSFER MET1 4 SEIZE DEPART ADVANCE RELEASE MET2 8 TABULATE TERMINATE
28 Модель системы М/М/1 с отказами FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY CHANNEL QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY WAIT TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TTIME _ FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
29 Модель системы М/М/1 с отказами Модель М/М/1 Результаты моделирования
30 Литература Кудрявцев Е.М. 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." - К.: ІЗМН, "ВІПОЛ", с. В.Н. Томашевський "Імітаційне моделювання систем та процесів." - К.: ІСДО, "ВІПОЛ", с. (мова українська).
31 Спасибо за внимание!