Опубликован: 15.02.2013 | Доступ: свободный | Студентов: 257 / 0 | Длительность: 16:52:00
ISBN: 978-5-9556-0146-5
Лекция 6:

Модель функционирования системы связи

Модель в GPSS World

Состав модели в GPSS World

Как уже отмечалось, система связи представляет собой многофазную многоканальную систему массового обслуживания замкнутого типа с отказами и ожиданием.

Какие ограничения в системе?

  1. Число мастеров-ремонтников в ремонтном подразделении.
  2. Максимальное число одновременно находящихся СС на дежурстве.
  3. Максимальное число резервных СС.
  4. Общее число СС в системе.

Для моделирования двух первых ограничений целесообразно использовать МКУ, а для третьего и четвертого ограничений - транзакты.

Модель системы связи должна состоять из следующих сегментов:

  • описание арифметических выражений;
  • сегмент имитации постановки на дежурство СС;
  • сегмент имитации функционирования системы дежурства СС;
  • сегмент имитации функционирования ремонтного подразделения;
  • сегмент задания времени моделирования и вычисления результатов моделирования;
  • расчет ожидаемой прибыли;
  • сегмент переопределения блоков программы - изменения версий модели.

Сегмент переопределения блоков модели необходим для изменения версий модели, т. е. изменения количества резервных СС и мастеров-ремонтников в ремонтном подразделении, а также номеров строк и столбцов матриц, в которые записываются результаты моделирования. Количество переопределений в сегменте соответствует числу версий модели минус один.

Программа GPSS-модели

Предполагается, что количество типов СС в системе предоставления услуг связи может изменяться от одного до максимального значения n2_. Программа модели, как уже омечалось при разработке AnyLogic-модели, построена для n2_=5.

Для хранения результатов моделирования используются матрицы. В целях придания неизменности программы модели при варьировании количеством типов СС матрицы должны быть пронумерованы. Однако GPSS World при описании матриц командой MATRIX не позволяет вместо имени указывать число. Матрицы нужно вначале описать, дав им имена, а затем пронумеровать.

Результаты моделирования для одного типа СС хранятся в семи матрицах, например, для СС типа 1 (СС1) с идентификаторами:

  • Prib1 - матрица ожидаемой прибыли СС1;
  • KPr1 - матрица коэффициентов прибыли СС1;
  • KZen1 - матрица коэффициентов использования СС1;
  • DoxMax1 - матрица максимальных доходов от СС1;
  • DoxDeg1 - матрица доходов от дежурства СС1;
  • ZatrRem1 - матрица затрат на ремонт СС1;
  • ZatrResSS1 - матрица затрат на резервные СС1.

Значит, аналогичных матриц будет тридцать пять. Да плюс еще матрица KRem коэффициентов использования мастеров - ремонтников. Именам этим тридцати шести матрицам даны номера.

Три матрицы для хранения суммарных результатов моделирования для СС всех типов не нумеровались:

  • Pribil - матрица суммарной прибыли;
  • SrKPrib - матрица средних коэффициентов прибыли СС всех типов;
  • SrKIsp - матрица коэффициентов использования СС всех типов.

Именам пяти МКУ СС1_, СС2_, СС3_, СС4_ и СС5_, имитирующим по типам СС, находящиеся на дежурстве, даны номера 1 … 5. Это позволяет сократить число блоков в модели за счет того, что вместо пяти (в данном варианте модели) сегментов имитации постановки на дежурство СС используется один сегмент.

Для записи исходных данных: количества СС всех типов (в том числе и резервных), среднего времени наработки на отказ и среднего времени восстановления по типам СС, дохода по типам от одного СС, находящегося на дежурстве, убытка по типам при отсутствии одного СС на дежурстве, стоимости по типам одного резервного СС используются функции KolSS, KollSSRes, NarOtk, SrVrRem, S1_, S2_, S3_ соответственно. Этот способ по сравнению со способом использования матриц для записи этих же данных позволяет сократить программу модели на двадцать пять строк.

В начале работы модели генератор сразу вырабатывает количество транзактов, равное соответствующему количеству типов СС, и перестает быть активным.

