SLOFAST2.MOD

From Support

Jump to: navigation, search

Back to Model Library

See also: How to read .MOD pages

Contents

Description

SLOFAST2.MOD is a generalization of SLOFAST0.MOD. SLOFAST0.MOD models a system with two types of servers, while SLOFAST2.MOD models a system with many types of servers with many servers of each type. Our example will be a production department with N different types of machines of different models and ages, indexed from 0 to N-1. There may be any number of each type of machine.

If we merely added more event vertices for each type of machine, the model would become cumbersome when we simulate a system with many types of machines. However, we easily solve this problem by using vertex parameters. For example, a START vertex with parameter A will denote the start of work with a machine of age A. A LEAVE vertex with parameter A will mean that a job has been finished by a machine of age A.

State Variables

State Variables in SLOFAST2.MOD
Variable Name Abbreviation Variable Description Size Type
QUEUE Q[i] Number of jobs in line 1 Integer
SERVERS S[i] Number of idle servers of each of N types 5 Integer
N N Number of types of servers 1 Integer
A A Index of server type (A=Age) 1 Integer

Vertices

Vertices in SLOFAST2.MOD
Vertex Name Vertex Description State Changes
RUN Start of the run None
ARRIVE Arrival of a job Q=Q+1
CHECK Checking of server 0 then server 1, etc. None
START Start of service S[A]=S[A]-1, Q=Q-1
LEAVE End of service S[A]=S[A]+1

Initialization Conditions

Initialization Conditions in SLOFAST2.MOD
Variable Description
N Number of types of servers
SERVERS[i] Number of idle servers of each of N types

Event Relationship Graph

SLOFAST2.MOD
SLOFAST2.MOD

English Translation

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

The SIGMA Model, SLOFAST2.MOD, is a discrete event simulation. 
It models A SYSTEM WITH MANY SERVERS OF MANY TYPES.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
QUEUE: THE NUMBER OF JOBS WAITING IN LINE   (integer valued)
SERVER[5]: NUMBER OF IDLE SERVERS OF EACH OF N TYPES   (integer valued)
N: NUMBER OF TYPES OF SERVERS    (integer valued)
A: INDEX OF SERVER TYPE (A=AGE)   (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(N,SERVER[0],SERVER[1],SERVER[2],SERVER[3],SERVER[4]) 
   event occurs when RUN INITIALIZATION.
   Initial values for, N,SERVER[0],SERVER[1],SERVER[2],SERVER[3],SERVER[4], 
   are needed for each run.
   After every occurrence of the RUN event:
   Unconditionally, INITIATE THE FIRST JOB ARRIVAL;
   that is, schedule the ARRIV() event to occur without delay.


2. The ARRIV() event occurs when ARRIVAL OF A JOB.
   This event causes the following state change(s):
   QUEUE=QUEUE+1
   After every occurrence of the ARRIV event:
   Unconditionally, SCHEDULE THE NEXT ARRIVAL;
   that is, schedule the ARRIV() event to occur in 1*ERL{1} time units.
   (Time ties are broken by an execution priority of 6.)
   Unconditionally, schedule the CHECK(A) event to occur without delay...
   using the parameter value(s) of 0.
3. The START(A) event occurs when START OF SERVICE.
   This event causes the following state change(s):
   SERVER[A]=SERVER[A]-1
   QUEUE=QUEUE-1
   After every occurrence of the START event:
   Unconditionally, THE JOB IS PLACED IN SERVICE ;
   that is, schedule the LEAVE(A) event to occur in 5+2*A time units...
   using the parameter value(s) of A.
   (Time ties are broken by an execution priority of 6.)
4. The LEAVE(A) event occurs when END OF SERVICE.
   This event causes the following state change(s):
   SERVER[A]=SERVER[A]+1
   After every occurrence of the LEAVE event:
   If QUEUE>0, then START SERVICING THE WAITING JOB;
   that is, schedule the START(A) event to occur without delay...
   using the parameter value(s) of A.
5. The CHECK(A) event occurs when CHECKING OF SERVER 0 THEN SERVER 1, ETC.
   After every occurrence of the CHECK event:
   If SERVER[A]>0, then START SERVICE;
   that is, schedule the START(A) event to occur without delay...
   using the parameter value(s) of A.
   If SERVER[A]<=0 and A<(N-1), then schedule the CHECK(A) event to occur without delay...
   using the parameter value(s) of A+1.

Comments

Back to top

Back to Model Library

Personal tools
Navigation