System Simulation

System Simulation
By 陳琨太
Email: [email protected]
分機: 4727
Office Hours: 四 1:00~5:00
Web page: http://www.iem.mit.edu.tw/~kuentai/
Textbook: W. David Kelton, Randall P. Sadowski , Deborah A.
Sadowski, “Simulation With Arena”, Second Edition, McGRAW-HILL.
Singapore 2002
參考教材: Harrell . Tumay 著; 簡聰海 鄒靖寧 編譯, “糸統模擬
Simulation made easy”,高立圖書 87 年 初版,ISBN:957-584-594-3
Grade: 作業及平時 40%,期末報告 25%,期末考 35%
Introduction
Computer Simulation: The techniques for using computers to imitate, or simulate, the
operations of various kinds of real-world facilities or processes.
Components:
a) System: A collection of entities that act and interact together toward the
accomplishment of some logical end.
b) Model: The mathematical or logical description about how the system works.
c) Simulation: We use a computer to evaluate a model numerically, and data are
gathered in order to estimate the characteristics of the model.
Applications: [For Example]

Designing and analyzing manufacturing systems.

Evaluating hardware and software requirements for a computer.

Evaluating a new military weapons system or tactic.

Determining ordering policies for an inventory system.

Designing communications systems and message protocols for them.

Designing and operating transportation systems such as freeways, airports, subways and
ports.

Evaluation designs for service organizations such as hospitals, post offices, or fast-food
restaurants.

Analyzing financial or economic systems.
Objectives:

Describing the behavior of the system

Developing theories or hypotheses for the system

Predicting future system behavior

Designing new or improved systems

Answering what-if questions
2
System:
System
Actual
System
A model of the
system
Mfg system
Physical
Bank
Model
Hospital
Miniature models
etc.
Wind tunnels
Flight simulator
etc.
Mathematical
Model
Simulation
Numerical estimation
Analytical
Solutions
Queueing networks
Differential Eqs
Markov Chains
Theoretical solution
(optimum)
Model:



Static vs. Dynamic Models
Deterministic vs. Stochastic Models
Continuous vs. Discrete Models
Discrete Event Simulation:
The modeling of a system as it evolves over time by a representation in which the state variables
change instantaneously at separate points in time.









Simulation Clock: time-advance mechanisms < next – event
Fixed time increment
System state: a set of state variables to describe the system at a particular time
Event list: a list of future events
Initialization Routine: a subprogram to initialize the system
Timing Routine: Determine the next event from event list. Advance simulation clock.
Event Routines: A set of subprograms that update the system state.
Statistical Counters: A collection of variables used for storing statistical information
about the system performance.
Event generation routines: A set of subprograms to randomly generate future events from
the prescribed probability distributions
Report Generator
3
4
System Modeling
1. Define your objectives
 Evaluation, prediction, design, ?
 Improvement, determine operation bottleneck, optimization?
 Sensitivity analysis or comparing two system setups.
2. Determine Issues of Interest
a) Hardware Design Issues
 Numbers and types of machines
 Number, type, and physical arrangement of MHS
 Location and size of inventory buffers and storages
 Effect of a new piece of equipment on an existing line
b) Operational Issues
 Manpower Requirements
 Effect of different product mix
 Different scheduling policies
 Preventive maintenance and repairments
3. Required DATA (Information)
Examples:
 Cycle Time
 Queue time
 Work-In-process (WIP)
 Utilization – machines, server, etc.
____
____
____
____
minimize
minimize
minimize
maximize
4. Collect Information
 Documentation
 Interviews
 Observation and Measurement
 Participation
5. Define the scope of the Simulation Model
 Complexity
 Realism
 “KISS” principle
5
6. Keep it small and simple
 Simplification
 Reduction
 Partitioning
 Omission
 Aggregration
 Substitution
 Impact of the simplification
7. Source of input data
 Observance and Measurement
 Historical data
 Summary statistics – survey or experience
 Guesses – experience, theoretical results, or assumption
 Similar systems