Далее блоками SAVEVALUE и ASSIGN в параметр 1 каждого из транзактов последовательно заносятся коды 1…n1_ - признак типа СС.

Затем каждый из транзактов с помощью блока SPLIT расщепляется (копируется, размножается) по количеству СС (с учетом резервных СС) соответствующего типа.

После расщепления транзакты в соответствии с типом СС сразу занимают все каналы МКУ, имитирующие нахождение СС на дежурстве. Резервные СС остаются в списках задержки соответствующих МКУ.

Вышедшее из строя СС снимается с дежурства, поступает в ремонтное подразделение - транзакт либо занимает свободный канал МКУ Rem, если такой есть, либо при отсутствии свободного канала помещается в список задержки этого МКУ - список транзактов, ожидающих возможность занять освободившиеся каналы МКУ.

После ремонта СС отправляется либо сразу на дежурство, либо в резерв. В обоих случаях транзакт направляется на метку Met1. Здесь также транзакт либо занимает свободный канал, либо помещается в список задержки МКУ, соответствующего типу СС.

Ниже приводится программа только (в целях сокращения) для моделирования случая три мастера-ремонтника, а резервных СС2 - четыре, пять и шесть.

; Модель функционирования системы связи
; Задание номеров матрицам
Prib1  EQU    1  ; Матрица ожидаемой прибыли СС1
KPr1    EQU    2  ; Матрица коэффициентов прибыли СС1
KZen1  EQU  3  ; Матрица коэффициентов использования СС1
DoxMax1  EQU    4  ; Матрица максимальных доходов СС1
DoxDeg1  EQU    5  ; Матрица доходов от дежурства СС1
ZatrRem1  EQU  6  ; Матрица затрат на ремонт СС1
ZatrResSS1 EQU  7  ; Матрица затрат на резервные СС1
Prib2  EQU    8  ; Матрица ожидаемой прибыли СС2
KPr2    EQU    9  ; Матрица коэффициентов прибыли СС2
KZen2  EQU  10  ; Матрица коэффициентов использования СС2
DoxMax2    EQU  11  ; Матрица максимальных доходов СС2
DoxDeg2    EQU  12  ; Матрица доходов от дежурства СС2
ZatrRem2  EQU  13  ; Матрица затрат на ремонт СС2
ZatrResSS2 EQU  14  ; Матрица затрат на резервные СС2
Prib3    EQU  15  ; Матрица ожидаемой прибыли СС3
KPr3      EQU  16  ; Матрица коэффициентов прибыли СС3
KZen3  EQU  17  ; Матрица коэффициентов использования СС3
DoxMax3    EQU  18  ; Матрица максимальных доходов СС3
DoxDeg3    EQU  19  ; Матрица доходов от дежурства СС3
ZatrRem3  EQU  20  ; Матрица затрат на ремонт СС3
ZatrResSS3 EQU  21  ; Матрица затрат на резервные СС3
Prib4    EQU  22  ; Матрица ожидаемой прибыли СС4
KPr4      EQU  23  ; Матрица коэффициентов прибыли СС4
KZen4  EQU  24  ; Матрица коэффициентов использования СС4
DoxMax4    EQU  25  ; Матрица максимальных доходов СС4
DoxDeg4    EQU  26  ; Матрица доходов от дежурства СС4
ZatrRem4  EQU  27  ; Матрица затрат на ремонт СС4
ZatrResSS4 EQU  28  ; Матрица затрат на резервные СС4
Prib5    EQU  29  ; Матрица ожидаемой прибыли СС5
KPr5      EQU  30  ; Матрица коэффициентов прибыли СС5
KZen5  EQU  31  ; Матрица коэффициентов использования СС5
DoxMax5    EQU  32  ; Матрица максимальных доходов СС5
DoxDeg5    EQU  33  ; Матрица доходов от дежурства СС5
ZatrRem5  EQU  34  ; Матрица затрат на ремонт СС5
ZatrResSS5 EQU  35  ; Матрица затрат на резервные СС5
KRem  EQU  36  ; Матрица коэффициентов использования Rem
; Задание номеров МКУ, имитирующих дежурство СС
CC1_      EQU  1  ; Задание номера МКУ СС1
CC2_      EQU  2  ; Задание номера МКУ СС2
CC3_      EQU  3  ; Задание номера МКУ СС3
CC4_      EQU  4  ; Задание номера МКУ СС4
CC5_      EQU  5  ; Задание номера МКУ СС5
; Задание по типам количества СС, находящихся на дежурстве
n2_      EQU  5  ; Количество типов СС
VrMod    EQU  1000  ; Время моделирования, 1 ед. мод. вр. = 1 час
KolProg    EQU  1000
Stroka    EQU  1  ; Номер строки матрицы
Stolbez    EQU  1  ; Номер столбца матрицы
Prib1    MATRIX  ,3,3  ; Матрица ожидаемой прибыли СС1
KPr1    MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС1
KZen1  MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС1
DoxMax1  MATRIX  ,3,3  ; Матрица максимальных доходов СС1
DoxDeg1  MATRIX  ,3,3  ; Матрица доходов от дежурства СС1
ZatrRem1  MATRIX  ,3,3  ; Матрица затрат на ремонт СС1
ZatrResSS1 MATRIX  ,3,3  ; Матрица затрат на резервные СС1
Prib2  MATRIX  ,3,3  ; Матрица ожидаемой прибыли СС2
KPr2    MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС2
KZen2    MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС2
DoxMax2  MATRIX  ,3,3  ; Матрица максимальных доходов СС2
DoxDeg2  MATRIX  ,3,3  ; Матрица доходов от дежурства СС2
ZatrRem2  MATRIX  ,3,3  ; Матрица затрат на ремонт СС2
ZatrResSS2 MATRIX  ,3,3  ; Матрица затрат на резервные СС2
Prib3  MATRIX  ,3,3  ; Матрица ожидаемой прибыли СС3
KPr3    MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС3
KZen3    MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС3
DoxMax3  MATRIX  ,3,3  ; Матрица максимальных доходов СС3
DoxDeg3  MATRIX  ,3,3  ; Матрица доходов от дежурства СС3
ZatrRem3  MATRIX  ,3,3  ; Матрица затрат на ремонт СС3
ZatrResSS3 MATRIX  ,3,3  ; Матрица затрат на резервные СС3
Prib4  MATRIX  ,3,3  ; Матрица ожидаемой прибыли СС4
KPr4    MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС4
KZen4    MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС4
DoxMax4  MATRIX  ,3,3  ; Матрица максимальных доходов СС4
DoxDeg4  MATRIX  ,3,3  ; Матрица доходов от дежурства СС4
ZatrRem4  MATRIX  ,3,3  ; Матрица затрат на ремонт СС4
ZatrResSS4 MATRIX  ,3,3  ; Матрица затрат на резервные СС4
Prib5  MATRIX  ,3,3  ; Матрица ожидаемой прибыли СС5
KPr5    MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС5
KZen5    MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС5
DoxMax5  MATRIX  ,3,3  ; Матрица максимальных доходов СС5
DoxDeg5  MATRIX  ,3,3  ; Матрица доходов от дежурства СС5
ZatrRem5  MATRIX  ,3,3  ; Матрица затрат на ремонт СС5
ZatrResSS5 MATRIX  ,3,3  ; Матрица затрат на резервные СС5
KRem  MATRIX  ,3,3  ; Матрица коэффициентов загрузки Rem
Pribil  MATRIX  ,3,3  ; Матрица суммарной прибыли
SrKPrib  MATRIX  ,3,3  ; Матрица коэффициентов прибыли СС всех типов
SrKIsp  MATRIX  ,3,3  ; Матрица коэффициентов загрузки СС всех типов
; Определение МКУ по количеству СС, находящихся на дежурстве
CC1_    STORAGE    55  ; Емкость МКУ по количеству СС1
CC2_    STORAGE    100  ; Емкость МКУ по количеству СС2
CC3_    STORAGE    60  ; Емкость МКУ по количеству СС3
CC4_    STORAGE    45  ; Емкость МКУ по количеству СС4
CC5_    STORAGE    60  ; Емкость МКУ по количеству СС5
Rem    STORAGE    3  ; Емкость МКУ по числу мастеров-ремонтников
; Описание арифметических выражений
DoxMax  VARIABLE  VrMod#FN$S1_#FN$KolSS
; Максимальный доход от дежурства СС
Ubitok  VARIABLE  VrMod#FN$KolSS#(1-(SR*1/1000))#FN$S2_;Убыток от отсутствия на дежурстве СС
DoxDeg  VARIABLE  (AC1-P$Nach1)#FN$S1_  ; Полученный доход от дежурства СС
StoRem  VARIABLE  (AC1-P$Nach)#FN$StoMast ; Стоимость ремонта неисправных СС
ZatrResSS VARIABLE  FN$S3_#FN$KolSSRes#VrMod; Затраты на содержание резервных СС
SumPrib  VARIABLE  X$DoxDeg-(X$ZatrRem+MX*4(Stroka,Stolbez)+V$Ubitok) ; Прибыль
KoefPr  VARIABLE  MX*6(Stroka,Stolbez)/X$DoxMax; Коэффициент прибыли
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
; Сегмент постановки на дежурство СС
  GENERATE  ,,,n2_
  SAVEVALUE  TipSS+,1  ; Код 1 ... n2_ - признак СС1  CCn2 в X$TipSS
  ASSIGN  1,X$TipSS  ; Код 1 ... n2_ - признак СС1  CCn2_ в P1
  SPLIT  (FN$KolSS+FN$KolSSRes-1)  ; Число СС + резервные СС
