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.

Hi Michael,

Do you have anything on S-curves, to do it in P6 or in excel?

Neels Marais

Please search our blog.

Hi Michael,

Could you put the print screen with comments for each steeps of this flow chart?

thanks !

gp

Hi Petrus, there are no screens to print. This is simply an explanation of the Monte Carlo algorithm, not software.

You can get the same results from primavera risk analysis, P10,50,90……not rocket science at all

You don’t know what you are talking about. You would never choose randomly between best and worst if you have the expected as well. People usually use best, worst and most likely and then fit a PERT distribution and then generate random deviates from that.

John – I do know what I’m talking about but I’m not sure you read it correctly. The Monte Carlo algorithm does random sampling each iteration and plots the result as I’ve described above. This taken from Palisade[dot]com, maker Monte Carlo risk analysis tool @Risk:

“During a Monte Carlo simulation, values are sampled at random from the input probability distributions. Each set of samples is called an iteration, and the resulting outcome from that sample is recorded. Monte Carlo simulation does this hundreds or thousands of times, and the result is a probability distribution of possible outcomes.”

@John Brown – instead of criticizing put your own methodology out for review.

@Michael Lepage – thanks for putting this info together

Thanks Michael. As always a thorough explanation while still keeping straight to the point. Kudos

What are the main software programs that do this?