From Support
Back to Model Library
- See also: How to read .MOD pages
Description
BRKDN.MOD models a system where servers periodically experience failures. An enrichment of the basic carwash model allows us to model periodic breakdowns of service by adding two vertices and expanding the definition of the status of the server to include "broken" (see Event Relationship Graph). BRKDN.MOD demonstrates a use of canceling edges.
State Variables
State Variables in BRKDN.MOD
Variable Name | Abbreviation | Variable Description | Size | Type
|
QUEUE | Q | Number of jobs in line | 1 | Integer
|
SERVERS | S | Server is available/busy/broken=1/0/-1 | 1 | Integer
|
Vertices
Vertices in BRKDN.MOD
Vertex Name | Vertex Description | State Changes
|
RUN | The simulation is started | None
|
ENTER | Arrival of a job | Q=Q+1
|
START | Start of Service | S=0, Q=Q-1
|
LEAVE | End of Service | S=1
|
FIX | Completion of repair on the machine | S=1
|
FAIL | The occurrence of a service failure | S=-1
|
Initialization Conditions
Initialization Conditions in BRKDN.MOD
Variable | Description
|
QUEUE | Initial number of customers in line
|
Event Relationship Graph
English Translation
An English translation is a verbal description of a model, automatically generated by SIGMA.
The SIGMA Model, BRKDN.MOD, is a discrete event simulation.
It models A DETERMINISTIC QUEUE (M/D/1) WITH BREAKDOWNS.
I. STATE VARIABLE DEFINITIONS.
For this simulation, the following state variables are defined:
QUEUE: THE NUMBER OF JOBS WAITING IN LINE (integer valued)
SERVER: SERVER IS AVAIL/BUSY/BROKEN=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(QUEUE) event occurs when INITIALIZATION OF THE QUEUE AND THE SERVER.
Initial values for, QUEUE, are needed for each run.
This event causes the following state change(s):
SERVER=1
After every occurrence of the RUN event:
Unconditionally, INITIATE THE FIRST JOB ARRIVAL;
that is, schedule the ENTER() event to occur without delay.
Unconditionally, SCHEDULE THE FIRST MACHINE BREAKDOWN;
that is, schedule the FAIL() event to occur in -15*LN{RND} time units.
(Time ties are broken by an execution priority of 4.)
2. The ENTER() event occurs when ARRIVAL OF A JOB.
This event causes the following state change(s):
QUEUE=QUEUE+1
After every occurrence of the ENTER event:
Unconditionally, SCHEDULE THE NEXT ARRIVAL;
that is, schedule the ENTER() event to occur in 7*ERL{1} time units.
(Time ties are broken by an execution priority of 6.)
If SERVER>0, then START SERVICE;
that is, schedule the START() event to occur without delay.
3. The START() event occurs when START OF SERVICE.
This event causes the following state change(s):
SERVER=0
QUEUE=QUEUE-1
After every occurrence of the START event:
Unconditionally, THE JOB IS PLACED IN SERVICE FOR 5 MINUTES;
that is, schedule the LEAVE() event to occur in 2 time units.
(Time ties are broken by an execution priority of 6.)
4. The LEAVE() event occurs when END OF SERVICE.
This event causes the following state change(s):
SERVER=1
After every occurrence of the LEAVE event:
If QUEUE>0, then START SERVICING THE WAITING JOB;
that is, schedule the START() event to occur without delay.
5. The FAIL() event occurs when THE OCCURRENCE OF A SERVICE FAILURE.
This event causes the following state change(s):
SERVER = -1
After every occurrence of the FAIL event:
Unconditionally, AFTER 10 MINUTES THE MACHINE WILL BE FIXED;
that is, schedule the FIX() event to occur in 30 time units.
(Time ties are broken by an execution priority of 6.)
Unconditionally, immediately cancel the next scheduled occurrence of the LEAVE event.
6. The FIX() event occurs when COMPLETION OF REPAIR ON THE MACHINE.
This event causes the following state change(s):
SERVER=1
After every occurrence of the FIX event:
Unconditionally, SCHEDULE THE NEXT MACHINE FAILURE;
that is, schedule the FAIL() event to occur in -15*LN{RND} time units.
(Time ties are broken by an execution priority of 4.)
If QUEUE>0, then schedule the START() event to occur without delay.
Comments
Back to Model Library