We have probably all heard the definition of insanity is doing the same thing over and over again and expecting a different outcome. Recently I came across this quote from Elon Musk...
This made me think that the non-deterministic (stochastic) nature of factory simulation is critical to the analyses that are done on manufacturing systems every day. The question is, how do you simulate randomness? An initial reaction to this would be to have your computer create random numbers and use these to introduce variation and unexpected events into your modeling. The problem is truly random numbers will hide potentially good changes to your system in a cloud of uncertainty.
Discrete Event Simulations, also known as factory simulations or throughput simulations, are used to evaluate different stochastic systems to determine differences and optimize the defined objective of the system. For example, in manufacturing systems, the goal is normally to provide the maximum production for a given set of assets or conditions.
To do this, simulation models are built to identify the best production sequence, an ideal buffer sizes, or potential configuration changes that will increase production. To model these systems effectively, we need to introduce the randomness of everyday life such as equipment failures, late material deliveries, or manufacturing defects.
Enter Pseudorandom Number Generators
The best way to think about Pseudorandom numbers is that they are “random” but “repeatable”. While this sounds contradictory, these properties are critical to discrete event simulation modeling. Random number generators use mathematical formulas to create a string of “random” numbers that are used to model the stochastic portions of any portion of your simulations.
If these number sequences changed every time you ran the model, your results would be different and your ability to debug/validate your model would be severely impaired. By starting with a given seed value, the mathematical formula (number generator) can repeat any sequence of numbers. This repeatable nature allows us to isolate the randomness and remove it as a factor in our comparison of potential manufacturing ideas.
One analogy that I have found useful in explaining this concept is test driving a car. If you want to compare two vehicles to decide which one to purchase, you will often take a test drive. Think of the random numbers as potholes or curves in the road. If you are comparing two cars, doesn’t it make sense to drive them on the exact same road to see how they cushion potential potholes or handle when going through a curve? Pseudorandom number generators will create identical roads for comparing your manufacturing ideas.
Two other last points. First, it is important to use a different random number stream (seed) for each random process in your model to ensure that same entity sees the same random numbers in each simulation. Secondly, remember to run your simulations more than once. Most simulation software packages will automate the process of changing your seed values between simulation runs so you can compute a range of potential outcomes and a confidence interval around the critical values that you are measuring in your model.
Having random and repeatable number sequences is at the heart of stochastic modeling and analysis. For more information, visit pseudorandom number generation.