TWOQUEUE.MOD
From Support
- See also: How to read .MOD pages
Contents |
Description
A queuing network where customers proceed through successive service operations along a single path is called a tandem queue, for example a a serial production line with several different machining steps. Typically, the service time for one of the steps is a bit slower than the others; this is called the bottleneck. Work will tend to pile up at the bottleneck created by the slower server, and successive servers will become excessively idle. If there is limited waiting space between the servers (called a capacitated queuing system), blocking might also occur. A server becomes blocked when there is no space to unload a finished job. Both blocking and starving will degrade the performance of a tandem queue.
TWOQUES.MOD, TWOQUES1.MOD, TWOQUEUE.MOD and TANDQ.MOD model these types of systems.
In TWOQUEUE.MOD, there are two servers assigned to a constant time set-up operation followed by six workers assigned to a random time processing operation. This model is used in exercise 7.10.4 to determine optimal allocation of the eight workers.
State Variables
Variable Name | Abbreviation | Variable Description | Size | Type |
---|---|---|---|---|
QUEUE | Q[i] | Number of customers waiting at station i | 3 | Integer |
SERVERS | S[i] | Status of server (Idle,Busy,Blocked=1/0/-1) | 3 | Integer |
TA | TA | Job release interval | 1 | Integer |
Vertices
Vertex Name | Vertex Description | State Changes |
---|---|---|
RUN | Start of the run | Q[1]=1 |
ARRIVE | Arrival of a customer | TA=5*RND |
ENTR1 | Customer entering | Q[1]=Q[1]+1 |
STRT1 | Start of work at station 1 | Q[1]=Q[1]-1,S[1]=S[1]-1 |
LEAV1 | Customer finishing at station 1 | S[1]=S[1]+1 |
ENTR2 | Customer waiting in queue 2 | Q[2]=Q[2]+1 |
STRT2 | Start of work at station 2 | S[2]=S[2]-1,Q[2]=Q[2]-1 |
LEAV2 | Customer finishing at station 2 | S[2]=S[2]+1 |
CHANGE | Execute to transfer a worker from 2 to 1 | S[1]=S[1]+(S[2]>0),S[2]=S[2]-(S[2]>0) |
Initialization Conditions
Variable | Description |
---|---|
Servers[i] | Status of server (Idle,Busy,Blocked=1/0/-1) |
Event Relationship Graph
English Translation
An English translation is a verbal description of a model, automatically generated by SIGMA.
The SIGMA Model, TWOQUEUE.MOD, is a discrete event simulation. It models EXECUTING CHANGE TO TRANSFER WORKERS.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
Q[3]: NUMBER OF CUSTOMERS WAITING AT STATION J (integer valued) S[3]: STATUS OF SERVER (IDLE,BUSY,BLOCKED=1/0/-1) (integer valued) K[3]: NUMBER OF BLOCKED SERVERS IN FIRST QUEUE (integer valued) TA: JOB RELEASE INTERVAL (integer valued)
II. EVENT DEFINITIONS.
Simulation state changes are represented by event vertices (nodes or balls) in a SIGMA graph. Event vertex parameters, if any, are given in parentheses. Logical and dynamic relationships between pairs of events are represented in a SIGMA graph by edges (arrows) between event vertices. Unless otherwise stated, vertex execution priorities, to break time ties, are equal to 5.
1. The RUN(S[1],S[2]) event occurs when INITIATION OF A RUN. Initial values for, S[1],S[2], are needed for each run. This event causes the following state change(s): Q[1]=1 After every occurrence of the RUN event: Unconditionally, schedule the ARRIV() event to occur without delay.
2. The LEAV1() event occurs when CUSTOMER FINISHING AT STATION 1. This event causes the following state change(s): S[1]=S[1]+1 After every occurrence of the LEAV1 event: If 1, then THE CUSTOMER GOES TO QUEUE 2; that is, schedule the ENTR2() event to occur without delay. If Q[1]>0, then START SERVICING THE NEXT CUSTOMER IN QUEUE 1; that is, schedule the STRT1() event to occur without delay. (Time ties are broken by an execution priority of 3.)
3. The LEAV2() event occurs when CUSTOMER FINISHING AT STATION 2. This event causes the following state change(s): S[2]=S[2]+1 After every occurrence of the LEAV2 event: If Q[2]>0, then START SERVICING THE NEXT CUSTOMER IN QUEUE 2; that is, schedule the STRT2() event to occur without delay.
4. The ENTR2() event occurs when CUSTOMER WAITING IN QUEUE 2. This event causes the following state change(s): Q[2]=Q[2]+1 After every occurrence of the ENTR2 event: If S[2]>0, then SERVER 2 IS FREE, SO START WORK; that is, schedule the STRT2() event to occur without delay.
5. The ARRIV() event occurs when ARRIVAL OF A CUSTOMER. This event causes the following state change(s): TA=5*RND After every occurrence of the ARRIV event: Unconditionally, SCHEDULE THE NEXT ARRIVAL IN ABOUT 10 MINUTES; that is, schedule the ARRIV() event to occur in TA time units. (Time ties are broken by an execution priority of 3.) If 1, then THERE IS ROOM, ENTER QUEUE 1; that is, schedule the ENTR1() event to occur without delay. (Time ties are broken by an execution priority of 3.)
6. The STRT1() event occurs when START OF WORK AT STATION 1. This event causes the following state change(s): Q[1]=Q[1]-1 S[1]=S[1]-1 After every occurrence of the STRT1 event: Unconditionally, WORK FOR ABOUT 10 MINUTES AT STATION 1; that is, schedule the LEAV1() event to occur in 5 time units... using the parameter value(s) of 1. (Time ties are broken by an execution priority of 4.) If S[1]>0 and Q[1]>0 and CLK==0, then schedule the STRT1() event to occur without delay. (Time ties are broken by an execution priority of 1.)
7. The STRT2() event occurs when START OF WORK AT STATION 2. This event causes the following state change(s): S[2]=S[2]-1 Q[2]=Q[2]-1 After every occurrence of the STRT2 event: Unconditionally, WORK FOR RANDOM TIME AT STATION 2; that is, schedule the LEAV2() event to occur in 4*ERL{1} time units. (Time ties are broken by an execution priority of 6.)
8. The ENTR1() event occurs when CUSTOMER ENTERING. This event causes the following state change(s): Q[1]=Q[1]+1 After every occurrence of the ENTR1 event: If S[1]>0, then schedule the STRT1() event to occur without delay. (Time ties are broken by an execution priority of 4.)
9. The CHANGE() event occurs when EXECUTE TO TRANSFER A WORKER FROM 2 TO 1. This event causes the following state change(s): S[1]=S[1]+(S[2]>0) S[2]=S[2]-(S[2]>0) No additional events are scheduled here.