the term monte carlo simulation just has that aura and feel about it…… it sounds complex. but in reality it’s not as complex as we think. let’s see if we lay it out for you in straightforward terms.
what is a monte carlo simulation?
a monte carlo simulation is simply a way to understand how inputs into a system might affect the outputs. let’s say you have a box of coins that you pour out onto a table. once they all drop, you count tails and heads and come up with a ratio that you plot on a graph. then you do this same experiment 1000 times to see what the results and the graph look like. this process uses a monte carlo method.
now, if you programmed a computer to model this same process and you ran the model 1000 times or more, graphing the results, you would have a monte carlo simulation.
monte carlo and scheduling
now in scheduling, let’s assume that our schedule is a model and that the cpm scheduling algorithm that we run to calculate the project’s finish date is our simulation.
let’s then try to understand our duration estimates using this monte carlo method. so let’s find a way to vary our activity durations, then run the simulation (aka cpm scheduling) to see what happens.
we can vary our durations by changing them from a single value to a range of values – from most likely duration to least likely duration and somewhere in the middle.
so now our project’s activities each look like this:
the simulation, simplified
now, let’s take job 1, use the best-case number, and run cpm scheduling. what’s our finish date? oh!
now, let’s take job 1, use the expected number, and run cpm scheduling. what’s our finish date? wow.
now, let’s take job 1, use the worst-case number, and run cpm scheduling. what’s our finish date? hmm.
and so on….
making the simulation even better
to give richer results, let the computer try every number between best-case and worst-case, choosing one at random.
and to make the results even richer, program the computer to pick a set of random durations for each job, (within the range [best-case to worst-case]) and run cpm scheduling. plot the finish date of the project on a graph.
repeat a lot of times (1,000x, 100,000x or more). then, plot a distribution of calculated project finish dates.
and you get something that looks like this.
what are the benefits of monte carlo simulations?
a monte carlo schedule simulation provides a project’s decision-maker with a scope of possible results and the probabilities each outcome might happen. it gives you the extreme possibilities—the results of going-for-broke and for making more conservative decisions—along with all possible ramifications for middle-of-the-road decisions.