8. If no data is available
 New system or new design
 No way to gather the data
 Collect meaningful data set requires too much time, cost, effort
Cures:
1.
2.
3.
4.
Operator or designer’s estimates
Vendor claim
Theoretical consideration
Assumptions
1. Mean Value only
- exponeutial distribution
 High variability
 Memoryless property
- Poisson distribution
- Constant
- Trangular Distribution
- Uniform distribution
2. Range only (largest and smallest values)
- Uniform distribution
- Normal distribution
- Triangular distribution
3. Range and Most likely value
- Triangular
- Gamma
- Beta
[0.1]
- Weibull
- Normal
6
Data available from a reliable source
1. Empirical distribution
Use the observed data only to generate test input
2. Theoretical distribution
 Organize your data
a. Histogram (frequency)
b. Mean, median, most likely value
c. Variance, largest and smallest number
d. Classify your data
e. Select theoretical distribution
 Continuous distribution
 Discrete distribution
f. parameter estimation
 Goodness–of-fit test
 Kolmogorov-Smirnor
 Maximum-likelihood estimators
 Frequency comparisons
 Probability plot
Modeling using SIMAN
1. Model – describe the system and its components
2. Experiment – how want to run the simulation (run length, initial condition, etc.)
System



Entities
Attributes
Processes
System
Computer
Entity
Programs
Attributes
CPU time
I/Ф
Hardware
Memory
Hard Drive capacity
Speed
Bank
Customers
Type (service)
Account
Amount
Hospital
Patients
Ailment
Process: The sequence of operations or activities through which the entities move.
7
Block Diagrams : a flow graph depicting the process through which the entities in the system
move.
10 basic block types:
OPERATION
HOLD
HOLD
QUEUE
BRANCH
PICKQ
TRANSFER
SELECT
MATCH
STATION
8
Over 40 distinct process modeling functions


Block function name
Block operands – constants, variables, attributes, random variables, expression and
conditions
 Block sequence number
 Block labels
 Block comments
Set of changeable values, such as
 Block modifiers
TNOW,
Array can be used for grouping
 Entity flow between block
variables into an array of vales
Sample Problem
Single workstation queueing problem




One workstation
Eight-hour shift during weekday and shut down over the weekend
No arrivals for off-shift or weekend hours
Study period – week
Objectives (for example)





Average weekly production rate
Machine utilization
Average time a workpiece spends in the system
Maximum time that a workpiece spends waiting to begin being processed
Average number of workpieces waiting to begin being processed
Description of the processes
1.
2.
3.
4.
5.
6.
A workpiece enters the system
Wait in line for the machine to become idle
Take possession of the machine
Keep the machine for the time required to set up and machine the workpiece
Release the machine for the next waiting entity, if any
Increase the count of completed workpieces and depart the system
9
1. A workpiece enters the system (ARRIVAL)
Block:
CREATE, Batch Size, Offset
Interval, Max Batches
SYNTAX: CREATE, Batch size, offset: Interval, MaxBatches;
Ex. 1
CREATE
EXP (30)
 CREATE, 1, 0: EXP (30), 
Z

^
^
Batch size Offset Interval Max batches
Ex. 2
CREATE, NORM (10, 2)
EXP (30), 100
CREATE, 1, NORM (10,2): EXP (30), 100
2. Wait in line for the machine to become idle.
3. Take possession of the machine (QUEUE & HOLD)
BLOCK:
QUEUE, QID,
Capacity
Balklabel
SEIZE, Pr
ResName, QTY
SYNTAX: QUEUE, QueueID, Capacity, Balklabel:
SEIZE, Pr : ResName, Qty:
10
Queue #1
EX 1.
QUEUE, 1, 

QUEUE, 1
, -;
capacity
QUEUE, Buffer, Length

QUEUE, Buffer, Length
Queue Capacity
is a variable called
"Length"
QueueName
= "Buffer"
QUEUE, NoSpace,


QUEUE, NoSpace,
Queue Name
"NoSpace"

