NOLIST.MOD

From Support

Jump to: navigation, search

Back to Model Library

See also: How to read .MOD pages

Contents

Description

By using preemptive vertex execution (edge delays equal to * to "condense" several event vertices into a single event) it is sometimes possible to run a model without scheduling events. The model, NOLIST.MOD, does this for a single server queue.

In this model, the times of the next events are computed as state changes and the simulated virtual time (normally kept by SIGMA in the variable CLK) is updated in the vertex NEXT. The simulation generated from this model runs very fast but is difficult to modify. For readers interested in the more theoretical aspects of event graph modeling, the graph for this version of a single-server queueing system is related to the geometric dual of the event graph of another model of a single server queue, CARWASH.MOD.

State Variables

State Variables in NOLIST.MOD
Variable Name Abbreviation Variable Description Size Type
QUEUE Q Size of the queue 1 Integer
SERVERS S Status of the server 0/1=busy/idle 1 Integer
TE TE Next arrival time 1 Real
TL TL Next service completion time 1 Real
IAT IAT Mean interarrival time 1 Real
MST MST Mean service time 1 Real
TIME TIME Virtual (simulated) time 1 Real
STOPTIME STOPTIME Time for the run to end 1 Real

Vertices

Vertices in NOLIST.MOD
Vertex Name Vertex Description State Changes
RUN The simulation is started TE=0,TL=10000,S=1
NEXT Execution of the next event TIME=MIN{TE;TL}
ENTER Customer arriving Q=Q+1,TE=TIME+IAT*ERL{1},TL=(TIME+MST*ERL{1})*(S==1)+TL*(S!=1),S=0
LEAVE Customer finishing service and leaving Q=Q-1,S=1,TL=(TIME+MST*ERL{1})*(Q>0)+10000*(Q==0)
STOP Stopping of the run None

Initialization Conditions

Initialization Conditions in NOLIST.MOD
Variable Description
IAT Mean interarrival time
MST Mean service time
STOPTIME Time for the run to end

Event Relationship Graph

NOLIST.MOD
NOLIST.MOD

English Translation

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

The SIGMA Model, NOLIST.MOD, is a discrete event simulation. 
It models A SINGLE SERVER QUEUE WITHOUT AN EVENT LIST.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
TE: NEXT ARRIVAL TIME  (real valued)
TL: NEXT SERVICE COMPLETION TIME  (real valued)
IAT: MEAN INTERARRIVAL TIME  (real valued)
MST: MEAN SERVICE TIME  (real valued)
Q: SIZE OF THE QUEUE  (real valued)
S: STATUS OF THE SERVER 0/1=BUSY/IDLE  (real valued)
TIME: VIRTUAL (SIMULATED) TIME  (real valued)
STOPTIME: TIME FOR THE RUN TO END  (real 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(IAT,MST,STOPTIME) event occurs when START OF THE RUN.
   Initial values for, IAT,MST,STOPTIME, are needed for each run.
   This event causes the following state change(s):
   TE=0
   TL=10000
   S=1
   After every occurrence of the RUN event:
   Unconditionally, schedule the NEXT() event to occur without delay.
2. The NEXT() event occurs when EXECUTION OF THE NEXT EVENT.
   This event causes the following state change(s):
   TIME=MIN{TE;TL}
   After every occurrence of the NEXT event:
   If TIME==TE, then NEXT EVENT IS A CUSTOMER ARRIVAL; 
   that is, immediately execute the ENTER() event.
   If TIME==TL, then NEXT EVENT IS A CUSTOMER DEPARTURE;
   that is, immediately execute the LEAVE() event.
   If TIME>=STOPTIME, then schedule the STOP() event to occur without delay.
   (Time ties are broken by an execution priority of 4.)
3. The ENTER() event occurs when CUSTOMER ARRIVING.
   This event causes the following state change(s):
   Q=Q+1
   TE=TIME+IAT*ERL{1}
   TL=(TIME+MST*ERL{1})*(S==1)+TL*(S!=1)
   S=0
   After every occurrence of the ENTER event:
   Unconditionally, schedule the NEXT() event to occur without delay.
4. The LEAVE() event occurs when CUSTOMER FINISHING SERVICE AND LEAVING.
   This event causes the following state change(s):
   Q=Q-1
   S=1
   TL=(TIME+MST*ERL{1})*(Q>0)+10000*(Q==0)
   After every occurrence of the LEAVE event:
   Unconditionally, schedule the NEXT() event to occur without delay.
5. The STOP() event occurs when STOPPING OF THE RUN.
   After every occurrence of the STOP event:
   Unconditionally, immediately cancel the next scheduled occurrence of the NEXT event.

Comments

Back to top

Back to Model Library

Personal tools
Navigation