Monte Carlo

```BU.520.601
Decision Models
Simulation
Summer 2013
Simulation
BU.520.601
1
Simulation
Simulation Process
• Many definitions.
• It is the process of studying
the behavior of a real system
using a computer-based model
that replicates the behavior of
that system.
• Used in situations involving
probabilistic elements (e.g.
random arrivals, service times
and process yields)
• Used in situations where the
complexity or the size of the
problem makes it difficult to
use optimizing models.
• Useful in both service or
manufacturing systems.
Simulation
BU.520.601
2
Simulation characteristics
In a simulation model we have “transactions” (customers, cars, ..)
and “events” (arrivals, receiving service, departure,..).
• When probability distributions are associated with events, we
use a method called random deviate generation to get
numbers from the probability distribution to simulate events.
• Timing of event may or may not be important in a simulation.
For simulation of a warehouse operation, if inventory is charged
on items at the end of the month, we do not need to know precise
timing of withdrawal of items. We only need to know how many
items were withdrawn during the month.
For simulation of toll booths, we need timings of two types of
events – when each car arrives and how long it takes to pay.
• When time is involved, simulation may be done by changing
simulation clock in fixed increment or by changing clock from one
event to the next (this is the preferred method).
Simulation
BU.520.601
3
Simulation characteristics..cont
Simulation is not an optimization tool, rather we try to
establish values of performance measures to arrive at better
decision making. Here is an example.
Suppose we would like improve customer satisfaction at a bank
drive-in facility. We study arrival patterns, service times etc., and
simulate the operation with one drive-in window, with two and
may be with three drive-in windows.
Obviously three windows will be most satisfactory from the customer
point of view. But then we take into account the cost (initial and
operating) and other factors to make the final decision.
We will use EXCEL for some simple simulation exercises.
In EXCEL we will use a function RAND() quite frequently. This
function is volatile (it recalculates all the time). You
should disable automatic calculations (switch to
manual). Press F9 key and all values are recalculated.
Simulation
BU.520.601
4
Ex. 1 Simulate the tossing of a coin.
Model construction: No simulation clock is involved
•
•
•
•
•
Each transaction will be the toss of a coin. We will generate 500
transactions (an arbitrary decision).
We will assume that the coin is “fair”. The random variable X
takes two values (0, 1 for T and H) with equal probabilities.
To generate of a transaction, we need a very simple formula.
Generate a random number (RN).
If RN < 0.5, it’s a head; otherwise it’s a tail.
In Excel, we will use the following formula in 500 cells
=IF(RAND()<0.5,"H","T“).
Performance measure: We will compute the probability of
tails based on our simulation to see if it is close to 0.5.
Simulation
BU.520.601
5
Ex. 1.. Excel: Simulate the tossing of a coin.
Simulation
BU.520.601
6
Generating random deviates (variates)
• For every probability distribution, as the variable X goes the
minimum value to the maximum value, the cumulative probability
increases from 0 to 1.
• Random number generators produce numbers between 0 to 1
(uniform distribution). Thus for any value of a random number,
there is one matching point on the cumulative distribution of X.
We match the value and generate X.
•
RAND() generates a random number (say RN, 0  RN < 1).
function automatically.
Discrete uniform distribution
For the discrete uniform
distribution , when X varies
between integers A and B, Excel
has a special function
= RANDBETWEEN(A, B).
Simulation


A
A+1
BU.520.601


…


B-1 B  X
7
Empirical distribution
Demand: X 300 400 500 600
Pr(X)
0.3 0.4 0.2 0.1
F(X)
1.0
0.3 0.7 0.9 1.0
The logic is simple. We match
RN with cumulative probability.
If RN < 0.3, X = 300.
If 0.3  RN < 0.7, X = 400.
If 0.7  RN < 0.9, X = 500.
If 0.90  RN < 1.0, X = 600
F(X)
Suppose we pick RN = 0.632.
0.632 
0.0
We need cumulative probabilities.
300 400 500 600
X
We get corresponding X value (= 400).
Simulation
BU.520.601
8
Using LOOKUP
What is the value
of X if RN = 0.632?
1.0
F(X)
0.632 
0.0
300 400 500 600
F(X)
0.3 0.7 0.9 1.0
Demand: X 300 400 500 600
Pr(X)
0.3 0.4 0.2 0.1
Suppose we use HLOOKUP to
find demand corresponding to
F(X) = 0.632
We need to use the function without
exact match.
But since 0.3 < 0.632 < 0.7, Excel will
match the value equal to 300.
X
To avoid this, we need to replace F(X) with some variable G(X), in which F(X)
values are shifted to the right.
G(X)
0.0 0.3 0.7 0.9
Demand: X 300 400 500 600
Simulation
BU.520.601
9
Ex. 2 Ships arrive in the night at
Arrival distribution
a facility with two docks.
X
0
1
2
3
4
5
If a dock is available in the morning, Pr(X) 0.30 0.30 0.20 0.10 0.05 0.05
it is assigned to a waiting ship for the whole day and the ship leaves
in the evening. If a dock cannot be assigned, there is a fee of \$10,000
per day per ship. Simulate the operation and estimate the
annual fee.
Model construction: We will start with a flow chart
Population
Dock 1
Arrival
Queue
Departure
Dock 2
Our model is simpler because both docks take 1 day to process.
Simulation
BU.520.601
10
Ex. 2.. Dock simulation
Population
Arrival
•
•
•
•
Queue
Docks:
Service
1 or 2
Departure
Every day, we will generate new arrivals with HLOOKUP. Assume
ship arrive between midnight and 6 a.m. These ships will be
added to the queue.
We will assign up to 2 ships from the queue (assumed FIFO –
First In First Out) and calculate remaining ships waiting. These
waiting ships will incur fee for that day.
We will simulate the operation of a year and calculate the fee.
We can replicate the experiment many times.
Performance measure: We will compute the annual fee.
Simulation
BU.520.601
11
Ex. 2… Excel: Dock simulation
Run for 365 days
?
Simulation generated
Simulation
BU.520.601
12
Excel: Dock simulation
Ex. 2….
Frequency of ships waiting
250
No of days
200
150
100
50
0
0
Simulation
1
2
3
4
5
No of ships
BU.520.601
6
7
>7
13
Ex. 2….. Excel: Dock simulation
Arrivals are generated
with HLOOKUP.
Simulation
BU.520.601
14
Random Deviates: Continuous distributions
Suppose X has continuous probability
distribution (range 100 to 500) and we
can find the cumulative distribution F(X).
Every F(X) varies between 0 and 1.
1.0
F(X)
0.52
0.0
100
264
X
500
We can use random numbers (RN) to
generate X values because RN also
vary between 0 and 1 and there is a
one to one correspondence.
Suppose we pick RN = 0.52.
We can find corresponding X value (say 264).
Simulation
BU.520.601
15
Random Deviates……
Triangular distribution
Uniform distribution
A
A
X
B
Uniform:
= A + RAND()*(B – A)
X
B
C
Triangular:
Let p = (B - A) / (C – A)
=IF(RAND() ≤ p, X, Y) where
X = A + SQRT(RAND() * (C – A) * (B – A)),
Y = C - SQRT((1-RAND()) * (C – A) * (C – B))
Normal distribution
= NORMINV(RAND(),Mean, Std. dev.)
Log-Normal
= LOGINV(RAND(),Mean, Std. dev.)
Exponential distribution
= (-Mean)*LN(RAND())
Simulation
BU.520.601
16
Ex. 3 Retirement Planning




You are 30 years old, and would like to invest 3000 dollars at
the end of each year from now till you reach 60.
Assume interest paid to be N(12, 2) meaning normally
distributed with mean = 12% and std. dev. = 2%; interest is
paid at the end of year.
You would like to estimate probability of reaching the target of
one million dollars at the age 60.
You would like to know chances of achieving the target if you
increase the annual amount invested.
Simulation
Age
30
Investment value
X30 = 3000
31
32
X31 = 3000 + X30 + interest on X30
X32 = 3000 + X31 + interest on X31
BU.520.601
17
Ex. 3..
=B12*(1+NORMINV(RAND(), Mean_R,STDV_R))+ Annual_contr
Simulation
BU.520.601
18
Ex. 3… Retirement Planning sensitivity analysis
Effect of changing contribution on the probability of
achieving the desired outcome.
Simulation
BU.520.601
19
Ex. 4 An IPO is to be launched
with the opening price
expected to be from the
distribution shown.
Opening Stock Price
10 11 12 13 14 15
X
Pr(X) 0.10 0.20 0.30 0.20 0.10 0.10
For the next five years, the stock price is expected to increase by an
amount given by a lognormal distribution with mean of 1.5% and
standard deviation of 0.5% provided the company does not fail. The
probability of failure is 40%, 30%, 20%, 20% and 10% during the next
five years.
Estimate the following using simulation:
(a)Price of the stock at the end of the 5 year period
assuming the company has not failed.
(b)Probability of survival at the end of 5 years.
Theoretical answer to part (b) is
(1 – 0.4) * (1 – 0.3) * (1 – 0.2) * (1 – 0.2) * (1 – 0.1) = 0.24192
Simulation
BU.520.601
20
Ex. 4..
Simulation
IPO Launching
BU.520.601
21
Ex. 4…
IPO Launching
How?
Count failures through Y1,
then Y2 – Y1, etc.
Fail in Year 4: =IF(K3="Y","Y",IF(RAND()<F\$15,"Y","N"))
22
Simulation
BU.520.601
Ex. 4….
IPO Launching
Stock Price in Year 4:
=IF(L4="N",Q4*(1+0.01*LOGINV(RAND(),Log_mean, Log_Stdv)),0)
23
Simulation
BU.520.601
Time Based Event Oriented Simulation
We will consider the following:
Transactions (customers) enter the system in a single line and are
processed at a single facility (server) on a FIFO basis also called
“First Come First Served” (FCFS).
Population
Arrival
Queue
Service
Departure
We will consider several different situations. First, the dock example
appeared to have same flow chart but it was somewhat different.
Docks were open only during day time (say from 7). This means
ships arrive in the night could be considered as arriving at 7 and
using the docks for fixed amount of time. Each row generated new
arrivals for a new day.
Simulation
BU.520.601
24
A simple example
Population
Arrival
Queue
Service
Departure
A machine take exactly 5 minutes to process a job. Our work load
is only 10 jobs per hour. So we don’t need simulation, we can
simply schedule a job every 6 minutes.
M1
5 min
M1
Job 1
Job 2
5
Job 3
11
17
There is an idle time of 1 minute after every job. Machine
utilization is (5/6)* 100 = 83.3%. There will be no queue.
Simulation
BU.520.601
25
Example 5
M1
5 min
Population
Arrival
Queue
Service
Departure
We are now going to consider different arrival and service time
distributions.
Case Arrival distribution
Service time distribution
A
Uniform (discrete) 1 to 11 min
Fixed ( 5 minutes)
B
Uniform (continuous) 1 to 11
minutes
Fixed ( 5 minutes)
C
D
Triangular (1, 5, 9) minutes
Poisson: 10 arrivals/hour (time Exponential (Average service time 5
between arrival 6 minutes –
minutes)
exponential)
Note that the average time between arrival is 6 minutes and
average service time is 5 minutes.
Simulation
BU.520.601
26
Arrival Flow chart
Arrival
SS=1
When an arrival event
happens, the following is
checked at that point in time.
SS?
SS=0
Enter service
Set SS = 1
Set next Dep. Time
Join Q
Add 1 to Q
Server Status (SS)
Determine next arrival time
SS = 0
Idle
Q
SS = 1
Busy
Dep. Time Departure Time
Simulation
BU.520.601
Queue
27
Departure Flow chart
When a departure event
happens, the following is
checked at that point in time.
Departure
Q not empty
Q. Status
Remove first Tr. From Q ,
start service & set Dep. Time
Shorten Q by 1
Q
Queue
SS = 0
Server Status: Idle
Tr.
Transaction
Simulation
BU.520.601
Q Empty
Set SS = 0
28
Example 5..
Single server system simulation – 4 cases
Case Arrival distribution
Service time distribution
A
Uniform (discrete) 1 to 11 min
Fixed ( 5 minutes)
B
Poisson: 10 arrivals/hour
Exponential (Average time 5 min.)
Model Parameters: Each model may have many parameters.
Examples are: arrival and service rates, capacities, etc.
Statistics of interest /performance measures:
Statistics on performance measures can be useful in validating the
model and for decision making. Some examples.
What’s the average waiting time? Maximum waiting time?
What is the maximum queue length? What is the server utilization?
How many people had to wait in queue before using the server?
How many people waited more than X minutes?
Simulation
BU.520.601
29
Example 5…
Single server system simulation
When the simulation starts at time zero, the system is empty. Value of
a performance measure such as server utilization keeps on changing
as time progresses.
After some time, when the process
reaches a “steady state”, value of the
performance measure comes close to the
expected value of that measure.
In all four cases since average time
between arrivals is 6 minutes and the
average service time (when the server is
busy) is 5 minutes. The server utilization
will stabilize at about 83% (=100*75/90).
Expected Parameter value
Parameter value
0
t
Time

For better estimate of the performance measure values, we generally
chop off initial observations (up to period t). For our example, we
will start collecting data from observation 201 (to 1200).
Simulation
BU.520.601
30
Example 5A
Arrival
Service time
Uniform (discrete) 1 to 11 min
Fixed ( 5 minutes)
How did we get numbers in the
table below?
Simulation
BU.520.601
31
Example 5A..
Simulation
Arrival
Service time
Uniform (discrete) 1 to 11 min
Fixed ( 5 minutes)
BU.520.601
32
Example 5B
Arrival
Service time
Poisson: 10 / hour
Exponential: 5 min
When the number of arrivals is
Poisson (with 10 units / hr.),
the time between arrivals is
exponential (with average time
= 6 minutes).
Simulation
BU.520.601
33
Example 5D.. Arrival
Service time
Poisson: 10 / hour
Exponential: 5 min
The graph here shows that it is not easy to determine when steady
state may be reached (how many observations to chop off), nor do
we know how many total observations to collect in a simulation
run or how many time to replicate.
Simulation
BU.520.601
34
Example 5: Comparison
Case Arrival distribution
Service time distribution
A
Uniform (discrete) 1 to 11 min
Fixed ( 5 minutes)
D
Poisson: 10 arrivals/hour
Exponential (Average time 5 min.)
A
Simulation
B
BU.520.601
35
Simulation: general comments
One can use visual basic macros within EXCEL. Risk solver also
includes some simulation capability.
Many specialized simulation languages have been developed.
These can handle even more complex situations. Examples:
AutoMod, Arena, GASP, GPSS, Promodel, SIMSCRIPT, Simula.
Many simulation software packages also come with “animation”
capability (there are even “free” ones). This can make a
tremendous impact in visualizing the operations.
One note of caution. Impressive visual display may give some false
impressions even though data used in the simulation or the
simulation logic is faulty.
Simulation
BU.520.601
36
Advantages
1.
2.
3.
4.
5.
6.
7.
Simulation
Disadvantages
Flexibility.
Can handle large and
complex systems.
Can answer “what-if”
questions.
Does not interfere with the
real system.
Allows study of interaction
among variables.
“Time compression” is
possible.
Handles complications that
other methods can’t.
Simulation
1.
4.
Can be expensive and
time consuming.
Does not generate
optimal solutions.
Managers must choose
solutions they want to try
(“what-if” scenarios).
Each model is unique.
BU.520.601
37
2.
3.
ATM Simulation 1 vs. 2
Average number of arrival per hour: 40 (Poison)
Average service time 75 sec. (Exponential)
Simulation
BU.520.601
38
```