Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Программа модели. Предполагается, что количество типов СС в системе предоставления услуг связи может изменяться от одного до максимального значения n1_
Предполагается, что количество типов СС в системе предоставления услуг связи может изменяться от одного до максимального значения n1_. Программа модели построена для n1_ =5. Для хранения результатов моделирования используются матрицы. В целях придания неизменности программы модели при варьировании количеством типов СС матрицы должны быть пронумерованы. Однако GPSS World при описании матриц командой MATRIX не позволяет вместо имени указывать число. Матрицы нужно вначале описать, дав им имена, а затем пронумеровать. Результаты моделирования для одного типа СС хранятся в трех матрицах, например, для СС типа 1 (СС1) с идентификаторами:
Значит, аналогичных матриц будет пятнадцать. Да плюс еще матрица KRem коэффициентов использования мастеров - ремонтников. Именам этим шестнадцати матрицам даны номера. Три матрицы для хранения суммарных результатов моделирования для СС всех типов не нумеровались:
Именам пяти МКУ СС1_, СС2_, СС3_, СС4_ и СС5_, имитирующим по типам СС, находящиеся на дежурстве, даны номера 1 … 5. Это позволяет сократить число блоков в модели за счет того, что вместо пяти (в данном варианте модели) сегментов имитации постановки на дежурство СС используется один сегмент. Для записи исходных данных (количества СС всех типов (в том числе и резервных), среднего времени наработки до отказа и среднего времени восстановления по типам СС, дохода по типам от одного СС, находящегося на дежурстве, убытка по типам при отсутствии одного СС на дежурстве, стоимости по типам одного резервного СС) используются функции KolSS, KollSSRes, NarOtk, SrVrRem, S1_, S2_, S3_ соответственно. По сравнению с использованием матриц для записи этих же данных программа модели сокращается на двадцать пять строк. В начале работы модели генератор сразу вырабатывает количество транзактов, равное соответствующему количеству типов СС, и перестает быть активным. Далее блоками SAVEVALUE и ASSIGN в параметр 1 каждого из транзактов последовательно заносятся коды 1… n1_ - признак типа СС. Затем каждый из транзактов с помощью блока SPLIT расщепляется (копируется, размножается) по количеству СС (с учетом резервных) соответствующего типа. После расщепления транзакты в соответствии с типом СС сразу занимают все каналы МКУ, имитирующие нахождение СС на дежурстве. Вышедшее из строя СС снимается с дежурства, поступает в ремонтное подразделение - транзакт либо занимает свободный канал МКУ Rem, если такой есть, либо при отсутствии свободного канала помещается в список задержки этого МКУ - список тран-зактов, ожидающих возможность занять освободившиеся каналы МКУ. После ремонта СС отправляется либо сразу на дежурство, либо в резерв. В обоих случаях транзакт направляется на метку Met1. Здесь также транзакт либо занимает свободный канал, либо помещается в список задержки МКУ, соответствующего типу СС. Ниже приводится программа только (в целях сокращения) для моделирования случая три мастера-ремонтника, а резервных СС2 - четыре, пять и шесть. Количество типов СС - n1_ = 4. ; Модель бизнес-процесса ; Задание номеров матрицам Prib1 EQU 1; Матрица ожидаемой прибыли СС1 KPr1 EQU 2; Матрица коэффициентов прибыли СС1 KZen1 EQU 3; Матрица коэффициентов использования СС1 Prib2 EQU 4; Матрица ожидаемой прибыли СС2 KPr2 EQU 5; Матрица коэффициентов прибыли СС2 KZen2 EQU 6; Матрица коэффициентов использования СС2 Prib3 EQU 7; Матрица ожидаемой прибыли СС3 KPr3 EQU 8; Матрица коэффициентов прибыли СС3 KZen3 EQU 9; Матрица коэффициентов использования СС3 Prib4 EQU 10; Матрица ожидаемой прибыли СС4 KPr4 EQU 11; Матрица коэффициентов прибыли СС4 KZen4 EQU 12; Матрица коэффициентов использования СС4 Prib5 EQU 13; Матрица ожидаемой прибыли СС5 KPr5 EQU 14; Матрица коэффициентов прибыли СС5 KZen5 EQU 15; Матрица коэффициентов использования СС5 KRem EQU 16; Матрица коэффициентов использования Rem ; Задание номеров МКУ, имитирующих дежурство СС CC1_ EQU 1; Задание номера МКУ СС1 CC2_ EQU 2; Задание номера МКУ СС2 CC3_ EQU 3; Задание номера МКУ СС3 CC4_ EQU 4; Задание номера МКУ СС4 CC5_ EQU 5; Задание номера МКУ СС5 ; Задание матриц Prib1 MATRIX,3,5; Матрица ожидаемой прибыли СС1 KPr1 MATRIX,3,5; Матрица коэффициентов прибыли СС1 KZen1 MATRIX,3,5; Матрица коэффициентов загрузки СС1 Prib2 MATRIX,3,5; Матрица ожидаемой прибыли СС2 KPr2 MATRIX,3,5; Матрица коэффициентов прибыли СС2 KZen2 MATRIX,3,5; Матрица коэффициентов загрузки СС2 Prib3 MATRIX,3,5; Матрица ожидаемой прибыли СС3 KPr3 MATRIX,3,5; Матрица коэффициентов прибыли СС3 KZen3 MATRIX,3,5; Матрица коэффициентов загрузки СС3 Prib4 MATRIX,3,5; Матрица ожидаемой прибыли СС4 KPr4 MATRIX,3,5; Матрица коэффициентов прибыли СС4 KZen4 MATRIX,3,5; Матрица коэффициентов загрузки СС4 Prib5 MATRIX,3,5; Матрица ожидаемой прибыли СС5 KPr5 MATRIX,3,5; Матрица коэффициентов прибыли СС5 KZen5 MATRIX,3,5; Матрица коэффициентов загрузки СС5 KRem MATRIX,3,5; Матрица коэффициентов загрузки Rem Pribil MATRIX,3,5; Матрица суммарной прибыли SrKPrib MATRIX,3,5; Матрица коэффициентов прибыли СС всех типов SrKIsp MATRIX,3,5; Матрица коэффициентов загрузки СС всех типов KolSS MATRIX,2,5; Матрица количества СС всех типов NarOtk MATRIX,1,5; Матрица среднего времени наработки до отказа по типам СС, час SrVrRem MATRIX,1,5; Матрица среднего ремонта по типам СС, час ; Определение МКУ по числу СС, находящихся на дежурстве CC1_ STORAGE 35; Емкость МКУ по количеству СС1 CC2_ STORAGE 100; Емкость МКУ по количеству СС2 CC3_ STORAGE 60; Емкость МКУ по количеству СС3 CC4_ STORAGE 45; Емкость МКУ по количеству СС4 CC5_ STORAGE 60; Емкость МКУ по количеству СС5 Rem STORAGE 3; Емкость МКУ по числу мастеров-ремонтников ; Исходные данные VrMod EQU 200; Время моделирования, 1 ед. мод. вр. = 1 час Stroka EQU 1; Номер строки матрицы Stolbez EQU 1; Номер столбца матрицы n1_ EQU 5; Количество типов СС StoMast FUNCTION P1,D5; Стоимость работы одного мастера 1,17/2,18/3,16/4,20/5,21 KolSS FUNCTION P1,D5; Количество по типам СС, находящихся на дежурстве 1,55/2,100/3,60/4,45/5,60 KolSSRes FUNCTION P1,D5; Количество по типам резервных СС 1,2/2,4/3,4/4,3/5,4 NarOtk FUNCTION P1,D5; Среднее время наработки до отказа по типам СС, час 1,373/2,301/3,482/4,325/5,470 SrVrRem FUNCTION P1,D5; Среднее время ремонта по типам СС 1,6.5/2,4.2/3,2.8/4,3/5, 5.5 S1_ FUNCTION P1,D5; Доход по типам от одного СС, находящегося на дежурстве 1,20/2,24.2/3,32.8/4,23/5, 25.5 S2_ FUNCTION P1,D5; Убыток по типам при отсутствии одного СС на дежурстве 1,32/2,34.2/3,37/4,31/5,32.5 S3_ FUNCTION P1,D5; Стоимость по типам содержания одного резервного СС 1,21/2,24.2/3,28/4,26/5, 25.5 ; Арифметические выражения для расчета показателей DoxMax VARIABLE VrMod#FN$S1_#FN$KolSS; Максимальный доход от дежурства СС Ubitok VARIABLE VrMod#FN$KolSS#(1-SR*1/1000)#FN$S2_; Убыток от отсутствия на дежурстве СС DoxPol VARIABLE X$DoxMax-X$Ubitok; Полученный доход от дежурства СС StoRem VARIABLE (VrMod#SM$Rem#FN$StoMast)#(SR$Rem/1000); Стоимость ремонта неисправных СС ZatrResSS VARIABLE FN$S3_#FN$KolSSRes#VrMod; Затраты на содержание резервных СС SumPrib VARIABLE X$DoxPol-(X$StoRem+X$ZatrResSS); Прибыль KoefPr VARIABLE MX*3(Stroka,Stolbez)/X$DoxMax; Коэффициент прибыли ; Сегмент имитации постановки на дежурство СС GENERATE,,,n1_ SAVEVALUE TipSS+,1; Код 1... n2_ - признак СС1... CCn1 в X$TipSS ASSIGN 1,X$TipSS; Код 1... n2_ - признак СС1...CCn2_ в P1 SPLIT (FN$KolSS+FN$KolSSRes-1); Число СС + резервные СС ; Сегмент имитации дежурства СС Met1 ENTER P1; Встать на дежурство СС типа с номером в Р1 ADVANCE (Exponential(30,0,FN$NarOtk)); Имитация выхода из строя СС LEAVE P1; Снятие с дежурства из-за выхода из строя СС типа, номер которого в Р1 ; Сегмент имитации работы ремонтного подразделения ENTER Rem; Занять одного мастера ADVANCE (Exponential(31,0,FN$SrVrRem)); Имитация ремонта LEAVE Rem; Конец ремонта TRANSFER,Met1; Направить исправное СС на дежурство или в резерв ; Сегмент задания времени моделирования и расчета результатов GENERATE VrMod TEST E TG1,1,Met2 Met23 ASSIGN 1+,1; Начало цикла изменения типов СС SAVEVALUE DoxMax,V$DoxMax; Максимально возможный доход от дежурства СС SAVEVALUE Ubitok,V$Ubitok; Убыток SAVEVALUE DoxPol,V$DoxPol; Полученный доход от дежурства СС SAVEVALUE StoRem,V$StoRem; Затраты на ремонт SAVEVALUE ZatrResSS,V$ZatrResSS; Затраты на резервные СС SAVEVALUE SumPrib,V$SumPrib; Суммарная прибыль ASSIGN 2,(P1#3) ASSIGN 3,(P2-2) MSAVEVALUE *3,Stroka,Stolbez,X$SumPrib; Прибыль по типу СС MSAVEVALUE Pribil+,Stroka,Stolbez,X$SumPrib; Суммарная прибыль по СС всех типов ASSIGN 4,V$KoefPr; Коэфициент прибыли по типам СС в Р4 ASSIGN 3,(P2-1) MSAVEVALUE *3,Stroka,Stolbez,P4; Коэфициент прибыли по типам СС MSAVEVALUE SrKPrib+,Stroka,Stolbez,(P4/n1_); Средний коэффициент прибыли по СС всех типов MSAVEVALUE *2,Stroka,Stolbez,(SR*1/1000); Коэффициент использования CC MSAVEVALUE SrKIsp+,Stroka,Stolbez,(SR*1/(1000#n1_)) ; Средний коэффициент использования CC всех типов TEST GE P1,n1_,Met23 MSAVEVALUE 16,Stroka,Stolbez,(SR$Rem/1000); Коэффициент использования Rem SAVEVALUE TipSS,0 Met2 TERMINATE 1 START 1000,NP; Недели 1-5: Резервных СС2=4, мастеров=3 ; Сегмент переопределения блоков - изменения версий модели Stolbez EQU 2 RESET START 1000,NP; Недели 6-10: Резервных СС2=4, масте-ров=3 Stolbez EQU 3 RESET START 1000,NP; Недели 11-15: Резервных СС2=4, мас-теров=3 Stolbez EQU 4 RESET START 1000,NP; Недели 16-20: Резервных СС2=4, мас-теров=3 Stolbez EQU 5 RESET START 1000,NP; Недели 21-25: Резервных СС2=4, мас-теров=3 KolSSRes FUNCTION P1,D5; Количество резервных СС2 1,2/2,5/3,4/4,4/5,4 Stroka EQU 2 Stolbez EQU 1 RESET START 1000,NP; Недели 1-5: Резервных СС2=5, мастеров=3 Stolbez EQU 2 RESET START 1000,NP; Недели 6-10: Резервных СС2=5, мастеров=3 Stolbez EQU 3 RESET START 1000,NP; Недели 11-15: Резервных СС2=5, мастеров=3 Stolbez EQU 4 RESET START 1000,NP; Недели 16-20: Резервных СС2=5, мастеров=3 Stolbez EQU 5 RESET START 1000,NP; Недели 21-25: Резервных СС2=5, мастеров=3 KolSSRes FUNCTION P1,D5; Количество резервных СС2 1,2/2,6/3,4/4,5/5,4 Stroka EQU 3 Stolbez EQU 1 RESET START 1000,NP; Недели 1-5: Резервных СС2=6, мастеров=3 Stolbez EQU 2 RESET START 1000,NP; Недели 6-10: Резервных СС2=6, мастеров=3 Stolbez EQU 3 RESET START 1000,NP; Недели 11-15: Резервных СС2=6, мастеров=3 Stolbez EQU 4 RESET START 1000,NP; Недели 16-20: Резервных СС2=6, мастеров=3 Stolbez EQU 5 RESET START 1000; Недели 21-25: Резервных СС2=6, мастеров=3 В программе, кроме методов применения матриц и функций, показывается метод изменения версий модели. Изменение версий модели производится переопределением соответствующих блоков. Переопределяться не могут блоки GENERATE. Для переопределения блоков, описывающих ОКУ и МКУ, они должны иметь метки. Однако одного переопределения блоков недостаточно. В GPSS World изменение версий модели достигается также за счет использования команд RESET и CLEAR. В рассматриваемом примере в процессе моделирования необходимо собирать статистику по отрезкам времени \Delta T. То есть предшествующую статистику нужно сбросить, но оставить неизменными условия функционирования системы. Сброс в ноль статистики без удаления транзактов из процесса моделирования осуществляет команда RESET. Команда RESET не имеет операндов: RESET Команда также не сбрасывает генераторы случайных чисел, ячейки и матрицы ячеек, не влияет на абсолютное модельное время и нумерацию транзактов. Относительное модельное время (после последней команды RESET) устанавливается равным нулю. Таким образом, с помощью команды RESET обеспечивается удобное средство сбора статистических данных в типичных условиях функционирования систем. После того как для данной версии модели выполнено моделирование в течение заданного числа отрезков времени \Delta T (в примере - пять), нужно изменить версию модели и провести моделирование сначала. Изменение версии в данной модели производится переопределением функции KolSSRes, т. е. изменением количества резервных СС2, например: KolSSRes FUNCTION P1,D5; Количество резервных СС2 1,2/2,5/3,4/4,4/5,4 Процесс моделирования в исходное состояние возвращает команда CLEAR. Формат записи команды: CLEAR [A] Операнд А может быть ON либо OFF. По умолчанию - ON. Команда CLEAR сбрасывает всю накопленные статистические данные, удаляет все транзакты из процесса моделирования и заполняет все блоки GENERATE первым транзактом. ОКУ и МКУ становятся доступными, устанавливаются в незанятое состояние. Содержимое всех блоков становится нулевым. Генераторы случайных чисел не сбрасываются. Если в команде CLEAR операнд А равен OFF, то сохраняемые ячейки, матрицы и логические ключи остаются без изменений. Поэтому в модели в команде CLEAR используется операнд А, равный OFF, так как нужно сохранить результаты моделирования для предыдущей версии модели. Однако при этом нужно иметь в виду те ячейки, начальные значения которых должны быть нулевыми в новой версии модели. Необходимо предусмотреть в программе блоки приведения таких ячеек в исходное состояние. В данной модели это показано на примере сохраняемой ячейки TipSS. Если эту ячейку не привести в нулевое состояние, процесс моделирования второй версии будет остановлен по ошибке "Обращение к несуществующей памяти". Поскольку накопленные и сохраненные в матрицах результаты моделирования нет необходимости выводить на каждом отрезке \Delta T, то в команде START используется операнд B, равный ON. В последней команде START операнд B не используется. Поэтому стандартный отчет выдается после завершения моделирования. В рассматриваемом примере - после пятнадцати наблюдений. Ниже показан фрагмент журнала с информацией о ходе моделирования. В первых пяти наблюдениях (первой версии модели) команда RESET не влияет на абсолютное модельное время, которое растет от 0 до 1 000 000 единиц модельного времени. После переопределения (формирования второй версии модели) выполняется команда CLEAR и абсолютное модельное время вновь изменяется от 0 до 1 000 000 единиц модельного времени. 06/05/08 17:29:10 Model Translation Begun. 06/05/08 17:29:10 Ready. 06/05/08 17:29:10 Simulation in Progress. 06/05/08 17:29:15 The Simulation has ended. Clock is 200000.000000. 06/05/08 17:29:15 Simulation in Progress. 06/05/08 17:29:19 The Simulation has ended. Clock is 400000.000000. 06/05/08 17:29:19 Simulation in Progress. 06/05/08 17:29:24 The Simulation has ended. Clock is 600000.000000. 06/05/08 17:29:24 Simulation in Progress. 06/05/08 17:29:28 The Simulation has ended. Clock is 800000.000000. 06/05/08 17:29:28 Simulation in Progress. 06/05/08 17:29:32 The Simulation has ended. Clock is 1000000.000000. 06/05/08 17:29:33 Simulation in Progress. 06/05/08 17:29:37 The Simulation has ended. Clock is 200000.000000. 06/05/08 17:29:37 Simulation in Progress. 06/05/08 17:29:41 The Simulation has ended. Clock is 400000.000000. 06/05/08 17:29:41 Simulation in Progress. … 06/05/08 17:30:17 Reporting in Rem_SS_2.59.1 - REPORT Window. Для включения в формируемый стандартный отчет матриц необходимо при открытом объекте "Модель" выполнить команду: Edit/Settings/Reports/Matrices/Применить/Ok Результаты моделирования после 1000 прогонов приведены ниже. Но опять же в целях сокращения - для СС1 и СС всех типов.
Date: 2015-07-17; view: 421; Нарушение авторских прав |