, Quit;
No
Capacity
Quit the
system if
someone is using
the machine
Ex 2.
QUEUE, Buffer, 10
Retry
SEIZE
Machine, 1
Worker, 2
4. Keep the machine for required processing time (DELAY)
BLOCK:
SYNTAX:
DELAY:
DELAY
Duration, Stor ID
Duration, Stor ID:
11
Ex.
DELAY
variable

variable
DELAY: setup + Process
delay
setup time + process time
Setup + Process
D
E

L
A
Y
:N
O
R
M
(
1
 DELAY: NORM (10, 4) 2
DELAY
s
e
r
v
i
c
e
t
i
m
e
i
s
a
n
o
r
m
a
lD
i
s
t
.
m
e
a
n
=
1
0
V
a
r
i
a
n
c
e
=
4
NORM (10, 4), 2
D
u
r
i
n
g
t
h
e
o
p
e
r
a
t
i
o
n
t
h
e
p
a
r
ts
t
a
y
s
i
n
F
a
c
i
l
i
t
y
#
2
5. Release the machine for next waiting workpiece, if any.
(RELEASE)
BLOCK:
RELEASE
ResName, Qty
SYNTAX:
RELEASE:
ResName, Qty
Ex.
RELEASE
Doctor, 1
RELEASE: Doctor, 1 : Nurse, 2
Nurse, 2
6. Increase the count of completed workpiece and depart the system
(COUNT)
COUNT
Counter ID, Increment
Syntax:
Count: Counter ID, Increment
12
Ex.
COUNT
JobDone
COUNT:
JobDone, 1;
Counter
name
increase
by 1
Variable
COUNT: 7, Batchsize;
COUNT
JobDone
increase
counter #7
by the
BatchSize
SETUP EXPERIMENT ELEMENTS:
1. PROJECT, Title, Analyst, Date
Ex. PROJECT, Example 1, JOHN, 08/31/94
2. Limiting the Number of Entities
DISCRETE, Entities
Ex. DISCRETE, 100;
3. Describe the Queues:
QUEUES: Number, Name, Ranking
Name at
least one
Ex.
FIFO
LIFO
LVFC (Attribute ID)
HVF (Attribute ID)
QUEUES: Buffer;
13
4. Describe the Resources:
RESOURCES: Number, Name, Capacity;
Ex.
RESOURCES: Machine, 1;
5. Define the Counters
COUNTERS: Number, Name, Limit, InitOpt, OutFile;
Ex.
COUTNTER: JobsDone:
Rejects, 20, No, “c:\rejects.dat”;
6. Control replications:
REPLICATE: NumReps, BeginTime, Length, InitSys, InitStats, WarmUp;
Ex. REPLICATE: 10, 0, 480, yes, yes, no;

The final Element File (*.exp):
BEGIN;
PROJECT, Example 1, John, 08/31/01;
DISCRETE, 200;
QUEUES: Buffer;
RESOURCES: Manchine, 1;
COUNTERS: JobDone;
REPLICATRE: 10, 0, 480;
END;
14
Another Example with Some Tweaks: Two Job Types and a second Workstation
Reject
10 %
Rework 10%
Arrival
s
Machine
Inspection
Shipping 80%
Queue #1
•
Queue #2
Two Job Types (1 and 2)
The inter-arrival time is exponentially distributed ~ expo(9)
30% of arrivals are Type 1 jobs – Priority =1
70% of arrivals are Type 2 jobs – Priority =2
•
Two Workstations: (Machine and Inspection)
Machine: Type 1 jobs have first priority
Processing Times: (Normal Distribution)
15
Machine Center
Processing Times follows Normal Distribution:
Mean
Type 1
Type 2
5.0 min
4.0 min
Standard Deviation
2.0 min
1.0 min
Inspection Center
Processing time follows Triangular Distribution
Serve based on Priority
Minimum possible inspecting time: 5 (min)
Most likely inspecting time: 8 (min)
Maximum possible inspecting time: 10 min
80% are good products  Shipping
10% are scraps  Rejection
10% need rework  machine with priority=3
Rework Parts
Rework Parts have the lowest priority (3), same for both type 1 and type 2
Processing Times at Machine Center follow Normal dist.
Mean
Type 1
Type 2
3.0 min
2.0 min
Standard Deviation
1.0 min
1.0 min
Simulation Requirements
Simulation time 480 min.
Count job finished for each type
Calculate average time a part spent in the system
Describe the processes
1. Create an Arrival ~ expo(9).
2. Assign JobType=1 or 2 (30% / 70%);
Assign Status =1 (ie. Regular part, not rework);
Assign Priority = JobType.
3. Waiting according to Priority for the machine to be idle.
17
4. Take possession of the machine.
5. Keep the machine for the time required to set-up and machining the job.
6. Release the machine for the next waiting job, if any
7. Waiting according to Priority for the inspector to be idle.
8. Take possession of the inspector.
9. Keep the inspector for the time required to inspect the part.
10. Release the inspector for the next waiting job, if any.
11. Branch with the following outcomes:
80% good parts (go to step 12)
10% rejected parts (go to step 13)
10% rework parts (go to step 14)
12. Count completed jobs by JobType and depart from the system.
13. Count the rejected parts and depart from the system.
14. Assign Status = 2 (i.e. Rework Part)
Assign Priority = 3
and Go To Step 3.
Attributes
Characteristic attributes, that are attached to and move with each
Special-purpose attributes: Pre-defined meaning with SIMAN
entity
e.g.
M: Entity Current Station
NS: Sequence #
IS: Step #
General-purpose attributes: defined by users e.g. A(I)
Syntax: ATTRIBUTES: AttNo., AttName(Index), InitValue;
E.g. ATTRIBUTES: JobType, 1: Priority, 1: Status, 0;
Variables
The set of changeable values characterizing the state or the components of the
system.
Special-purpose variables: pre-defined by SIMAN (e.g. TNOW).
General-purpose variables: defined by users (e.g. V(I)).
Syntax :
VARIABLES: VarNo, VarName(Index), InitValue;
E.g. VARIABLES:
1, Reorder Point:
2-11,StockLevel(10);
VARIABLES: Matrix(-3..6, 10);
VARIABLES: Mean(2, 2), 5,4,3,2;
VARIABLES: std(2, 2), 2, 1, 1, 1;
18
Assign Values to Variables or Attributes:
ASSIGN
Block:
VarName =value
Syntax: ASSIGN: Variable = Value: repeats;
Ex.
ASSIGN:
JobType = Discrete(.3, 1, 1.0, 2):
Status = 1:
Priority = JobType;
Sample from a User-Defined Probability Distribution
Syntax: DISCRETE: (CumP1, Value1, CumP2, Value2, …);
Ex. DISCRETE(0.3, 1, 1.0, 2);
F(X)
f(X)
1.0
0.7
0.3
0.3
1
2
X
1
2
19
X
Branch the flow of Entities in the System
In
Step 11,
80% good parts (go to Shipping)
10% rejected parts (go to rejection)
10% rework parts (go to machine center)

Block:
BRANCH,
MaxTake
WITH,
Prob.
IF,
Cond.
ELSE
E
ALWAY
S
Syntax: BRANCH, MaxTake:
WITH prob., Lable:
IF, Cond., Label:
ELSE, Label
ALWAYS, label;
Sample Branches
In Our Example Problem
BRANCH, 1
WITH, 0.8
Shipping
WITH, 0.1
Reject
WITH, 0.1
Machinin
g
20
To
Duplicate the entities
BRANCH, 2
ALWAYS
IF, TNOW < 10
Repeat
Warm Up
Count the Job Finished by JobType
COUNTERS:
1, Type1 JobDone:
2, Type2 JobDone:
3, Rejects;
(Step 12) Shipping
COUNT: JobType: DISPOSE;
(Step 13) Reject
COUNT: Rejects: DISPOSE;
21
§ Collecting Statistics on Queues, Resources, and Time in System
Data Type:
1. Observational data – Flow Time, Cycle Time
2. Time – dependent data - # of parts waiting in queue
# of busy machines
1.
Recording time- Dependent Data : The DSTAT Element
(in *.EXP file)
SYNTAX:
DSTATS:
Number, Expression, Name, Outfile:
Repeat;
Commonly used Time – Dependent Data
 NQ(QueueID) - # of entities in QueueID. (SIMAN Reserved Variable)
 NR(ResourceID) - # of busy resource units (SIMAN Reserved Variable)
 MR(ResourceID) – Resource capacity (SIMAN Reserved Variable)
 NSTO(StorageID) - # of entities in StorageID (SIMAN Reserved Variable)
2.
Recording Observational Data: The TALLY Block.
(in *.MOD file)
TALLY : TallyID, Value;
Example:
CREATE : EXPO(8) : MARK (TimeIn);
DELAY : TRIA(5,8,10)
TALLY : INTERVAL(TimeIn);
CREATE : EXPO(8);
ASSIGN : TimeIn = TNOW;

DELAY : TRIA(5,8,10);
TALLY : INTERVAL(TimeIn);
Example:
TALLY : GroupSize, BatchSize;
TALLY : TBDeparts, BETWEEN;
TALLY : PartType, INT(Time);
* Define the Tally Records : The TALLIES Elements
(In *.EXP file)
TALLIES :
TallyNo, TallyID, OutFile :
Repeat;
22
Ex.
TALLIES :
3.
TimeInSystem :
TBDeparts, “c:\TBDEPART.DAT”
Recording Machine Utilizations:
For each Machine (Resource):
DSTATS:
NR(ResourceID);
In example 3.2, assume that we would like to record the utilization of the inspector for
each of the two job types. We need to use different “storages” for different PartType
when we process the parts.
* DEFINE THE STORAGE RECORDS : The STORAGES Elements
(In *.EXP file)
STORAGES : StorNo, StorName;
Repeats;
* Putting parts in different storages according to their PartTypes
(In *.MOD file)
DELAY : Duration, StorID
Example (Example 3.2)
For the Inspector section: (In *.MOD file)
QUEUE :
SEIZE :
DELAY :
InspectQ;
Inspector;
TRIA(5,8,10), JobType;
RELEASE :
Branch,
Inspector;
1:
with, 0.8, Shipping :
with, 0.1, Rejection :
with, 0.1, Rework;
.
.
.
23
(In *.EXP file)
PROJECT, …
ATTRIBUTES : …
Define Storages
∶
STORAGES : 1, InspType1 :
2, InspType2 :
∶
DSTATS :
Collect Statistic
∶
∶
NSTO(InspType1), Inspect Type 1 Util.:
NSTO(InspType2), Inspect Type 2 Util.;
No. of entities in Storage
§ Multiple Identical Resources (Example 4)


ABC restaurant opens 5:00pm  9:00pm
Customers arrives in parties with following probabilities
2 (persons)
40%
3 (persons)
30%
4 (persons)
20%
5 (persons)
10%
 The interarrival time is exponential distribution with a mean of 1.6 minutes.
 Customers arrive after 9:00PM will be rejected, but the restaurant opens until all customers
left the system.
 50 Tables, each can seat two people.
 Waiting Line capacity 5 parties.
 Cooking Time  TRIA(15,18,20)
 Eating Time  NORMAL(20,2)
 Cashier Service Time  NORMAL(2.0, 0.5)
Want to know (for the four-hour operating period)
1. No. of Customers Served,
2. No. of busy tables,
3. No. of waiting customers,
4. No. of parties that leaves without eating,
5. Utilization of the cashier.
24
BLOCK DIAGRAM
EXAMPLE 4
CREATE
QUEUE, CashierQ
EXPONETIAL(1.6), Door
SEIZE
Cashier
BRANCH, 1
IF, TNOW<=240
ELSE
OPEN
CLOSE
DELAY
ASSIGN
Closed
NORMAL(1.5,.5)
Door = 0
RELEASE
Cashier
Open
ASSIGN
PartySize = DISCRETE
(.4, 2, .7, 3, .9, 4, 1, 5)
COUNT
Served Parties
QUEUE, Table, 5
Leave
SEIZE
Table, (PartySize+1)/2
Leave
COUNT
Lost Parties
DELAY
TRANGULAR(14,19,24)
+NORMAL(24,5)
RELEASE
Table, (PartySize+1)/2
25
EXAMPLE 3.5





Patients arrive at an emergency room  EXPO (0.3 hr)
Patients are assigned a rating : (CATEGORY)
1.
OPEN WOUNDS
6%
2.
CLOSED INGURIES
8%
3.
MULTIPLE TRAUMA
18%
4.
VISCERAL COMPLAINTS 32%
5.
CHRONIC COMPLAINTS 36%
CATEGORY 1 patient are most severe; Send to bed
OTHERS:
Fill out registration form and medical records, then send to bed
ER has 3 beds, one registration nurse, and two doctors.
Treatment Time  TRIA(min, mode, max)
min
mode
max


1
.8
1.2
1.6
2
.7
0.95
1.1
3
0.4
0.6
.75
4
0.2
0.45
.6
5
0.1
0.35
0.45
Simulate the system over a 30-day period
Record statistics:
1. Utilization of the resources and
2. Time the patients spend in the system (by category)
26
EXAMPLE 3.5
BLOCK DIAGRAM
CREATE
TimeIn
Tobed
QUEUE, BedQ
EXPONETIAL(.3)
SEIZE
Bed
ASSIGN
Category = DISCRETE
(.06,1,.14,2,.32,3,.65,4, 1,5)
SEIZE
BRANCH, 1
If, Category.EQ.1
ToBed
ELSE
QUEUE, DoctorQ
Doctor
Records
DELAY
Records
QUEUE, NurseQ
TRIA(Minimum(Category)
,Mode(Category),
Maximum(Category))
SEIZE
Nurse
RELEASE
Doctor
Bed
DELAY
UNIFORM(.1, .2)
TALLY
Category, INT(TimeIn)
RELEASE
Nurse
COUNT
Lost Parties
27
§ MODEL VERIFICATION AND VALIDATION
VERIFICATION:
VALIDATION:
Make the program right and run.
Make the results meaningful
VERIFICATION:
 Always be suspicious.
 Accept Outside Doubters
 Walkthrough your programs
 Test your programs
1. Increase arrival rate / reduce service rate
2. Reduce the buffer size
3. Modify the job mix
4. Increase the rate of occurrence of infrequent events
5. Reduce the arrival rate / increase service rate
TRACE your program: (The TRACE Element)
Syntax:
TRACE, BegTime, EndTime, Condition, Expression, …;
Ex.
TRACE, , , , NQ(Buffer), NR(Machine);
TRACE, 0, 10, NQ(Buffer)>5, NQ(Buffer);
Interactive Debugger:
The first element in the experiment file:
BEGIN,
Listing,
Debugger;
YES/NO
YES/NO
If the Debugger option is on, you will see the following prompt:
0,0 >
which consists of current simulation time TNOW, followed by a symbol (>).
Type in END or QUIT to terminate the debugger mode.
DEBUGGER’S COMMANDS
SYNTAX:
28
COMMAND [ 1 qualifier] [ keyword], …, [operand], …
Ex.
SET BREAK
12
SET BREAK
Drill ----- label
SHOW
NQ(DrillQueue) + NQ(LatheQueue)
SHOW
DueDate, Priority
SHOW
NR(*)
SET
BREAK
1..10
GO and STEP (Two Buttons are in RUN Panel of ARENA)
GO – Resume the simulation
Ex.
GO UNTIL 30
GO UNTIL TNOW+30
STEP – GO TO next block
Ex.
STEP 3
SET and CANCEL Commands
Ex.
SET BREAK 10, 12,..15
CANCEL BREAK 12..15
SET WATCH – Print out every time the variable changes value.
Ex.
SET WATCH
NQ(DrillQueue)
SET WATCH
A(1)
SET WATCH / NOSTOP
NQ(Buffer)
CANCEL
WATCH *
SET INTERCEPT - To set a interception on a specific entity
Ex.
SET INTERCEPT 7
CANCEL INTERCEPT 7
SET TRACE BLOCKS - To set trace points on specified blocks
Ex.
SET TRACE BLOCKS Inspector, Adjust
CANCEL TRANCE BLOCK *
SET TRACE CONDITION - Restrict the generation of the trace messages
Ex.
SET TRACE CONDITION NQ(Buffer) > 10
29
SET TRACE EXPRESSION – Display the expression in trace messages.
Ex.
SET TRACE EXPRESSION
NQ(Drill) + NQ(Lathe)
SHOW and VIEW Commands
SHOW - Display the value of an expression or an attribute
Ex.
SHOW JOBTYPE
SHOW NQ(Drill) + NQ(Lathe)
SHOW NC(JobsDone)
SHOW NQ(5..8)
SHOW a(*)
VIEW - Display system status
Ex.
VIEW SOURCE
VIEW SOURCE 1..20
VIEW SUMMARY
VIEW DSTATS
VIEW TALLIES
VIEW COUNTERS
VIEW ENTITY
VIEW QUEUE
VIEW QUEUE
VIEW TRACE BLOCKS
VIEW CALENDAR
VIEW BREAK
NEXT command
Ex.
NEXT Rework
SAVE and RESTORE commands
SAVE - Save current system state to a snapshot file.
RESTORE – Restore current system state from a snapshot file.
30
COMMON ERRORS
Data Errors
-- Arrival rates
-- Service rates
Initialization Errors
-- Initialize System
-- Initialize statistics
-- Initialize individual variable or counter
Errors in Units of Measurement
-- Day, hour, minute
-- Service and arrival rates
Flow Control Errors
-- BRANCH and NEXT MODIFIER
-- SEQUENCES
Blockages and Deadlocks
-- SEIZE and Release Sequence
Arithmetic Errors
-- Overwriting Variables or attributes
Data Recording Errors
Modeling Errors – See Also VALIDATING THE MODEL
31
VALIDATING THE MODEL
 Does the model adequately represent the real system? (Conceptual valid)
 Are the model generated behavioral data characteristic of real systems behavioral
data? (Operational valid)
 Does the end user of the simulation model have confidence in the model results?
(Believability)
DEFINE Validity
RATIONALISM – Something obviously valid
EMPIRICISM – empirically tested and validated
POSITIVE ECONOMICS – It works
Reasonable Behavior
 Sensitivity or continuity
 Consistency – change random number seed and
 Degeneracy – model deterioration
 Absurd condition – use animation
TESTING MODEL STRUCTURE and Data
 Face validity – interview, ask around
 Parameters and Relationships – input distributions
 Structural and Boundary Condition – Level of detail
 Sensitivity Analysis – Robustness
TESTING MODEL BEHAVIOR
Behavior Comparison
 Chi – Square test
 Kolmogorov – Sminnov test
 Regression Analysis
 Spectral Analysis
 Theil’s Inequality test
 Turing test
 Hotelling’s Two Sample T2 test
Symptom Generation
Re-create the difficulties in real system
Reproduce the results for historical data
Behavior Anomaly
Behavior Prediction
32
33
SELECTING INPUT PROBABILITY DISTRIBUTION

Collecting Data on Input random variable
Type of System
Manufacturing
Computer
Communication
Defense - related
Service

Source of Randomness
Processing Time, machine operating time before
breakdown, machine repair times, transportation time, ect.
Inter-arrival time of jobs, job types, processing requirements
for jobs
Inter-arrival times of message, message types, message
length
Arrival times and payloads of missiles or airplanes, outcome
of an engagement, miss distance for munition.
Inter-arrival time of customers, service types, service times,
vacation or break period
Determining the characteristics of the data
1. Data values themselves are used in simulation
2. Empirical distribution function
3. Data fit or can be approximated by a theoretical distribution form.
 Distribution Types (Hypothesizing families of distribution)
 Parameters
 Goodness – of – fit.
34