REPLCATE.MOD

From Support

Jump to: navigation, search

Back to Model Library

See also: How to read .MOD pages

Contents

Description

REPLCATE.MOD is a variation of CARWASH.MOD that demonstrates the implementation of simultaneous parallel replications in SIGMA. Simultaneous parallel replications can be used to assess the variability of a simulation output series by running several independent replications of the same model. Parallel replication has a number of advantages, such as making the detection of initialization bias much easier.

The Event Relationship Graph for REPLCATE.MOD looks identical to that for CARWASH.MOD, with the single exception of the "do loop" for the RUN vertex. In the RUN vertex, each replication is STARTed and indexed by the value of M passed as a vertex parameter.

State Variables

State Variables in REPLCATE.MOD
Variable Name Abbreviation Variable Description Size Type
QUEUE Q[i] Number of customers in line 10 Integer
SERVERS S[i] Number of idle servers 10 Integer
M M Replication index 1 Integer
R R Total number of replications < 10 1 Integer

Vertices

Vertices in REPLCATE.MOD
Vertex Name Vertex Description State Changes
RUN Start of the run M=M+1, S[M]=1, Q[M]=5
ENTER Arrival of a customer Q[M]=Q[M]+1
START Start of service S[M]=0, Q[M]=Q[M]-1
LEAVE End of service S[M]=1

Initialization Conditions

Initialization Conditions in REPLCATE.MOD
Variable Description
R Total number of replications < 10

Event Relationship Graph

REPLCATE.MOD
REPLCATE.MOD

English Translation

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

The SIGMA Model, REPLCATE.MOD, is a discrete event simulation. 
It models SIMULTANEOUS PARALLEL REPLICATIONS.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
QUEUE[10]: THE NUMBER OF CUSTOMERS IN LINE   (integer valued)
SERVER[10]: SERVER IS AVAIL/BUSY = 1/0   (integer valued)
M: REPLICATION INDEX   (integer valued)
R: TOTAL NUMBER OF REPLICATIONS < 10   (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(R) event occurs when START OF THE RUN.
   Initial values for, R, are needed for each run.
   This event causes the following state change(s):
   M=M+1
   SERVER[M]=1
   QUEUE[M]=5
   After every occurrence of the RUN event:
   Unconditionally, INITIATE THE FIRST CUSTOMER ARRIVAL;
   that is, schedule the ENTER(M) event to occur without delay...
   using the parameter value(s) of M.
   If M<R, then START THE NEXT REPLICATION;
   that is, schedule the RUN(R) event to occur without delay...
   using the parameter value(s) of R.
   (Time ties are broken by an execution priority of 4.)
2. The ENTER(M) event occurs when ARRIVAL OF A CUSTOMER.
   This event causes the following state change(s):
   QUEUE[M]=QUEUE[M]+1
   After every occurrence of the ENTER event:
   Unconditionally, SCHEDULE THE NEXT ARRIVAL;
   that is, schedule the ENTER(M) event to occur in 4*ERL{1}
   time units...using the parameter value(s) of M.
   (Time ties are broken by an execution priority of 6.)
   If SERVER[M]>0, then START SERVICE;
   that is, schedule the START(M) event to occur without delay...
   using the parameter value(s) of M.
3. The START(M) event occurs when START OF SERVICE.
   This event causes the following state change(s):
   SERVER[M]=0
   QUEUE[M]=QUEUE[M]-1
   After every occurrence of the START event:
   Unconditionally, THE CUSTOMER IS IN SERVICE FOR 5 MINUTES;
   that is, schedule the LEAVE(M) event to occur in 5 time units...
   using the parameter value(s) of M.
   (Time ties are broken by an execution priority of 6.)
4. The LEAVE(M) event occurs when END OF SERVICE.
   This event causes the following state change(s):
   SERVER[M]=1
   After every occurrence of the LEAVE event:
   If QUEUE[M]>0, then SERVICE THE NEXT CUSTOMER IN LINE;
   that is, schedule the START(M) event to occur without delay...
   using the parameter value(s) of M.

Comments

Back to top

Back to Model Library

Personal tools
Navigation