TWOQUES1.MOD

From Support

Jump to: navigation, search

Back to Model Library

See also: How to read .MOD pages

Contents

Description

A queueing 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 queueing 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.

TWOQUES1.MOD uses the more complex technique for modeling networks of queues with limited waiting space by passing event parameters that indicate whether or not a resource is blocked. Like in TWOQUES.MOD, TWOQUES1.MOD has two types of servers, a limited amount of waiting space (buffer) for only B[1] jobs in front of the first (upstream) set of servers and waiting space for B[2] jobs in front of the second (downstream) set of servers, and it is assumed that customers who arrive when the first queue is full will simply leave.

State Variables

State Variables in TWOQUES1.MOD
Variable Name Abbreviation Variable Description Size Type
QUEUE Q[j] Number of customers waiting at station j 3 Integer
SERVER S[i] Status of server j (IDLE,BUSY,BLOCKED=1/0/-1) 3 Integer
B B Waiting space for customers at station 3 Integer

Vertices

Vertices in TWOQUES1.MOD
Vertex Name Vertex Description State Changes
RUN Initialization of the run None
ARRIVE Arrival of a customer None
ENTR1 Customer entering None
STRT1 Start of work at station 1 None
LEAV1 Customer finishing at station 1 None
ENTR2 Customer waiting in queue 2 None
STRT2 Start of work at station 2 None
LEAV2 Customer finishing at station 2 None

Initialization Conditions

Initialization Conditions in TWOQUES1.MOD
Variable Description
Server[j] Status of server at station j
B[j] Waiting space for customers at station j

Event Relationship Graph

TWOQUES1.MOD
TWOQUES1.MOD

English Translation

An English translation is a verbal description of a model, automatically generated by SIGMA.

The SIGMA Model, TWOQUES1.MOD, is a discrete event simulation. 
It models TWO TANDEM QUEUES DONE WITHOUT ANY STATE CHANGES.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
Q[3]: NUMBER OF CUSTOMERS WAITING AT STATION J   (integer valued)
B[3]: WAITING SPACE FOR CUSTOMERS AT STATION   (integer valued)
S[3]: STATUS OF SERVER (IDLE,BUSY,BLOCKED=1/0/-1)   (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],B[1],B[2]) event occurs when INITIATION OF A RUN.
   Initial values for, S[1],S[2],B[1],B[2], are needed for each run.
   After every occurrence of the RUN event:
   Unconditionally, schedule the ARRIV() event to occur without delay.
2. The LEAV1(S[1]) event occurs when CUSTOMER FINISHING AT STATION 1.
   After every occurrence of the LEAV1 event:
   If Q[2]<B[2], then THE CUSTOMER GOES TO QUEUE 2;
   that is, schedule the ENTR2(Q[2]) event to occur without delay...
   using the parameter value(s) of Q[2]+1.
   If Q[1]>0 and B[2]>Q[2], then START SERVICING THE NEXT CUSTOMER IN QUEUE 1;
   that is, schedule the STRT1(Q[1],S[1]) event to occur without delay...
   using the parameter value(s) of Q[1]-1,0.
   If Q[2]>=B[2] and S[1]!=-1, then CHANGE SERVER 1 STATUS TO BLOCKED;
   that is, schedule the LEAV1(S[1]) event to occur without delay...
   using the parameter value(s) of -1.
   (Time ties are broken by an execution priority of 1.)
3. The LEAV2(S[2]) event occurs when CUSTOMER FINISHING AT STATION 2.
   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(Q[2],S[2]) event to occur without delay...
   using the parameter value(s) of Q[2]-1,0.
   If S[1]==-1, then FREE BLOCKED SERVER 1 (IF NOT ALREADY DONE);
   that is, schedule the LEAV1(S[1]) event to occur without delay...
   using the parameter value(s) of 1.
4. The ENTR2(Q[2]) event occurs when CUSTOMER WAITING IN QUEUE 2.
   After every occurrence of the ENTR2 event:
   If S[2]>0, then SERVER 2 IS FREE, SO START WORK;
   that is, schedule the STRT2(Q[2],S[2]) event to occur without delay...
   using the parameter value(s) of Q[2]-1,0.
5. The ARRIV() event occurs when ARRIVAL OF A CUSTOMER.
   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 5*ERL{1} time units.
   (Time ties are broken by an execution priority of 6.)
   If Q[1]<B[1], then THERE IS ROOM, ENTER QUEUE 1;
   that is, schedule the ENTR1(Q[1]) event to occur without delay...
   using the parameter value(s) of Q[1]+1.
6. The STRT1(Q[1],S[1]) event occurs when START OF WORK AT STATION 1.
   After every occurrence of the STRT1 event:
   Unconditionally, WORK FOR ABOUT 10 MINUTES AT STATION 1;
   that is, schedule the LEAV1(S[1]) event to occur in 9+11*RND time units...
   using the parameter value(s) of 1. (Time ties are broken by an execution priority of 6.)
7. The STRT2(Q[2],S[2]) event occurs when START OF WORK AT STATION 2.
   After every occurrence of the STRT2 event:
   Unconditionally, WORK FOR 20 MINUTES AT STATION 2;
   that is, schedule the LEAV2(S[2]) event to occur in 18+22*RND
   time units...using the parameter value(s) of 1.
   (Time ties are broken by an execution priority of 6.)
8. The ENTR1(Q[1]) event occurs when CUSTOMER ENTERING.
   After every occurrence of the ENTR1 event:
   If S[1]>0, then schedule the STRT1(Q[1],S[1]) event to occur without delay...
   using the parameter value(s) of Q[1]-1,0.

Comments

Back to top

Back to Model Library

Personal tools
Navigation