Моделирование системы массового обслуживания при помощи языка имитационного моделирования GPSS, страница 2

ASSIGNquit100less,0.07 ;опытный и вероятности ухода

ASSIGN    quit300less,0.2  ;с трассы из табл1.

ASSIGN    quit300great,0.35      

ASSIGNBup_11less,0.15 

;опытный и вероятности подъема из B вверх(<11)

ASSIGNBup_10great,0.1  ;(>10)

ASSIGNAup_11less,0.8         

;опытный и вероятности подъема из А вверх(<11)

ASSIGNAup_10great,0.45 ;(>10)

ASSIGNAquit_11less,0.2 ;опытный и вероятности ухода из А(<11)

ASSIGN    Aquit_10great,0.55      ;(>10) из табл 2.

ASSIGNSimpleMean,180  

;опытный и параметры нормального распределения

ASSIGNSimpleDispers,36 ;времени спуска для простого спуска

ASSIGNHardMean,660

ASSIGNHardDispers,72   ;для сложного спуска из табл 3.

ASSIGNSimpleFall,0.15 

;опытный и вероятность падения на простом спуске

ASSIGNHardFall,0.4           

;вероятность падения на сложном спуске из табл 4.

TRANSFER  ,continue1

profiASSIGNwho,3                         ;профессионал

ASSIGNquit100less,0.1  ;профессионал и вероятности ухода

ASSIGN    quit300less,0.3  ;с трассы из табл1.              

ASSIGN    quit300great,0.45            

          ASSIGNBup_11less,0.75 

;профессионал и вероятности подъема из B вверх(<11)

ASSIGNBup_10great,0.5  ;(>10)

ASSIGNAup_11less,0.7         

;профессионал и вероятности подъема из А вверх(<11)

ASSIGNAup_10great,0.4  ;(>10)

ASSIGNAquit_11less,0.3

;профессионал и вероятности ухода из А(<11)

ASSIGN    Aquit_10great,0.6       ;(>10) из табл 2.

ASSIGNSimpleMean,90           ;профессионал и параметры нормального распределения

ASSIGNSimpleDispers,12 ;времени спуска для простого спуска

ASSIGNHardMean,360

ASSIGNHardDispers,60;для сложного спуска из табл 3.

ASSIGNSimpleFall,0.01 

;профессионал и вероятность падения на простом спуске

ASSIGNHardFall,0.15      

;вероятность падения на сложном спуске из табл 4.

*****************************************************************************                   

continue1ASSIGNdownnumber,0                      

;число пройденных спусков(от A до B и от B до C - разные спуски)

TESTGEQ$line_start,100,less100     

;если в очереди на подъемник <100 чел то на less100

TESTGQ$line_start,300,less300     

;если в очереди на подъемник 101-300 чел то на less300

TRANSFER   P$quit300great,continueA,quit                        

;если в очереди на подъемник >300 чел то уход с трассы с вероятностью quit300great

less100   TRANSFER   P$quit100less,continueA,quit    

;уход с трассы с вероятностью quit100less  

less300   TRANSFER   P$quit300less,continueA,quit    

;уход с трассы с вероятностью quit300less

quitDEPARTline_start;удаляем человека из очереди на трассе

TERMINATE             ;уход с трассы еще до посадки на подъемник

;посадка на подъемник на уровне A

spaceABSTORAGE   15                       

;считаем что все лыжники начинают с уровня А подниматься на трассу

continueAENTERspaceAB          

;на подъемнике могут одновременно находиться не более 15 чел

GATELSInDoorOpenedAB 

;если двери на подъемник открыты занимаем место на подъемнике от А до B

QUEUEelevatorAB        

;добавим лыжника в очередь на подъемник

GATELSOutDoorOpenedAB

DEPARTelevatorAB         ;освобождаем очередь на подъемник

LEAVEspaceAB            ;освобождаем место на подъемнике

;доехали до уровня B

;теперь лыжник решает куда ему ехать вниз до А или вверх на подъемнике до C

desideBTESTLP$downnumber,11,Bdownnumber_great10   

;если число пройденных спусков >10 то на Bdownnumber_great10

;если число пройденных спусков <11

TRANSFER P$Bup_11less,,continueB

;с вероятностью Bup_11less лыжник поднимается до уровня C

TRANSFER ,downB

;с вероятностью 1-Bup_11less лыжник идет на спуск

Bdownnumber_great10  TRANSFER P$Bup_10great,,continueB    

;с вероятностью Bup_10great лыжник поднимается до уровня C

TRANSFER ,downB                

;с вероятностью 1-Bup_10great лыжник идет на спуск

;спуск с уровня B

downBASSIGNdownnumber+,1

;добавляем спуск AB к количеству пройденных спусков