Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

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). A A+1 … B-1 B  X

Simulation BU.520.601 7
Empirical distribution We need cumulative probabilities.

Demand: X 300 400 500 600


Pr(X) 0.3 0.4 0.2 0.1 The logic is simple. We match
RN with cumulative probability.
F(X) 0.3 0.7 0.9 1.0
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

1.0 F(X)
Suppose we pick RN = 0.632.
0.632 

0.0
300 400 500 600
X
We get corresponding X value (= 400).

Simulation BU.520.601 8
F(X) 0.3 0.7 0.9 1.0
Using LOOKUP
Demand: X 300 400 500 600
Pr(X) 0.3 0.4 0.2 0.1
What is the value
of X if RN = 0.632?
Suppose we use HLOOKUP to
find demand corresponding to
1.0 F(X)
F(X) = 0.632

0.632  We need to use the function without


exact match.
But since 0.3 < 0.632 < 0.7, Excel will
0.0
300 400 500 600 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 Docks: Departure


Queue Service
1 or 2
• 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
Ex. 2…. Excel: Dock simulation

Frequency of ships waiting


250

200
No of days

150

100

50

0
0 1 2 3 4 5 6 7 >7
No of ships

Simulation BU.520.601 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
1.0 can find the cumulative distribution F(X).
F(X) Every F(X) varies between 0 and 1.
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 X B C
Triangular:
A X B
Let p = (B - A) / (C – A)
Uniform: =IF(RAND() ≤ p, X, Y) where
= A + RAND()*(B – A) 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.
Age Investment value
30 X30 = 3000
31 X31 = 3000 + X30 + interest on X30
32 X32 = 3000 + X31 + interest on X31
Simulation 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 Opening Stock Price
with the opening price X 10 11 12 13 14 15
expected to be from the
Pr(X) 0.10 0.20 0.30 0.20 0.10 0.10
distribution shown.

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.. IPO Launching

Simulation BU.520.601 21
IPO Launching Ex. 4…

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
Job 1 Job 2 Job 3
M1
5 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
Population 5 min

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 Fixed ( 5 minutes)
C minutes Triangular (1, 5, 9) minutes
D 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 When an arrival event
happens, the following is
Arrival checked at that point in time.

SS=1 SS=0
SS?

Join Q Enter service


Set SS = 1
Add 1 to Q
Set next Dep. Time

Determine next arrival time


Server Status (SS)
SS = 0 Idle Q Queue
SS = 1 Busy Dep. Time Departure Time

Simulation BU.520.601 27
Departure Flow chart

When a departure event


happens, the following is
Departure
checked at that point in time.

Q not empty Q Empty


Q. Status

Remove first Tr. From Q , Set SS = 0


start service & set Dep. Time
Shorten Q by 1

Q Queue
SS = 0 Server Status: Idle
Tr. Transaction

Simulation BU.520.601 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 Parameter value
expected value of that measure.
In all four cases since average time
between arrivals is 6 minutes and the Parameter value
average service time (when the server is
busy) is 5 minutes. The server utilization
will stabilize at about 83% (=100*75/90). 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.. Arrival Service time
Uniform (discrete) 1 to 11 min Fixed ( 5 minutes)

Simulation 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 B

Simulation 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
Simulation
Advantages Disadvantages
1. Flexibility. 1. Can be expensive and
2. Can handle large and time consuming.
complex systems. 2. Does not generate
3. Can answer “what-if” optimal solutions.
questions. 3. Managers must choose
4. Does not interfere with the solutions they want to try
real system. (“what-if” scenarios).
5. Allows study of interaction 4. Each model is unique.
among variables.
6. “Time compression” is
possible.
7. Handles complications that
other methods can’t.

Simulation BU.520.601 37
ATM Simulation 1 vs. 2
Average number of arrival per hour: 40 (Poison)
Average service time 75 sec. (Exponential)

Simulation BU.520.601 38

You might also like