; Сегмент имитации  дежурства СС
Met1  ENTER  P1  ; Встать на дежурство СС типа, номер которого в Р1
  ASSIGN  Nach1,AC1  ; Время начала дежурства
  ADVANCE  (Exponential(5672,0,FN$NarOtk))  ; Имитация выхода СС из строя, номер которого в Р2
  LEAVE  P1  ; Снятие с дежурства из-за выхода из строя СС типа, номер которого в Р1
  ASSIGN  3,0
Met3  ASSIGN  3+,1  ; Начало цикла изменения типов СС
  TEST E  P1,P3,Met4  ; Р1=Р3?
  ASSIGN  4,(P1#7)  ; Р4=Р1#7 
  ASSIGN  5,(P4-2)  ; Номера матриц: 5,12,19,26,33
  MSAVEVALUE *5+,Stroka,Stolbez,V$DoxDeg
;  MSAVEVALUE Pribil+,Stroka,Stolbez,V$DoxDeg
Met4  TEST GE  P3,n2_,Met3  ; Все ли типы СС?
; Сегмент имитации работы ремонтного подразделения
  ENTER  Rem  ; Занять одного мастера
  ASSIGN  Nach,AC1  ; Время начала дежурства
  ADVANCE  (Exponential(5672,0,FN$SrVrRem))  ; Имитация ремонта
  LEAVE  Rem  ; Конец ремонта
  ASSIGN  3,0
Met5  ASSIGN  3+,1  ; Начало цикла изменения типов СС
  TEST E  P1,P3,Met6  ; Р1=Р3?
  ASSIGN  4,(P1#7)  ; Р4=Р1#7
  ASSIGN  5,(P4-1)  ; Номера матриц: 6,13,20,27,34 
  MSAVEVALUE *5+,Stroka,Stolbez,V$StoRem
;  MSAVEVALUE Pribil+,Stroka,Stolbez,V$StoRem
Met6  TEST GE  P3,n2_,Met5  ; Все ли типы СС?
  TRANSFER  ,Met1 ; Направить исправное СС на дежурство или в резерв
; Сегмент задания времени моделирования и расчета результатов
  GENERATE  VrMod
  TEST E  TG1,1,Met2
  ASSIGN  1,0
Met7  ASSIGN  1+,1  ; Начало цикла изменения типов СС
  ASSIGN  2,(P1#7)  ; Р2=Р1#7
  ASSIGN  9,(P2-2)  ; Номера матриц: 5,12,19,26,33
  SAVEVALUEDoxDeg,((MX*9(Stroka,Stolbez))/KolProg);Доход от дежурства
  MSAVEVALUE *9,Stroka,Stolbez,X$DoxDeg
  ASSIGN  3,(P2-3)  ; Номера матриц: 4,11,18,25,32
  MSAVEVALUE *3,Stroka,Stolbez,V$DoxMax; Максимально возможный доход от дежурства СС
  SAVEVALUE  DoxMax,MX*3(Stroka,Stolbez)
  ASSIGN  4,(P2-0)  ; Номера матриц: 7,14,21,28,35
  MSAVEVALUE *4,Stroka,Stolbez,V$ZatrResSS  ; Затраты на резервные СС
  ASSIGN  5,(P2-1)  ; Номера матриц: 6,13,20,27,34
  SAVEVALUE  ZatrRem,((MX*5(Stroka,Stolbez))/KolProg)
  MSAVEVALUE *5,Stroka,Stolbez,X$ZatrRem
  ASSIGN  6,(P2-6)  ; Номера матриц: 1,8,15,22,29
  MSAVEVALUE *6,Stroka,Stolbez,V$SumPrib
  ASSIGN  7,(P2-5)  ; Номера матриц: 2,9,16,23,24
  MSAVEVALUE *7,Stroka,Stolbez,V$KoefPr  
  MSAVEVALUE Pribil+,Stroka,Stolbez,
MX*6(Stroka,Stolbez)  ; Суммарная прибыль по СС всех типов
  ASSIGN  8,(P2-4)
  MSAVEVALUE SrKPrib+,Stroka,Stolbez,(MX*7(Stroka,Stolbez)/n2_)  ; Средний коэффициент прибыли по СС всех типов
  MSAVEVALUE *8,Stroka,Stolbez,(SR*1/1000)   
; Коэффициент использования CC
  MSAVEVALUE SrKIsp+,Stroka,Stolbez,(SR*1/(1000#n2_))   ; Средний коэффициент использования CC всех типов 
  TEST GE   P1,n2_,Met7  ; Все ли типы СС?
  MSAVEVALUE 31,Stroka,Stolbez,(SR$Rem/1000); Коэффициент использования Rem
  SAVEVALUE  TipSS,0
Met2  TERMINATE  1
  START  1000,NP  ; Вариант1: ССР2=4, мастеров=3
KolSSres  FUNCTION  P1,D5
1,2/2,5/3,4/4,4/5,4
Stolbez    EQU  2
  CLEAR  OFF
  START  1000,NP  ; Вариант2: ССР2=5, мастеров=3
KolSSres  FUNCTION  P1,D5
1,2/2,6/3,4/4,4/5,4
Stolbez    EQU  3
  CLEAR  OFF
  START  1000,NP  ; Вариант3: ССР2=6, мастеров=3
KolSSres  FUNCTION  P1,D5
1,2/2,4/3,4/4,4/5,4
Stroka    EQU  2
Stolbez    EQU  1
Rem  STORAGE    4   ; Емкость МКУ по числу мастеров-ремонтников
  CLEAR  OFF
  START  1000,NP  ; Вариант4: ССР2=4, мастеров=4
KolSSres  FUNCTION  P1,D5
1,2/2,5/3,4/4,4/5,4
Stolbez    EQU  2
  CLEAR  OFF
  START  1000,NP  ; Вариант5: ССР2=5, мастеров=4
KolSSres  FUNCTION  P1,D5
1,2/2,6/3,4/4,4/5,4
Stolbez  EQU  3
  CLEAR  OFF
  START  1000,NP  ; Вариант6: ССР2=6, мастеров=4
KolSSres  FUNCTION  P1,D5
1,2/2,4/3,4/4,4/5,4
Stroka    EQU  3
Stolbez    EQU  1
Rem  STORAGE    5   ; Емкость МКУ по числу мастеров-ремонтников
  CLEAR  OFF
  START  1000,NP  ; Вариант7: ССР2=4, мастеров=5
KolSSres  FUNCTION  P1,D5
1,2/2,5/3,4/4,4/5,4
Stolbez    EQU  2
  CLEAR  OFF
  START  1000,NP  ; Вариант8: ССР2=5, мастеров=5
KolSSres  FUNCTION  P1,D5
1,2/2,6/3,4/4,4/5,4
Stolbez    EQU  3
  CLEAR  OFF
  START  1000  ; Вариант9: ССР2=6, мастеров=5
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева