Моделирование реальных систем массового обслуживания, страница 2

seize    section3

transfer .25,NBUYTHREE1,BUYTHREE1

BUYTHREE1 ASSIGN   sum3+,(NORMAL(1,100,30))

NBUYTHREE1 leave    SECT3

advance  900,600

release  section3

***************************************  PAYMENT          ************************************

CASH1     TEST nE    V$VARSUM,0,EXIT1

TEST LE   Q$LINE,50,LOSS1

SAVEVALUE    ONE+,P$SUM1

SAVEVALUE    TWO+,P$SUM2

SAVEVALUE    THREE+,P$SUM3

QUEUE LINE                

enter     CLERKST

DEPART    LINE

seize     CLERK

leave     CLERKST

ADVANCE   VARCASH

release   CLERK

transfer  ,EXIT1

LOSS1     SAVEVALUE    LOSS+,V$VARSUM

EXIT1     TERMINATE

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

********************************     SECOND TYPE          *********************************** 

GENERATE (POISSON(1,FN$D2))

********************************     TIME          ***********************************************

D2        FUNCTION V$VTIME,D8

0,261.8182/7200,261.8182/19800,560/25200,108/36000,360/43200,72/54000,540/61200,576/86400,10080

ASSIGN                type,2

ASSIGN                basket,0

ASSIGN                sum1,0

ASSIGN                sum2,0

ASSIGN                sum3,0

TRANSFER .6,WAY21,BSK2

BSK2      ASSIGN                basket,1

***********************************      SECTION 1          ***********************************

WAY21     TRANSFER .55,WAY22,ONE2

ONE2      transfer both,INONE2,TWO2

INONE2    enter    SECT1

seize    section1

transfer .1,NBUYONE2,BUYONE2

BUYONE2   ASSIGN   sum1+,(NORMAL(1,300,50))

NBUYONE2  leave    SECT1

advance  900,600

release  section1

***********************************      SECTION 2          ***********************************

WAY22     TRANSFER .9,WAY23,TWO2

TWO2      transfer both,INTWO2,THREE2

INTWO2    enter    SECT2

seize    section2

transfer .5,NBUYTWO2,BUYTWO2

BUYTWO2   ASSIGN  sum2+,(NORMAL(1,350,150))

NBUYTWO2  leave    SECT2

advance  900,600

release  section2

***********************************      SECTION 3          ***********************************

WAY23     TRANSFER .75,CASH2,THREE2

THREE2    transfer both,INTHREE2,CASH2

INTHREE2  enter    SECT3

seize    section3

transfer .25,NBUYTHREE2,BUYTHREE2

BUYTHREE2 ASSIGN   sum3+,(NORMAL(1,300,150))

NBUYTHREE2 leave    SECT3

advance  900,600

release  section3

***************************************  PAYMENT          ************************************

CASH2     TEST nE     V$VARSUM,0,EXIT2

TEST LE   Q$LINE,25,LOSS2

SAVEVALUE    ONE+,P$SUM1

SAVEVALUE    TWO+,P$SUM2

SAVEVALUE    THREE+,P$SUM3

QUEUE LINE                

enter     CLERKST

DEPART    LINE

seize     CLERK

leave     CLERKST

ADVANCE   VARCASH

release   CLERK

transfer  ,EXIT2

LOSS2     SAVEVALUE    LOSS+,V$VARSUM

EXIT2     TERMINATE

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

********************************     THIRD TYPE          *********************************** 

GENERATE (POISSON(2,FN$D3))

********************************     TIME           *****************************************

D3        FUNCTION V$VTIME,D8

0,139.091/7200,139.091/19800,280/25200,540/36000,180/43200,360/54000,270/61200,288/86400,504

ASSIGN                type,3

ASSIGN                basket,0

ASSIGN                sum1,0

ASSIGN                sum2,0

ASSIGN                sum3,0

TRANSFER .9,WAY31,BSK3

BSK3      ASSIGN                basket,1

***********************************      SECTION 1          ***********************************

WAY31     TRANSFER .9,WAY32,ONE3

ONE3      transfer both,INONE3,TWO3

INONE3    enter    SECT1

seize    section1

transfer .5,NBUYONE3,BUYONE3

BUYONE3   ASSIGN   sum1+,(NORMAL(1,900,200))

NBUYONE3  leave    SECT1

advance  900,600

release  section1

***********************************      SECTION 2          ***********************************

WAY32     TRANSFER .3,WAY33,TWO3

TWO3      transfer both,INTWO3,THREE3

INTWO3    enter    SECT2

seize    section2

transfer .2,NBUYTWO3,BUYTWO3

BUYTWO3   ASSIGN   sum2+,(NORMAL(1,250,50))

NBUYTWO3  leave    SECT2

advance  900,600

release  section2

***********************************      SECTION 3          ***********************************

WAY33     TRANSFER .7,CASH3,THREE3

THREE3    transfer both,INTHREE3,CASH3

INTHREE3  enter    SECT3

seize    section3

transfer .35,NBUYTHREE3,BUYTHREE3

BUYTHREE3 ASSIGN   sum3+,(NORMAL(1,400,200))

NBUYTHREE3 leave    SECT3

advance  900,600

release  section3

***************************************  PAYMENT          ************************************

CASH3     TEST nE     V$VARSUM,0,EXIT3

TEST LE   Q$LINE,10,LOSS3

SAVEVALUE    ONE+,P$SUM1

SAVEVALUE    TWO+,P$SUM2

SAVEVALUE    THREE+,P$SUM3

QUEUE LINE                

enter     CLERKST

DEPART    LINE

seize     CLERK

leave     CLERKST

ADVANCE   VARCASH

release   CLERK

LOSS3     SAVEVALUE    LOSS+,V$VARSUM

EXIT3     TERMINATE

***********************************  TIMER          ******************************************

GENERATE 2592000

TERMINATE 1

START 1